From f96e89956cc90188e4bcad9b1a24329d39945882 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 20 Jan 2026 16:31:02 +0100 Subject: [PATCH] account switcher: make switching accounts smoother --- .../thoughtcrime/securesms/ConversationListActivity.java | 7 +++++++ .../thoughtcrime/securesms/ConversationListFragment.java | 2 +- .../securesms/accounts/AccountSelectionListFragment.java | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java index dd202b3ad..56ccb8b16 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java @@ -573,6 +573,13 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit startActivity(Intent.createChooser(intent, getString(R.string.chat_share_with_title))); } + public void onProfileSwitched(int profileId) { + refreshAvatar(); + refreshUnreadIndicator(); + refreshTitle(); + conversationListFragment.loadChatlist(); + } + public void onDeleteProfile(int profileId) { deleteProfileId = profileId; boolean result = ScreenLockUtil.applyScreenLock(this, getString(R.string.delete_account), getString(R.string.enter_system_secret_to_continue), REQUEST_CODE_CONFIRM_CREDENTIALS_DELETE_PROFILE); diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java index 7d22831d1..e244cf1c4 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java @@ -260,7 +260,7 @@ public class ConversationListFragment extends BaseConversationListFragment }); } - private void loadChatlist() { + public void loadChatlist() { int listflags = 0; if (archive) { listflags |= DcContext.DC_GCL_ARCHIVED_ONLY; diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java index c5e4bcf0b..1cfd01c4a 100644 --- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java @@ -247,13 +247,13 @@ public class AccountSelectionListFragment extends DialogFragment implements DcEv @Override public void onItemClick(AccountSelectionListItem contact) { - Activity activity = requireActivity(); AccountSelectionListFragment.this.dismiss(); int accountId = contact.getAccountId(); if (accountId == DC_CONTACT_ID_ADD_ACCOUNT) { AccountManager.getInstance().switchAccountAndStartActivity(activity, 0); } else if (accountId != DcHelper.getAccounts(activity).getSelectedAccount().getAccountId()) { - AccountManager.getInstance().switchAccountAndStartActivity(activity, accountId); + AccountManager.getInstance().switchAccount(activity, accountId); + activity.onProfileSwitched(accountId); } } }