Переглянути джерело

Adjust download cache to ignore irrelevant files

Fixes #8530
arkon 2 роки тому
батько
коміт
9da232dcd8

+ 11 - 4
app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt

@@ -284,10 +284,17 @@ class DownloadCache(
 
                             mangaDirs.values.forEach { mangaDir ->
                                 val chapterDirs = mangaDir.dir.listFiles().orEmpty()
-                                    .mapNotNull { chapterDir ->
-                                        chapterDir.name
-                                            ?.replace(".cbz", "")
-                                            ?.takeUnless { it.endsWith(Downloader.TMP_DIR_SUFFIX) }
+                                    .mapNotNull {
+                                        when {
+                                            // Ignore incomplete downloads
+                                            it.name?.endsWith(Downloader.TMP_DIR_SUFFIX) == true -> null
+                                            // Folder of images
+                                            it.isDirectory -> it.name
+                                            // CBZ files
+                                            it.isFile && it.name?.endsWith(".cbz") == true -> it.name!!.replace(".cbz", "")
+                                            // Anything else is irrelevant
+                                            else -> null
+                                        }
                                     }
                                     .toMutableSet()
 

+ 1 - 1
i18n/src/main/res/values/strings.xml

@@ -504,7 +504,7 @@
     <string name="cache_deleted">Cache cleared. %1$d files have been deleted</string>
     <string name="cache_delete_error">Error occurred while clearing</string>
     <string name="pref_auto_clear_chapter_cache">Clear chapter cache on app close</string>
-    <string name="pref_invalidate_download_cache">Reindex downloads</string>
+    <string name="pref_invalidate_download_cache">Invalidate downloads index</string>
     <string name="pref_clear_database">Clear database</string>
     <string name="pref_clear_database_summary">Delete history for entries that are not saved in your library</string>
     <string name="clear_database_source_item_count">%1$d non-library entries in database</string>