mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-22 02:36:55 +00:00
Fix onBackPressed / toolbar navigation behaviour in MediaGalleryFragment.
This commit is contained in:
committed by
Greyson Parrelli
parent
53e110560a
commit
6b5f4ca8c2
@@ -44,6 +44,12 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) {
|
||||
|
||||
private val viewStateLiveData = MutableLiveData(ViewState())
|
||||
|
||||
private val onBackPressedCallback: OnBackPressedCallback = object : OnBackPressedCallback(false) {
|
||||
override fun handleOnBackPressed() {
|
||||
onBack()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
callbacks = requireNotNull(findListener())
|
||||
|
||||
@@ -86,6 +92,7 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) {
|
||||
MediaGallerySelectableItem.registerAdapter(
|
||||
mappingAdapter = galleryAdapter,
|
||||
onMediaFolderClicked = {
|
||||
onBackPressedCallback.isEnabled = true
|
||||
viewModel.setMediaFolder(it)
|
||||
},
|
||||
onMediaClicked = { media, selected ->
|
||||
@@ -132,15 +139,12 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) {
|
||||
galleryAdapter.submitList(it)
|
||||
}
|
||||
|
||||
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
onBack()
|
||||
}
|
||||
})
|
||||
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, onBackPressedCallback)
|
||||
}
|
||||
|
||||
fun onBack() {
|
||||
if (viewModel.pop()) {
|
||||
onBackPressedCallback.isEnabled = false
|
||||
callbacks.onToolbarNavigationClicked()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,6 +98,6 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med
|
||||
}
|
||||
|
||||
override fun onToolbarNavigationClicked() {
|
||||
Navigation.findNavController(requireView()).popBackStack()
|
||||
requireActivity().onBackPressed()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user