mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 00:59:49 +01:00
Fix action mode to use our own action mode toolbar instead of the built in androidx one.
This commit is contained in:
committed by
Cody Henthorne
parent
4db60ac63f
commit
74d9195d94
@@ -16,6 +16,7 @@ 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.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
@@ -250,6 +251,22 @@ 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 {
|
||||
@@ -810,6 +827,15 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
||||
toolbarViewModel.emitEvent(MainToolbarViewModel.Event.Chats.CloseArchive)
|
||||
}
|
||||
|
||||
override fun onCloseActionModeClick() {
|
||||
supportFragmentManager.fragments.forEach { fragment ->
|
||||
when (fragment) {
|
||||
is ConversationListFragment -> fragment.endActionModeIfActive()
|
||||
is CallLogFragment -> fragment.CallLogActionModeCallback().onActionModeWillEnd()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSearchQueryUpdated(query: String) {
|
||||
toolbarViewModel.setSearchQuery(query)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user