Fix onBackPressed / toolbar navigation behaviour in MediaGalleryFragment.
This commit is contained in:
parent
53e110560a
commit
6b5f4ca8c2
2 changed files with 10 additions and 6 deletions
|
@ -44,6 +44,12 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) {
|
||||||
|
|
||||||
private val viewStateLiveData = MutableLiveData(ViewState())
|
private val viewStateLiveData = MutableLiveData(ViewState())
|
||||||
|
|
||||||
|
private val onBackPressedCallback: OnBackPressedCallback = object : OnBackPressedCallback(false) {
|
||||||
|
override fun handleOnBackPressed() {
|
||||||
|
onBack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
callbacks = requireNotNull(findListener())
|
callbacks = requireNotNull(findListener())
|
||||||
|
|
||||||
|
@ -86,6 +92,7 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) {
|
||||||
MediaGallerySelectableItem.registerAdapter(
|
MediaGallerySelectableItem.registerAdapter(
|
||||||
mappingAdapter = galleryAdapter,
|
mappingAdapter = galleryAdapter,
|
||||||
onMediaFolderClicked = {
|
onMediaFolderClicked = {
|
||||||
|
onBackPressedCallback.isEnabled = true
|
||||||
viewModel.setMediaFolder(it)
|
viewModel.setMediaFolder(it)
|
||||||
},
|
},
|
||||||
onMediaClicked = { media, selected ->
|
onMediaClicked = { media, selected ->
|
||||||
|
@ -132,15 +139,12 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) {
|
||||||
galleryAdapter.submitList(it)
|
galleryAdapter.submitList(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
|
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, onBackPressedCallback)
|
||||||
override fun handleOnBackPressed() {
|
|
||||||
onBack()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onBack() {
|
fun onBack() {
|
||||||
if (viewModel.pop()) {
|
if (viewModel.pop()) {
|
||||||
|
onBackPressedCallback.isEnabled = false
|
||||||
callbacks.onToolbarNavigationClicked()
|
callbacks.onToolbarNavigationClicked()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,6 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onToolbarNavigationClicked() {
|
override fun onToolbarNavigationClicked() {
|
||||||
Navigation.findNavController(requireView()).popBackStack()
|
requireActivity().onBackPressed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue