diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index 5a34f4806..a01a0f966 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -393,6 +393,16 @@ class Downloader( download.chapter.scanlator, download.chapter.url, ) + + // Being stopped after the download is moved into place but before it's indexed leaves a finished download + // on disk that is still queued, and downloading it again would save a second copy next to it + if (mangaDir.findFile("$chapterDirname.cbz") != null || mangaDir.findFile(chapterDirname) != null) { + mangaDir.findFile(chapterDirname + TMP_DIR_SUFFIX)?.delete() + cache.addChapter(chapterDirname, mangaDir, download.manga) + download.status = Download.State.DOWNLOADED + return + } + val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)!! try {