From 60f9391b4ec50d0277c6a20ed48a51764d03b249 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Tue, 29 Jun 2021 19:00:34 -0400 Subject: [PATCH] Cleanup --- .../tachiyomi/ui/manga/MangaController.kt | 2 +- .../tachiyomi/ui/manga/MangaPresenter.kt | 16 ++++++++-------- .../tachiyomi/ui/reader/ReaderPresenter.kt | 19 ++++++++++--------- .../ui/reader/loader/ChapterLoader.kt | 4 ++-- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index a0a366943..73b76afcb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -612,7 +612,7 @@ class MangaController : // SY --> fun openMergedMangaWebview() { val sourceManager: SourceManager = Injekt.get() - val mergedManga = presenter.mergedManga.filterNot { it.source == MERGED_SOURCE_ID } + val mergedManga = presenter.mergedManga.values.filterNot { it.source == MERGED_SOURCE_ID } val sources = mergedManga.map { sourceManager.getOrStub(it.source) } MaterialDialog(activity!!) .title(R.string.action_open_in_web_view) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt index 2d3527e3f..86469abcc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt @@ -148,7 +148,7 @@ class MangaPresenter( var meta: RaisedSearchMetadata? = null - var mergedManga = emptyList() + var mergedManga = emptyMap() private set var dedupe: Boolean = true @@ -161,7 +161,7 @@ class MangaPresenter( // SY --> if (source is MergedSource) { - launchIO { mergedManga = db.getMergedMangas(manga.id!!).executeAsBlocking() } + launchIO { mergedManga = db.getMergedMangas(manga.id!!).executeAsBlocking().associateBy { it.id!! } } } // SY <-- @@ -559,7 +559,7 @@ class MangaPresenter( fun deleteDownloads() { // SY --> if (source is MergedSource) { - val mergedManga = mergedManga.map { it to sourceManager.getOrStub(it.source) } + val mergedManga = mergedManga.map { it.value to sourceManager.getOrStub(it.value.source) } mergedManga.forEach { (manga, source) -> downloadManager.deleteManga(manga, source) } @@ -685,7 +685,7 @@ class MangaPresenter( private fun observeDownloads() { // SY --> val isMergedSource = source is MergedSource - val mergedIds = if (isMergedSource) mergedManga.mapNotNull { it.id } else emptyList() + val mergedIds = if (isMergedSource) mergedManga.keys else emptySet() // SY <-- observeDownloadsStatusSubscription?.let { remove(it) } observeDownloadsStatusSubscription = downloadManager.queue.getStatusObservable() @@ -741,7 +741,7 @@ class MangaPresenter( val isMergedSource = source is MergedSource // SY <-- chapters - .filter { downloadManager.isChapterDownloaded(/* SY --> */ if (isMergedSource) it.toMergedDownloadChapter() else it, if (isMergedSource) mergedManga.firstOrNull { manga -> it.manga_id == manga.id } ?: manga else /* SY <-- */ manga) } + .filter { downloadManager.isChapterDownloaded(/* SY --> */ if (isMergedSource) it.toMergedDownloadChapter() else it, if (isMergedSource) mergedManga[it.manga_id] ?: manga else /* SY <-- */ manga) } .forEach { it.status = Download.State.DOWNLOADED } } @@ -921,7 +921,7 @@ class MangaPresenter( // SY --> if (source is MergedSource) { chapters.groupBy { it.manga_id }.forEach { map -> - val manga = mergedManga.firstOrNull { it.id == map.key } ?: return@forEach + val manga = mergedManga[map.key] ?: return@forEach downloadManager.downloadChapters(manga, map.value.map { it.toMergedDownloadChapter() }) } } else /* SY <-- */ downloadManager.downloadChapters(manga, chapters) @@ -1117,7 +1117,7 @@ class MangaPresenter( .observeOn(AndroidSchedulers.mainThread()) // SY --> .map { trackItems -> - if (manga.source in mangaDexSourceIds || mergedManga.any { it.source in mangaDexSourceIds }) { + if (manga.source in mangaDexSourceIds || mergedManga.values.any { it.source in mangaDexSourceIds }) { val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST } when { mdTrack == null -> { @@ -1137,7 +1137,7 @@ class MangaPresenter( // SY --> private fun createMdListTrack(): TrackItem { - val mdManga = mergedManga.find { it.source in mangaDexSourceIds } + val mdManga = mergedManga.values.find { it.source in mangaDexSourceIds } val track = trackManager.mdList.createInitialTracker(manga, mdManga ?: manga) track.id = db.insertTrack(track).executeAsBlocking().insertedId() return TrackItem(track, trackManager.mdList) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index 7e2cb638a..7781b0e46 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -84,7 +84,7 @@ class ReaderPresenter( // SY --> var meta: RaisedSearchMetadata? = null private set - var mergedManga: List? = null + var mergedManga: Map? = null private set // SY <-- @@ -284,8 +284,8 @@ class ReaderPresenter( val context = Injekt.get() val source = sourceManager.getOrStub(manga.source) val mergedReferences = if (source is MergedSource) db.getMergedMangaReferences(manga.id!!).executeAsBlocking() else emptyList() - mergedManga = if (source is MergedSource) db.getMergedMangas(manga.id!!).executeAsBlocking() else emptyList() - loader = ChapterLoader(context, downloadManager, manga, source, sourceManager, mergedReferences, mergedManga ?: emptyList()) + mergedManga = if (source is MergedSource) db.getMergedMangas(manga.id!!).executeAsBlocking().associateBy { it.id!! } else emptyMap() + loader = ChapterLoader(context, downloadManager, manga, source, sourceManager, mergedReferences, mergedManga ?: emptyMap()) Observable.just(manga).subscribeLatestCache(ReaderActivity::setManga) viewerChaptersRelay.subscribeLatestCache(ReaderActivity::setChapters) @@ -601,11 +601,12 @@ class ReaderPresenter( // SY --> return when { resolveDefault && readingMode == ReadingModeType.DEFAULT && preferences.useAutoWebtoon().get() -> { - manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name)) ?: if (manga.readingModeType == ReadingModeType.DEFAULT.flagValue) { - default - } else { - readingMode.prefValue - } + manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name)) + ?: if (manga.readingModeType == ReadingModeType.DEFAULT.flagValue) { + default + } else { + readingMode.prefValue + } } resolveDefault && readingMode == ReadingModeType.DEFAULT -> default else -> manga.readingModeType @@ -929,7 +930,7 @@ class ReaderPresenter( val manga = if (mergedManga.isNullOrEmpty()) { manga } else { - mergedManga?.find { it.id == chapter.chapter.manga_id } + mergedManga.orEmpty()[chapter.chapter.manga_id] } ?: return // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt index 51fd4f297..8fe02e9fc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt @@ -29,7 +29,7 @@ class ChapterLoader( // SY --> private val sourceManager: SourceManager, private val mergedReferences: List, - private val mergedManga: List + private val mergedManga: Map // SY <-- ) { @@ -93,7 +93,7 @@ class ChapterLoader( source is MergedSource -> { val mangaReference = mergedReferences.firstOrNull { it.mangaId == chapter.chapter.manga_id } ?: error("Merge reference null") val source = sourceManager.get(mangaReference.mangaSourceId) ?: error("Source ${mangaReference.mangaSourceId} was null") - val manga = mergedManga.firstOrNull { it.id == chapter.chapter.manga_id } ?: error("Manga for merged chapter was null") + val manga = mergedManga[chapter.chapter.manga_id] ?: error("Manga for merged chapter was null") val isMergedMangaDownloaded = downloadManager.isChapterDownloaded(chapter.chapter, manga, true) when { isMergedMangaDownloaded -> DownloadPageLoader(chapter, manga, source, downloadManager)