diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt index ec6651dba..135925d41 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt @@ -81,7 +81,7 @@ class DownloadCache( if (sourceDir != null) { val mangaDir = sourceDir.files[provider.getMangaDirName(manga)] if (mangaDir != null) { - return provider.getValidChapterDirNames(chapter).any { it in mangaDir.files } + return provider.getValidChapterDirNames(chapter).any { it in mangaDir.files || "$it.cbz" in mangaDir.files } } } return false @@ -196,6 +196,8 @@ class DownloadCache( provider.getValidChapterDirNames(chapter).forEach { if (it in mangaDir.files) { mangaDir.files -= it + } else if ("$it.cbz" in mangaDir.files) { + mangaDir.files -= "$it.cbz" } } } @@ -226,6 +228,8 @@ class DownloadCache( provider.getValidChapterDirNames(chapter).forEach { if (it in mangaDir.files) { mangaDir.files -= it + } else if ("$it.cbz" in mangaDir.files) { + mangaDir.files -= "$it.cbz" } } } 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 c3e84716e..ed05a8479 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -287,12 +287,12 @@ class DownloadManager(/* SY private */ val context: Context) { // Assume there's only 1 version of the chapter name formats present val oldFolder = oldNames.asSequence() - .mapNotNull { mangaDir.findFile(it) } + .mapNotNull { mangaDir.findFile(it) ?: mangaDir.findFile("$it.cbz") } .firstOrNull() - if (oldFolder?.renameTo(newName) == true) { + if (oldFolder?.renameTo(newName + if (oldFolder.name?.endsWith(".cbz") == true) ".cbz" else "") == true) { cache.removeChapter(oldChapter, manga) - cache.addChapter(newName, mangaDir, manga) + cache.addChapter(newName + if (oldFolder.name?.endsWith(".cbz") == true) ".cbz" else "", mangaDir, manga) } else { Timber.e("Could not rename downloaded chapter: %s.", oldNames.joinToString()) } 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 329a8c29c..7bcaf53a4 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -60,7 +60,7 @@ class Downloader( private val sourceManager: SourceManager ) { - private val preferences: PreferencesHelper = Injekt.get() + private val preferences: PreferencesHelper by injectLazy() private val chapterCache: ChapterCache by injectLazy() @@ -473,14 +473,14 @@ class Downloader( // Only rename the directory if it's downloaded. if (download.status == Download.DOWNLOADED) { - mangaDir.findFile(dirname + ".tmp")?.delete() if (preferences.saveChaptersAsCBZ().get()) { - val zip = mangaDir.createFile(dirname + ".tmp") + val zip = mangaDir.createFile("$dirname.cbz.tmp") val zipOut = ZipOutputStream(BufferedOutputStream(zip.openOutputStream())) + val compressionLevel = preferences.saveChaptersAsCBZLevel().get() - zipOut.setLevel(preferences.saveChaptersAsCBZLevel().get()) + zipOut.setLevel(compressionLevel) - if (preferences.saveChaptersAsCBZLevel().get() == 0) { + if (compressionLevel == 0) { zipOut.setMethod(ZipEntry.STORED) } @@ -488,7 +488,7 @@ class Downloader( val input = img.openInputStream() val data = input.readBytes() val entry = ZipEntry(img.name) - if (preferences.saveChaptersAsCBZLevel().get() == 0) { + if (compressionLevel == 0) { val crc = CRC32() val size = img.length() crc.update(data) @@ -501,7 +501,7 @@ class Downloader( input.close() } zipOut.close() - zip.renameTo(dirname + ".cbz") + zip.renameTo("$dirname.cbz") tmpDir.delete() } else { tmpDir.renameTo(dirname) diff --git a/app/src/main/res/values/strings_sy.xml b/app/src/main/res/values/strings_sy.xml index 168932c7e..07fd7a494 100644 --- a/app/src/main/res/values/strings_sy.xml +++ b/app/src/main/res/values/strings_sy.xml @@ -178,6 +178,10 @@ Replace latest button Replace latest button with a custom browse view that includes both latest and browse + + Save Chapters as CBZ + CBZ Compression level + Download threads Higher values can speed up image downloading significantly, but can also trigger bans. Recommended value is 2 or 3. Current value is: %s @@ -478,8 +482,4 @@ %2$s, %1$d pages - Save Chapters as CBZ - CBZ Compression level - - \ No newline at end of file