From 3f868c0435009f6c36fe4e91f93c5480e8486685 Mon Sep 17 00:00:00 2001 From: arkon Date: Tue, 18 Jul 2023 18:09:31 -0400 Subject: [PATCH] Use correct sources when triggering new global search Actually fixes #9724 --- .../migration/search/MigrateSearchScreenModel.kt | 2 +- .../source/globalsearch/GlobalSearchScreenModel.kt | 2 +- .../source/globalsearch/SearchScreenModel.kt | 14 ++++++-------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt index 13844638f0..73bba479a5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt @@ -30,7 +30,7 @@ class MigrateSearchScreenModel( override fun getEnabledSources(): List { return super.getEnabledSources() - .filter { mutableState.value.sourceFilter != SourceFilter.PinnedOnly || "${it.id}" in pinnedSources } + .filter { state.value.sourceFilter != SourceFilter.PinnedOnly || "${it.id}" in pinnedSources } .sortedWith( compareBy( { it.id != state.value.fromSourceId }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt index 62d4d03bc5..944c28f17a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt @@ -16,6 +16,6 @@ class GlobalSearchScreenModel( override fun getEnabledSources(): List { return super.getEnabledSources() - .filter { mutableState.value.sourceFilter != SourceFilter.PinnedOnly || "${it.id}" in pinnedSources } + .filter { state.value.sourceFilter != SourceFilter.PinnedOnly || "${it.id}" in pinnedSources } } } 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 dd603ff5a3..1c1a2e2173 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 @@ -29,7 +29,7 @@ import java.util.concurrent.Executors abstract class SearchScreenModel( initialState: State = State(), - private val sourcePreferences: SourcePreferences = Injekt.get(), + sourcePreferences: SourcePreferences = Injekt.get(), private val sourceManager: SourceManager = Injekt.get(), private val extensionManager: ExtensionManager = Injekt.get(), private val networkToLocalManga: NetworkToLocalManga = Injekt.get(), @@ -39,12 +39,14 @@ abstract class SearchScreenModel( private val coroutineDispatcher = Executors.newFixedThreadPool(5).asCoroutineDispatcher() private var searchJob: Job? = null - private val sources by lazy { getSelectedSources() } + private val enabledLanguages = sourcePreferences.enabledLanguages().get() + private val disabledSources = sourcePreferences.disabledSources().get() + protected val pinnedSources = sourcePreferences.pinnedSources().get() + private var lastQuery: String? = null private var lastSourceFilter: SourceFilter? = null protected var extensionFilter: String? = null - protected val pinnedSources = sourcePreferences.pinnedSources().get() private val sortComparator = { map: Map -> compareBy( @@ -66,10 +68,6 @@ abstract class SearchScreenModel( } open fun getEnabledSources(): List { - val enabledLanguages = sourcePreferences.enabledLanguages().get() - val disabledSources = sourcePreferences.disabledSources().get() - val pinnedSources = sourcePreferences.pinnedSources().get() - return sourceManager.getCatalogueSources() .filter { it.lang in enabledLanguages && "${it.id}" !in disabledSources } .sortedWith( @@ -122,7 +120,7 @@ abstract class SearchScreenModel( val initialItems = getSelectedSources().associateWith { SearchItemResult.Loading } updateItems(initialItems) searchJob = ioCoroutineScope.launch { - sources.map { source -> + getSelectedSources().map { source -> async { try { val page = withContext(coroutineDispatcher) {