From 6b5f4ca8c2bdd26f9de487ff1962a18e8216b73d Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 7 Sep 2021 15:45:31 -0300 Subject: [PATCH] Fix onBackPressed / toolbar navigation behaviour in MediaGalleryFragment. --- .../mediasend/v2/gallery/MediaGalleryFragment.kt | 14 +++++++++----- .../v2/gallery/MediaSelectionGalleryFragment.kt | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt index b03a3f4bec..0670aaae42 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt @@ -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() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt index de6c19476d..997509aeb0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt @@ -98,6 +98,6 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med } override fun onToolbarNavigationClicked() { - Navigation.findNavController(requireView()).popBackStack() + requireActivity().onBackPressed() } }