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>
This commit is contained in:
nzoba 2022-05-11 05:14:33 +02:00 committed by GitHub
parent 918d70e63a
commit cb16d1449a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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
}