diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index 400fe56482..ac2df1ee96 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -173,6 +173,17 @@ class DownloadManager(private val context: Context) { 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. * 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 1ec3cd1aff..7068022621 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 @@ -361,6 +361,7 @@ class ReaderPresenter( selectedChapter.chapter.read = true updateTrackChapterRead(selectedChapter) deleteChapterIfNeeded(selectedChapter) + deleteChapterFromDownloadQueue(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. * If both conditions are satisfied enqueues chapter for delete