Don't download completely read chapter if it was in queue (#8113)

This commit is contained in:
AntsyLich 2022-10-01 20:58:13 +06:00 committed by GitHub
parent 42b0e3e438
commit 00f442b77e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -132,7 +132,7 @@ class ReaderPresenter(
private val imageSaver: ImageSaver by injectLazy() private val imageSaver: ImageSaver by injectLazy()
private var chapterDownload: Download? = null private var chapterToDownload: Download? = null
/** /**
* Chapter list for the active manga. It's retrieved lazily and should be accessed for the first * Chapter list for the active manga. It's retrieved lazily and should be accessed for the first
@ -206,7 +206,7 @@ class ReaderPresenter(
if (currentChapters != null) { if (currentChapters != null) {
currentChapters.unref() currentChapters.unref()
saveReadingProgress(currentChapters.currChapter) saveReadingProgress(currentChapters.currChapter)
chapterDownload?.let { chapterToDownload?.let {
downloadManager.addDownloadsToStartOfQueue(listOf(it)) downloadManager.addDownloadsToStartOfQueue(listOf(it))
} }
} }
@ -336,7 +336,7 @@ class ReaderPresenter(
newChapters.ref() newChapters.ref()
oldChapters?.unref() oldChapters?.unref()
chapterDownload = deleteChapterFromDownloadQueue(newChapters.currChapter) chapterToDownload = deleteChapterFromDownloadQueue(newChapters.currChapter)
viewerChaptersRelay.call(newChapters) viewerChaptersRelay.call(newChapters)
} }
} }
@ -511,11 +511,9 @@ class ReaderPresenter(
val removeAfterReadSlots = downloadPreferences.removeAfterReadSlots().get() val removeAfterReadSlots = downloadPreferences.removeAfterReadSlots().get()
val chapterToDelete = chapterList.getOrNull(currentChapterPosition - removeAfterReadSlots) val chapterToDelete = chapterList.getOrNull(currentChapterPosition - removeAfterReadSlots)
if (removeAfterReadSlots != 0 && chapterDownload != null) { // If chapter is completely read no need to download it
downloadManager.addDownloadsToStartOfQueue(listOf(chapterDownload!!)) chapterToDownload = null
} else {
chapterDownload = null
}
// Check if deleting option is enabled and chapter exists // Check if deleting option is enabled and chapter exists
if (removeAfterReadSlots != -1 && chapterToDelete != null) { if (removeAfterReadSlots != -1 && chapterToDelete != null) {
enqueueDeleteReadChapters(chapterToDelete) enqueueDeleteReadChapters(chapterToDelete)