Remove from queue after read (#3870)
* Add option to remove chapter from download queue after marked as read * Begone bug There was a bug when one queued a new download to the downloader. Which resulted in getChapterDownloadOrNull() would not find the corresponding download for the provided chapter * Fix review comment * Remove preference and just remove from queue
This commit is contained in:
parent
812368e332
commit
11ab3b2c2e
2 changed files with 22 additions and 0 deletions
|
@ -173,6 +173,17 @@ class DownloadManager(private val context: Context) {
|
||||||
return cache.isChapterDownloaded(chapter, manga, skipCache)
|
return cache.isChapterDownloaded(chapter, manga, skipCache)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the download from queue if the chapter is queued for download
|
||||||
|
* else it will return null which means that the chapter is not queued for download
|
||||||
|
*
|
||||||
|
* @param chapter the chapter to check.
|
||||||
|
*/
|
||||||
|
fun getChapterDownloadOrNull(chapter: Chapter): Download? {
|
||||||
|
return downloader.queue
|
||||||
|
.firstOrNull { it.chapter.id == chapter.id && it.chapter.manga_id == chapter.manga_id }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the amount of downloaded chapters for a manga.
|
* Returns the amount of downloaded chapters for a manga.
|
||||||
*
|
*
|
||||||
|
|
|
@ -361,6 +361,7 @@ class ReaderPresenter(
|
||||||
selectedChapter.chapter.read = true
|
selectedChapter.chapter.read = true
|
||||||
updateTrackChapterRead(selectedChapter)
|
updateTrackChapterRead(selectedChapter)
|
||||||
deleteChapterIfNeeded(selectedChapter)
|
deleteChapterIfNeeded(selectedChapter)
|
||||||
|
deleteChapterFromDownloadQueue(currentChapters.currChapter)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedChapter != currentChapters.currChapter) {
|
if (selectedChapter != currentChapters.currChapter) {
|
||||||
|
@ -370,6 +371,16 @@ class ReaderPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes [currentChapter] from download queue
|
||||||
|
* if setting is enabled and [currentChapter] is queued for download
|
||||||
|
*/
|
||||||
|
private fun deleteChapterFromDownloadQueue(currentChapter: ReaderChapter) {
|
||||||
|
downloadManager.getChapterDownloadOrNull(currentChapter.chapter)?.let { download ->
|
||||||
|
downloadManager.deletePendingDownload(download)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines if deleting option is enabled and nth to last chapter actually exists.
|
* Determines if deleting option is enabled and nth to last chapter actually exists.
|
||||||
* If both conditions are satisfied enqueues chapter for delete
|
* If both conditions are satisfied enqueues chapter for delete
|
||||||
|
|
Reference in a new issue