From 83c3e0f3c7e809cfc1fa3b8e9fc9bd47fa1c25ec Mon Sep 17 00:00:00 2001 From: KhooLy <73142442+KhooLy@users.noreply.github.com> Date: Mon, 13 Jul 2026 23:14:53 +0300 Subject: [PATCH] Show skeleton on actual Discover filter changes, not just first load MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changing type/catalog/genre didn't clear the previous results, so the old (now-mismatched) results stayed visible for the entire fetch duration instead of the skeleton grid — results only ever got replaced once the new fetch completed. Only clear on a genuine filter change (compare against the previous DiscoverFiltersUiModel) so a plain tab revisit with unchanged filters still silently keeps showing cached results while it revalidates in the background, per the earlier fix. --- .../com/fluxa/app/ui/catalog/AndroidDiscoverDataSource.kt | 4 ++++ app/src/main/java/com/fluxa/app/ui/catalog/HomeViewModel.kt | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/app/src/main/java/com/fluxa/app/ui/catalog/AndroidDiscoverDataSource.kt b/app/src/main/java/com/fluxa/app/ui/catalog/AndroidDiscoverDataSource.kt index e0f0ad4..7a1c64b 100644 --- a/app/src/main/java/com/fluxa/app/ui/catalog/AndroidDiscoverDataSource.kt +++ b/app/src/main/java/com/fluxa/app/ui/catalog/AndroidDiscoverDataSource.kt @@ -55,7 +55,11 @@ class AndroidDiscoverDataSource( } override suspend fun updateFilters(filters: DiscoverFiltersUiModel) { + val filtersChanged = filters != this.filters.value this.filters.value = filters + if (filtersChanged) { + homeViewModel.clearDiscoverResults() + } homeViewModel.loadDiscoverCatalogFilters(filters.contentType, filters.catalogKey) homeViewModel.discover( type = filters.contentType, diff --git a/app/src/main/java/com/fluxa/app/ui/catalog/HomeViewModel.kt b/app/src/main/java/com/fluxa/app/ui/catalog/HomeViewModel.kt index 07315ad..dfe1f4f 100644 --- a/app/src/main/java/com/fluxa/app/ui/catalog/HomeViewModel.kt +++ b/app/src/main/java/com/fluxa/app/ui/catalog/HomeViewModel.kt @@ -1002,6 +1002,10 @@ class HomeViewModel @Inject constructor( ) } + fun clearDiscoverResults() { + _headlessDiscoverResults.value = emptyList() + } + fun discover(type: String, catalogKey: String?, genre: String?, year: String?, rating: Float?, provider: String?, region: String?) { viewModelScope.launch { _headlessDiscoverLoading.value = true