Fix onBackPressed / toolbar navigation behaviour in MediaGalleryFragment.

This commit is contained in:
Alex Hart 2021-09-07 15:45:31 -03:00 committed by Greyson Parrelli
parent 53e110560a
commit 6b5f4ca8c2
2 changed files with 10 additions and 6 deletions

View file

@ -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()
}
}

View file

@ -98,6 +98,6 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med
}
override fun onToolbarNavigationClicked() {
Navigation.findNavController(requireView()).popBackStack()
requireActivity().onBackPressed()
}
}