浏览代码

Fix library not loading when not logged in to any tracker (#8629)

Ivan Iskandar 2 年之前
父节点
当前提交
217b03a292
共有 1 个文件被更改,包括 12 次插入7 次删除
  1. 12 7
      app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt

+ 12 - 7
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt

@@ -52,6 +52,7 @@ import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.onEach
@@ -417,13 +418,17 @@ class LibraryScreenModel(
      */
     private fun getTrackingFilterFlow(): Flow<Map<Long, Int>> {
         val loggedServices = trackManager.services.filter { it.isLogged }
-        val a = loggedServices
-            .map { libraryPreferences.filterTracking(it.id.toInt()).changes() }
-            .toTypedArray()
-        return combine(*a) {
-            loggedServices
-                .mapIndexed { index, trackService -> trackService.id to it[index] }
-                .toMap()
+        return if (loggedServices.isNotEmpty()) {
+            val prefFlows = loggedServices
+                .map { libraryPreferences.filterTracking(it.id.toInt()).changes() }
+                .toTypedArray()
+            combine(*prefFlows) {
+                loggedServices
+                    .mapIndexed { index, trackService -> trackService.id to it[index] }
+                    .toMap()
+            }
+        } else {
+            flowOf(emptyMap())
         }
     }