From 7d3e87ebab49803c179e6114ad78f2325384a480 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Wed, 26 Aug 2026 12:46:23 +0200 Subject: [PATCH] fix/internal-103394-media-filters-state: Mantain filters state when navigating away from media list Signed-off-by: daniele-verducci --- .../owncloud/android/ui/activity/DrawerActivity.java | 2 +- .../owncloud/android/ui/fragment/GalleryFragment.kt | 12 +++++++++--- .../ui/fragment/GalleryFragmentBottomSheetDialog.kt | 5 ++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java index dd932f9f64ee..b41dc6cd752c 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java @@ -331,7 +331,7 @@ private void openFavoritesTab() { } private void openMediaTab(int menuItemId) { - GalleryFragment.Companion.clearSavedScrollState(); + GalleryFragment.Companion.clearSavedViewState(); resetOnlyPersonalAndOnDevice(); setupToolbar(); startPhotoSearch(menuItemId); diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragment.kt b/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragment.kt index d0c071c22651..dedfd18d6b13 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragment.kt @@ -154,6 +154,7 @@ class GalleryFragment : photoSearchTask?.cancel() savedScrollState = recyclerView?.layoutManager?.onSaveInstanceState() savedLoadedItemCount = loadedItemCount + savedMediaState = bottomSheet?.currMediaState } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { @@ -177,6 +178,9 @@ class GalleryFragment : menuItemAddRemoveValue = MenuItemAddRemove.REMOVE_GRID_AND_SORT requireActivity().invalidateOptionsMenu() + if (savedMediaState != null) { + bottomSheet?.currMediaState = savedMediaState!! + } updateSubtitle(bottomSheet?.currMediaState) // Restore the previously loaded window so a saved scroll position still resolves to a valid item. @@ -321,7 +325,7 @@ class GalleryFragment : // TODO: Fix folder change, it seems it doesn't work at all loadedItemCount = INITIAL_GALLERY_WINDOW restoreScrollPending = false - clearSavedScrollState() + clearSavedViewState() endDate = System.currentTimeMillis() / 1000 isPhotoSearchQueryRunning = true runGallerySearchTask() @@ -393,7 +397,7 @@ class GalleryFragment : override fun updateMediaContent(mediaState: MediaState) { loadedItemCount = INITIAL_GALLERY_WINDOW restoreScrollPending = false - clearSavedScrollState() + clearSavedViewState() showAllGalleryItems() } @@ -488,10 +492,12 @@ class GalleryFragment : // so the grid reopens at the same scroll position and with the same loaded window. private var savedScrollState: Parcelable? = null private var savedLoadedItemCount: Int? = null + private var savedMediaState: MediaState? = null - fun clearSavedScrollState() { + fun clearSavedViewState() { savedScrollState = null savedLoadedItemCount = null + savedMediaState = null } } } diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt b/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt index 5d5a4b2576c9..5012606c2a11 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt @@ -117,8 +117,11 @@ class GalleryFragmentBottomSheetDialog : actions?.updateMediaContent(currentMediaState) } - val currMediaState: MediaState + var currMediaState: MediaState get() = currentMediaState + set(value) { + currentMediaState = value + } enum class MediaState { MEDIA_STATE_DEFAULT,