diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index aa09dfd2c1..2b4d8cce6a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/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> { 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()) } }