Selaa lähdekoodia

Use correct sources when triggering new global search

Actually fixes #9724
arkon 1 vuosi sitten
vanhempi
commit
3f868c0435

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt

@@ -30,7 +30,7 @@ class MigrateSearchScreenModel(
 
     override fun getEnabledSources(): List<CatalogueSource> {
         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 },

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt

@@ -16,6 +16,6 @@ class GlobalSearchScreenModel(
 
     override fun getEnabledSources(): List<CatalogueSource> {
         return super.getEnabledSources()
-            .filter { mutableState.value.sourceFilter != SourceFilter.PinnedOnly || "${it.id}" in pinnedSources }
+            .filter { state.value.sourceFilter != SourceFilter.PinnedOnly || "${it.id}" in pinnedSources }
     }
 }

+ 6 - 8
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<CatalogueSource, SearchItemResult> ->
         compareBy<CatalogueSource>(
@@ -66,10 +68,6 @@ abstract class SearchScreenModel(
     }
 
     open fun getEnabledSources(): List<CatalogueSource> {
-        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) {