mirror of
https://github.com/deltachat/deltachat-android.git
synced 2025-10-05 10:39:24 +02:00
use JSON-RPC for addAccount
This commit is contained in:
parent
ab05222c32
commit
c1a49332d0
6 changed files with 22 additions and 12 deletions
|
@ -231,12 +231,6 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcAccounts_backgroundFetch(JNIEnv *en
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
JNIEXPORT jint Java_com_b44t_messenger_DcAccounts_addAccount(JNIEnv *env, jobject obj)
|
|
||||||
{
|
|
||||||
return dc_accounts_add_account(get_dc_accounts(env, obj));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
JNIEXPORT jint Java_com_b44t_messenger_DcAccounts_migrateAccount(JNIEnv *env, jobject obj, jstring dbfile)
|
JNIEXPORT jint Java_com_b44t_messenger_DcAccounts_migrateAccount(JNIEnv *env, jobject obj, jstring dbfile)
|
||||||
{
|
{
|
||||||
CHAR_REF(dbfile);
|
CHAR_REF(dbfile);
|
||||||
|
|
|
@ -27,7 +27,6 @@ public class DcAccounts {
|
||||||
public native void setPushDeviceToken (String token);
|
public native void setPushDeviceToken (String token);
|
||||||
public native boolean backgroundFetch (int timeoutSeconds);
|
public native boolean backgroundFetch (int timeoutSeconds);
|
||||||
|
|
||||||
public native int addAccount ();
|
|
||||||
public native int migrateAccount (String dbfile);
|
public native int migrateAccount (String dbfile);
|
||||||
public native boolean removeAccount (int accountId);
|
public native boolean removeAccount (int accountId);
|
||||||
public native int[] getAll ();
|
public native int[] getAll ();
|
||||||
|
|
|
@ -87,7 +87,7 @@ public class DcContext {
|
||||||
|
|
||||||
private static final String CONFIG_MUTE_MENTIONS_IF_MUTED = "ui.mute_mentions_if_muted";
|
private static final String CONFIG_MUTE_MENTIONS_IF_MUTED = "ui.mute_mentions_if_muted";
|
||||||
|
|
||||||
// when using DcAccounts, use DcAccounts.addAccount() instead
|
// when using DcAccounts, use Rpc.addAccount() instead
|
||||||
public DcContext(String osName, String dbfile) {
|
public DcContext(String osName, String dbfile) {
|
||||||
contextCPtr = createContextCPtr(osName, dbfile);
|
contextCPtr = createContextCPtr(osName, dbfile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,6 +125,10 @@ public class Rpc {
|
||||||
return getResult("get_account_file_size", accountId).getAsInt();
|
return getResult("get_account_file_size", accountId).getAsInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int addAccount() throws RpcException {
|
||||||
|
return getResult("add_account").getAsInt();
|
||||||
|
}
|
||||||
|
|
||||||
private static class Request {
|
private static class Request {
|
||||||
private final String jsonrpc = "2.0";
|
private final String jsonrpc = "2.0";
|
||||||
public final String method;
|
public final String method;
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.b44t.messenger.DcContext;
|
||||||
import com.b44t.messenger.DcEvent;
|
import com.b44t.messenger.DcEvent;
|
||||||
import com.b44t.messenger.DcEventEmitter;
|
import com.b44t.messenger.DcEventEmitter;
|
||||||
import com.b44t.messenger.rpc.Rpc;
|
import com.b44t.messenger.rpc.Rpc;
|
||||||
|
import com.b44t.messenger.rpc.RpcException;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.connect.AccountManager;
|
import org.thoughtcrime.securesms.connect.AccountManager;
|
||||||
import org.thoughtcrime.securesms.connect.DcEventCenter;
|
import org.thoughtcrime.securesms.connect.DcEventCenter;
|
||||||
|
@ -104,7 +105,11 @@ public class ApplicationContext extends MultiDexApplication {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (allAccounts.length == 0) {
|
if (allAccounts.length == 0) {
|
||||||
dcAccounts.addAccount();
|
try {
|
||||||
|
rpc.addAccount();
|
||||||
|
} catch (RpcException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dcContext = dcAccounts.getSelectedAccount();
|
dcContext = dcAccounts.getSelectedAccount();
|
||||||
notificationCenter = new NotificationCenter(this);
|
notificationCenter = new NotificationCenter(this);
|
||||||
|
|
|
@ -13,6 +13,8 @@ import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import com.b44t.messenger.DcAccounts;
|
import com.b44t.messenger.DcAccounts;
|
||||||
import com.b44t.messenger.DcContext;
|
import com.b44t.messenger.DcContext;
|
||||||
|
import com.b44t.messenger.rpc.Rpc;
|
||||||
|
import com.b44t.messenger.rpc.RpcException;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
import org.thoughtcrime.securesms.ConversationListActivity;
|
import org.thoughtcrime.securesms.ConversationListActivity;
|
||||||
|
@ -86,15 +88,21 @@ public class AccountManager {
|
||||||
// add accounts
|
// add accounts
|
||||||
|
|
||||||
public int beginAccountCreation(Context context) {
|
public int beginAccountCreation(Context context) {
|
||||||
|
Rpc rpc = DcHelper.getRpc(context);
|
||||||
DcAccounts accounts = DcHelper.getAccounts(context);
|
DcAccounts accounts = DcHelper.getAccounts(context);
|
||||||
DcContext selectedAccount = accounts.getSelectedAccount();
|
DcContext selectedAccount = accounts.getSelectedAccount();
|
||||||
if (selectedAccount.isOk()) {
|
if (selectedAccount.isOk()) {
|
||||||
PreferenceManager.getDefaultSharedPreferences(context).edit().putInt(LAST_ACCOUNT_ID, selectedAccount.getAccountId()).apply();
|
PreferenceManager.getDefaultSharedPreferences(context).edit().putInt(LAST_ACCOUNT_ID, selectedAccount.getAccountId()).apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
int id = accounts.addAccount();
|
int id = 0;
|
||||||
resetDcContext(context);
|
try {
|
||||||
return id;
|
id = rpc.addAccount();
|
||||||
|
} catch (RpcException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
resetDcContext(context);
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canRollbackAccountCreation(Context context) {
|
public boolean canRollbackAccountCreation(Context context) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue