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

This commit is contained in:
Ivan Iskandar 2022-11-27 09:37:22 +07:00 committed by GitHub
parent 28bceffc6f
commit 217b03a292
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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