Tracker-related cleanup

This commit is contained in:
arkon
2023-09-25 23:22:16 -04:00
parent 86edce0d87
commit c8e226acb2
54 changed files with 417 additions and 395 deletions
@@ -10,7 +10,7 @@ import eu.kanade.core.util.fastMapNotNull
import eu.kanade.presentation.more.stats.StatsScreenState
import eu.kanade.presentation.more.stats.data.StatsData
import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackerManager
import eu.kanade.tachiyomi.source.model.SManga
import kotlinx.coroutines.flow.update
import tachiyomi.core.util.lang.launchIO
@@ -33,10 +33,10 @@ class StatsScreenModel(
private val getTotalReadDuration: GetTotalReadDuration = Injekt.get(),
private val getTracks: GetTracks = Injekt.get(),
private val preferences: LibraryPreferences = Injekt.get(),
private val trackManager: TrackManager = Injekt.get(),
private val trackerManager: TrackerManager = Injekt.get(),
) : StateScreenModel<StatsScreenState>(StatsScreenState.Loading) {
private val loggedServices by lazy { trackManager.services.fastFilter { it.isLoggedIn } }
private val loggedInTrackers by lazy { trackerManager.trackers.fastFilter { it.isLoggedIn } }
init {
coroutineScope.launchIO {
@@ -72,7 +72,7 @@ class StatsScreenModel(
val trackersStatData = StatsData.Trackers(
trackedTitleCount = mangaTrackMap.count { it.value.isNotEmpty() },
meanScore = meanScore,
trackerCount = loggedServices.size,
trackerCount = loggedInTrackers.size,
)
mutableState.update {
@@ -115,10 +115,10 @@ class StatsScreenModel(
}
private suspend fun getMangaTrackMap(libraryManga: List<LibraryManga>): Map<Long, List<Track>> {
val loggedServicesIds = loggedServices.map { it.id }.toHashSet()
val loggedInTrackerIds = loggedInTrackers.map { it.id }.toHashSet()
return libraryManga.associate { manga ->
val tracks = getTracks.await(manga.id)
.fastFilter { it.syncId in loggedServicesIds }
.fastFilter { it.syncId in loggedInTrackerIds }
manga.id to tracks
}
@@ -144,7 +144,7 @@ class StatsScreenModel(
}
private fun get10PointScore(track: Track): Double {
val service = trackManager.getService(track.syncId)!!
val service = trackerManager.get(track.syncId)!!
return service.get10PointScore(track)
}
}