Fix on-back-pressed issue after navigating to search result.

This commit is contained in:
Alex Hart
2025-11-17 14:56:19 -04:00
committed by Cody Henthorne
parent b5f444d1cf
commit d5150d44e3

View File

@@ -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) {