mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Fix list action mode exit on back.
This commit is contained in:
committed by
jeffrey-signal
parent
3cd86182db
commit
1a39119c2b
@@ -16,7 +16,6 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.ViewTreeObserver
|
||||
import android.widget.Toast
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.SystemBarStyle
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.setContent
|
||||
@@ -290,22 +289,6 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
||||
}
|
||||
}
|
||||
|
||||
val callback = object : OnBackPressedCallback(toolbarViewModel.state.value.mode == MainToolbarMode.ACTION_MODE) {
|
||||
override fun handleOnBackPressed() {
|
||||
toolbarCallback.onCloseActionModeClick()
|
||||
}
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||
toolbarViewModel.state.collect { state ->
|
||||
callback.isEnabled = state.mode == MainToolbarMode.ACTION_MODE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onBackPressedDispatcher.addCallback(this, callback)
|
||||
|
||||
shareDataTimestampViewModel.setTimestampFromActivityCreation(savedInstanceState, intent)
|
||||
|
||||
setContent {
|
||||
@@ -323,15 +306,20 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
||||
}
|
||||
}
|
||||
|
||||
val isActionModeActive = mainToolbarState.mode == MainToolbarMode.ACTION_MODE
|
||||
val isNavigationRailVisible = mainToolbarState.mode != MainToolbarMode.SEARCH
|
||||
val isNavigationBarVisible = mainToolbarState.mode == MainToolbarMode.FULL
|
||||
val isBackHandlerEnabled = mainToolbarState.destination != MainNavigationListLocation.CHATS
|
||||
val isBackHandlerEnabled = mainToolbarState.destination != MainNavigationListLocation.CHATS && !isActionModeActive
|
||||
|
||||
BackHandler(enabled = isBackHandlerEnabled) {
|
||||
mainNavigationViewModel.setFocusedPane(ThreePaneScaffoldRole.Secondary)
|
||||
mainNavigationViewModel.goTo(MainNavigationListLocation.CHATS)
|
||||
}
|
||||
|
||||
BackHandler(enabled = isActionModeActive) {
|
||||
toolbarCallback.onCloseActionModeClick()
|
||||
}
|
||||
|
||||
val focusManager = LocalFocusManager.current
|
||||
LaunchedEffect(mainToolbarState.mode) {
|
||||
if (mainToolbarState.mode == MainToolbarMode.ACTION_MODE) {
|
||||
|
||||
Reference in New Issue
Block a user