From cb2d43c0d15b6d16b5a8522388f1cedf2fc29a16 Mon Sep 17 00:00:00 2001 From: Two-Ai <81279822+Two-Ai@users.noreply.github.com> Date: Fri, 5 May 2023 22:17:05 -0400 Subject: [PATCH] Ensure final download status is always set (#9453) --- .../tachiyomi/data/download/Downloader.kt | 56 ++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) 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 fe54e42640..69ae458310 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 @@ -526,9 +526,15 @@ class Downloader( dirname: String, ) { // Page list hasn't been initialized - val downloadPageCount = download.pages?.size ?: return - // Ensure that all pages has been downloaded - if (download.downloadedImages < downloadPageCount) return + val downloadPageCount = download.pages?.size ?: run { + download.status = Download.State.ERROR + return + } + // Ensure that all pages have been downloaded + if (download.downloadedImages != downloadPageCount) { + download.status = Download.State.ERROR + return + } // Ensure that the chapter folder has all the pages val downloadedImagesCount = tmpDir.listFiles().orEmpty().count { val fileName = it.name.orEmpty() @@ -540,29 +546,29 @@ class Downloader( else -> true } } - - download.status = if (downloadedImagesCount == downloadPageCount) { - createComicInfoFile( - tmpDir, - download.manga, - download.chapter, - download.source, - ) - - // Only rename the directory if it's downloaded - if (downloadPreferences.saveChaptersAsCBZ().get()) { - archiveChapter(mangaDir, dirname, tmpDir) - } else { - tmpDir.renameTo(dirname) - } - cache.addChapter(dirname, mangaDir, download.manga) - - DiskUtil.createNoMediaFile(tmpDir, context) - - Download.State.DOWNLOADED - } else { - Download.State.ERROR + if (downloadedImagesCount != downloadPageCount) { + download.status = Download.State.ERROR + return } + + createComicInfoFile( + tmpDir, + download.manga, + download.chapter, + download.source, + ) + + // Only rename the directory if it's downloaded + if (downloadPreferences.saveChaptersAsCBZ().get()) { + archiveChapter(mangaDir, dirname, tmpDir) + } else { + tmpDir.renameTo(dirname) + } + cache.addChapter(dirname, mangaDir, download.manga) + + DiskUtil.createNoMediaFile(tmpDir, context) + + download.status = Download.State.DOWNLOADED } /**