From f6632940fab945f054daf6ea33196d985d0bc1e5 Mon Sep 17 00:00:00 2001 From: Mohannad <134175138+xMohnad@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:44:30 +0300 Subject: [PATCH] Fix duplicate images after resuming paused downloads (#3504) Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> --- .../kanade/tachiyomi/data/download/Downloader.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 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 b2306b625..614de4793 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 @@ -439,9 +439,7 @@ class Downloader( // Try to find the image file val imageFile = tmpDir.listFiles()?.firstOrNull { - val filename = it.name - if (filename == null || filename.endsWith(".tmp")) return@firstOrNull false - filename.startsWith("$filename.") || filename.startsWith("${filename}__001") + isDownloadedPageImage(it.name ?: return@firstOrNull false, filename) } try { @@ -601,6 +599,16 @@ class Downloader( return downloadedImagesCount == downloadPageCount } + /** + * Checks if the file name matches a downloaded page image. + * + * @param fileName Name of the file to check + * @param pagePrefix Expected page prefix (e.g., "001") + */ + private fun isDownloadedPageImage(fileName: String, pagePrefix: String): Boolean = + !fileName.endsWith(".tmp") || fileName.startsWith("$pagePrefix.") || + fileName.startsWith("${pagePrefix}__001.") + /** * Archive the chapter pages as a CBZ. */