diff --git a/src/org/thoughtcrime/securesms/connect/AccountManager.java b/src/org/thoughtcrime/securesms/connect/AccountManager.java index 50021133a..8e7d1af06 100644 --- a/src/org/thoughtcrime/securesms/connect/AccountManager.java +++ b/src/org/thoughtcrime/securesms/connect/AccountManager.java @@ -25,6 +25,7 @@ import java.lang.ref.WeakReference; public class AccountManager { private static final String TAG = AccountManager.class.getSimpleName(); + private static final String LAST_ACCOUNT_ID = "last_account_id"; private static AccountManager self; private void resetDcContext(Context context) { @@ -85,7 +86,13 @@ public class AccountManager { // add accounts public int beginAccountCreation(Context context) { - int id = DcHelper.getAccounts(context).addAccount(); + 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(); resetDcContext(context); return id; } @@ -102,7 +109,8 @@ public class AccountManager { accounts.removeAccount(selectedAccount.getAccountId()); } - new SwitchAccountAsyncTask(activity, R.string.switching_account, accounts.getSelectedAccount().getAccountId(), null).execute(); + int lastAccountId = PreferenceManager.getDefaultSharedPreferences(activity).getInt(LAST_ACCOUNT_ID, accounts.getSelectedAccount().getAccountId()); + new SwitchAccountAsyncTask(activity, R.string.switching_account, lastAccountId, null).execute(); }