diff --git a/CHANGELOG.md b/CHANGELOG.md index 2acdb3551..654e97e90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * Fix: Location streaming now works correctly with multiple accounts * Fix debouncing in chatlist and search * Fix sharing contact across profiles +* Fix: Reset scroll location after switching account ## v2.50.0 2026-05 diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java index eb41caa8c..e44c9905f 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java @@ -717,6 +717,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit refreshAvatar(); refreshUnreadIndicator(); refreshTitle(); + conversationListFragment.resetScrollPosition(); conversationListFragment.loadChatlistAsync(); } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java index 99d831890..b12a7b2a0 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListFragment.java @@ -64,6 +64,7 @@ public class ConversationListFragment extends BaseConversationListFragment private Timer reloadTimer; private boolean chatlistJustLoaded; private boolean reloadTimerInstantly; + private boolean resetScrollPosition; @Override public void onCreate(Bundle icicle) { @@ -303,6 +304,11 @@ public class ConversationListFragment extends BaseConversationListFragment } ((ConversationListAdapter) list.getAdapter()).changeData(chatlist); + + if (resetScrollPosition) { + list.scrollToPosition(0); + resetScrollPosition = false; + } }); } @@ -359,4 +365,8 @@ public class ConversationListFragment extends BaseConversationListFragment loadChatlistAsync(); } } + + public void resetScrollPosition() { + resetScrollPosition = true; + } }