From d5150d44e30c2abf1fad599f4a73133cee32ac96 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 17 Nov 2025 14:56:19 -0400 Subject: [PATCH] Fix on-back-pressed issue after navigating to search result. --- .../org/thoughtcrime/securesms/MainActivity.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index fab3c5e22f..fc2c227abf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -325,9 +325,10 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner } val isActionModeActive = mainToolbarState.mode == MainToolbarMode.ACTION_MODE + val isSearchModeActive = mainToolbarState.mode == MainToolbarMode.SEARCH val isNavigationRailVisible = mainToolbarState.mode != MainToolbarMode.SEARCH val isNavigationBarVisible = mainToolbarState.mode == MainToolbarMode.FULL - val isBackHandlerEnabled = mainToolbarState.destination != MainNavigationListLocation.CHATS && !isActionModeActive + val isBackHandlerEnabled = mainToolbarState.destination != MainNavigationListLocation.CHATS && !isActionModeActive && !isSearchModeActive BackHandler(enabled = isBackHandlerEnabled) { mainNavigationViewModel.setFocusedPane(ThreePaneScaffoldRole.Secondary) @@ -338,6 +339,10 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner toolbarCallback.onCloseActionModeClick() } + BackHandler(enabled = isSearchModeActive) { + toolbarCallback.onCloseSearchClick() + } + val focusManager = LocalFocusManager.current LaunchedEffect(mainToolbarState.mode) { if (mainToolbarState.mode == MainToolbarMode.ACTION_MODE) { @@ -383,21 +388,14 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner val (detailOnlyAnchor, detailAndListAnchor, listOnlyAnchor) = anchors - val initialAnchorIndex = remember { - val index = SignalStore.misc.preferredMainActivityAnchorIndex - if (index >= 0) index else 1 - } - val paneExpansionState = rememberPaneExpansionState( key = wrappedNavigator.scaffoldValue.paneExpansionStateKey, anchors = anchors, - initialAnchoredIndex = initialAnchorIndex + initialAnchoredIndex = 1 ) val paneAnchorIndex = rememberSaveable(paneExpansionState.currentAnchor) { - val index = anchors.indexOf(paneExpansionState.currentAnchor) - SignalStore.misc.preferredMainActivityAnchorIndex = index - index + anchors.indexOf(paneExpansionState.currentAnchor) } LaunchedEffect(windowSizeClass) {