Remove duplicated logic for binding enhanced trackers

(cherry picked from commit b7d282235dd233aac3bbdba3c9cfe7cac877b2e1)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
This commit is contained in:
arkon 2023-10-08 19:19:04 -04:00 committed by Jobobby04
parent 9f325ea106
commit 7990e6a7de
3 changed files with 25 additions and 43 deletions

View File

@ -17,8 +17,7 @@ class AddTracks(
private val syncChapterProgressWithTrack: SyncChapterProgressWithTrack,
) {
suspend fun bindEnhancedTracks(manga: Manga, source: Source) {
withNonCancellableContext {
suspend fun bindEnhancedTracks(manga: Manga, source: Source) = withNonCancellableContext {
getTracks.await(manga.id)
.filterIsInstance<EnhancedTracker>()
.filter { it.accept(source) }
@ -44,4 +43,3 @@ class AddTracks(
}
}
}
}

View File

@ -132,7 +132,7 @@ object HistoryTab : Tab {
}
}
suspend fun openChapter(context: Context, chapter: Chapter?) {
private suspend fun openChapter(context: Context, chapter: Chapter?) {
if (chapter != null) {
val intent = ReaderActivity.newIntent(context, chapter.mangaId, chapter.id)
context.startActivity(intent)

View File

@ -19,6 +19,7 @@ import eu.kanade.domain.manga.model.copyFrom
import eu.kanade.domain.manga.model.downloadedFilter
import eu.kanade.domain.manga.model.toSManga
import eu.kanade.domain.source.service.SourcePreferences
import eu.kanade.domain.track.interactor.AddTracks
import eu.kanade.domain.track.model.toDomainTrack
import eu.kanade.domain.ui.UiPreferences
import eu.kanade.presentation.manga.DownloadAction
@ -29,7 +30,6 @@ import eu.kanade.tachiyomi.data.download.DownloadCache
import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.data.track.EnhancedTracker
import eu.kanade.tachiyomi.data.track.Tracker
import eu.kanade.tachiyomi.data.track.TrackerManager
import eu.kanade.tachiyomi.data.track.mdlist.MdList
import eu.kanade.tachiyomi.network.HttpException
@ -162,6 +162,7 @@ class MangaScreenModel(
private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get(),
private val getCategories: GetCategories = Injekt.get(),
private val getTracks: GetTracks = Injekt.get(),
private val addTracks: AddTracks = Injekt.get(),
private val setMangaCategories: SetMangaCategories = Injekt.get(),
private val mangaRepository: MangaRepository = Injekt.get(),
val snackbarHostState: SnackbarHostState = SnackbarHostState(),
@ -737,24 +738,7 @@ class MangaScreenModel(
}
// Finally match with enhanced tracking when available
val source = state.source
state.trackItems
.map { it.tracker }
.filterIsInstance<EnhancedTracker>()
.filter { it.accept(source) }
.forEach { service ->
launchIO {
try {
service.match(manga)?.let { track ->
(service as Tracker).register(track, mangaId)
}
} catch (e: Exception) {
logcat(LogPriority.WARN, e) {
"Could not match manga: ${manga.title} with service $service"
}
}
}
}
addTracks.bindEnhancedTracks(manga, state.source)
}
}
}