use JSON-RPC for addAccount

This commit is contained in:
adbenitez 2025-02-19 16:33:31 +01:00
parent ab05222c32
commit c1a49332d0
6 changed files with 22 additions and 12 deletions

View file

@ -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)
{
CHAR_REF(dbfile);

View file

@ -27,7 +27,6 @@ public class DcAccounts {
public native void setPushDeviceToken (String token);
public native boolean backgroundFetch (int timeoutSeconds);
public native int addAccount ();
public native int migrateAccount (String dbfile);
public native boolean removeAccount (int accountId);
public native int[] getAll ();

View file

@ -87,7 +87,7 @@ public class DcContext {
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) {
contextCPtr = createContextCPtr(osName, dbfile);
}

View file

@ -125,6 +125,10 @@ public class Rpc {
return getResult("get_account_file_size", accountId).getAsInt();
}
public int addAccount() throws RpcException {
return getResult("add_account").getAsInt();
}
private static class Request {
private final String jsonrpc = "2.0";
public final String method;

View file

@ -26,6 +26,7 @@ import com.b44t.messenger.DcContext;
import com.b44t.messenger.DcEvent;
import com.b44t.messenger.DcEventEmitter;
import com.b44t.messenger.rpc.Rpc;
import com.b44t.messenger.rpc.RpcException;
import org.thoughtcrime.securesms.connect.AccountManager;
import org.thoughtcrime.securesms.connect.DcEventCenter;
@ -104,7 +105,11 @@ public class ApplicationContext extends MultiDexApplication {
}
}
if (allAccounts.length == 0) {
dcAccounts.addAccount();
try {
rpc.addAccount();
} catch (RpcException e) {
e.printStackTrace();
}
}
dcContext = dcAccounts.getSelectedAccount();
notificationCenter = new NotificationCenter(this);

View file

@ -13,6 +13,8 @@ import androidx.fragment.app.FragmentActivity;
import com.b44t.messenger.DcAccounts;
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.ConversationListActivity;
@ -86,13 +88,19 @@ public class AccountManager {
// add accounts
public int beginAccountCreation(Context context) {
Rpc rpc = DcHelper.getRpc(context);
DcAccounts accounts = DcHelper.getAccounts(context);
DcContext selectedAccount = accounts.getSelectedAccount();
if (selectedAccount.isOk()) {
PreferenceManager.getDefaultSharedPreferences(context).edit().putInt(LAST_ACCOUNT_ID, selectedAccount.getAccountId()).apply();
}
int id = accounts.addAccount();
int id = 0;
try {
id = rpc.addAccount();
} catch (RpcException e) {
e.printStackTrace();
}
resetDcContext(context);
return id;
}