From 6bb8535af4292ff207c36a788a4535a8c5a7b31f Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Fri, 18 Oct 2024 23:43:07 +0700 Subject: [PATCH] make global search pinned/all sticky --- .../eu/kanade/domain/source/service/SourcePreferences.kt | 6 ++++++ .../ui/browse/source/globalsearch/SearchScreenModel.kt | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt b/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt index 37dfa6e67..70794b0d3 100644 --- a/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt +++ b/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt @@ -1,6 +1,7 @@ package eu.kanade.domain.source.service import eu.kanade.domain.source.interactor.SetMigrateSorting +import eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter import eu.kanade.tachiyomi.util.system.LocaleHelper import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore @@ -56,6 +57,11 @@ class SourcePreferences( ) // KMK --> + fun globalSearchPinnedState() = preferenceStore.getEnum( + Preference.appStateKey("global_search_pinned_toggle_state"), + SourceFilter.PinnedOnly, + ) + fun disabledRepos() = preferenceStore.getStringSet("disabled_repos", emptySet()) // KMK <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt index d8e9106f4..431651a11 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt @@ -70,6 +70,13 @@ abstract class SearchScreenModel( mutableState.update { it.copy(onlyShowHasResults = state) } } } + // KMK --> + screenModelScope.launch { + preferences.globalSearchPinnedState().changes().collectLatest { state -> + mutableState.update { it.copy(sourceFilter = state) } + } + } + // KMK <-- } @Composable @@ -117,7 +124,7 @@ abstract class SearchScreenModel( } fun setSourceFilter(filter: SourceFilter) { - mutableState.update { it.copy(sourceFilter = filter) } + preferences.globalSearchPinnedState().set(filter) search() }