Get current track services when composing LibrarySettingsDialog

Fixes #9431

(cherry picked from commit 14c465d36f8265cb545405de867c4581468ecdc8)
This commit is contained in:
arkon 2023-05-03 14:41:08 -04:00 committed by Jobobby04
parent 1e8dcd53ea
commit 4baa396aa6
3 changed files with 8 additions and 6 deletions

View File

@ -143,12 +143,13 @@ private fun ColumnScope.FilterPage(
)
// SY <--
when (screenModel.trackServices.size) {
val trackServices = remember { screenModel.trackServices }
when (trackServices.size) {
0 -> {
// No trackers
}
1 -> {
val service = screenModel.trackServices[0]
val service = trackServices[0]
val filterTracker by screenModel.libraryPreferences.filterTracking(service.id.toInt()).collectAsState()
TriStateItem(
label = stringResource(R.string.action_filter_tracked),
@ -158,7 +159,7 @@ private fun ColumnScope.FilterPage(
}
else -> {
HeadingItem(R.string.action_filter_tracked)
screenModel.trackServices.map { service ->
trackServices.map { service ->
val filterTracker by screenModel.libraryPreferences.filterTracking(service.id.toInt()).collectAsState()
TriStateItem(
label = stringResource(service.nameRes()),

View File

@ -299,7 +299,6 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
val skippedUpdates = CopyOnWriteArrayList<Pair<Manga, String?>>()
val failedUpdates = CopyOnWriteArrayList<Pair<Manga, String?>>()
val hasDownloads = AtomicBoolean(false)
val loggedServices by lazy { trackManager.services.filter { it.isLogged } }
val restrictions = libraryPreferences.libraryUpdateMangaRestriction().get()
coroutineScope {
@ -368,6 +367,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
}
if (libraryPreferences.autoUpdateTrackers().get()) {
val loggedServices = trackManager.services.filter { it.isLogged }
updateTrackings(manga, loggedServices)
}
}

View File

@ -25,10 +25,11 @@ class LibrarySettingsScreenModel(
val libraryPreferences: LibraryPreferences = Injekt.get(),
private val setDisplayModeForCategory: SetDisplayModeForCategory = Injekt.get(),
private val setSortModeForCategory: SetSortModeForCategory = Injekt.get(),
trackManager: TrackManager = Injekt.get(),
private val trackManager: TrackManager = Injekt.get(),
) : ScreenModel {
val trackServices = trackManager.services.filter { service -> service.isLogged }
val trackServices
get() = trackManager.services.filter { it.isLogged }
// SY -->
val grouping by libraryPreferences.groupLibraryBy().asState(coroutineScope)