From cb16d1449aa23fd8e803567696049bcf4f8d4d79 Mon Sep 17 00:00:00 2001 From: nzoba <55888232+nzoba@users.noreply.github.com> Date: Wed, 11 May 2022 05:14:33 +0200 Subject: [PATCH] Autoswitch to DownloadPageLoader when chapter is downloaded (#1176) * Switch to DownloadPageLoader when chapter is downloaded * Avoid flickering when switching to DownloadPageLoader * Improve switch to DownloadPageLoader * simplify logic * Implement switchToDownloadLoader method * move logic to readerPresenter * add boolean to avoid preload a second time * merge preload and downloadLoader activity methods * merge methods again * revert downloadManager to private Co-authored-by: Jays2Kings <8617760+Jays2Kings@users.noreply.github.com> --- .../eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt | 9 +++++++++ 1 file changed, 9 insertions(+) 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 74ff4a2e29..5c12c9f7c5 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 @@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.ui.manga.chapter.ChapterItem import eu.kanade.tachiyomi.ui.reader.chapter.ReaderChapterItem import eu.kanade.tachiyomi.ui.reader.loader.ChapterLoader import eu.kanade.tachiyomi.ui.reader.loader.DownloadPageLoader +import eu.kanade.tachiyomi.ui.reader.loader.HttpPageLoader import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter import eu.kanade.tachiyomi.ui.reader.model.ReaderPage import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters @@ -454,6 +455,14 @@ class ReaderPresenter( * that the user doesn't have to wait too long to continue reading. */ private fun preload(chapter: ReaderChapter) { + if (chapter.pageLoader is HttpPageLoader) { + val manga = manga ?: return + val isDownloaded = downloadManager.isChapterDownloaded(chapter.chapter, manga) + if (isDownloaded) { + chapter.state = ReaderChapter.State.Wait + } + } + if (chapter.state != ReaderChapter.State.Wait && chapter.state !is ReaderChapter.State.Error) { return }