Bläddra i källkod

[download-cache] Fixed init logic to skip when cache file is missing (#10362)

There are several possible causes of the cache file to not exist, including user
 action. By skipping these couple steps during initialization when the file is
 missing, a renew action is allowed to start and the cache will rebuild and
 hopefully work as expected.

Simple fix for #10360
Caleb Morris 1 år sedan
förälder
incheckning
7292dadd5f

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

@@ -103,12 +103,15 @@ class DownloadCache(
         scope.launch {
             rootDownloadsDirLock.withLock {
                 try {
-                    val diskCache = diskCacheFile.inputStream().use {
-                        ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())
+                    if (diskCacheFile.exists()) {
+                        val diskCache = diskCacheFile.inputStream().use {
+                            ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())
+                        }
+                        rootDownloadsDir = diskCache
+                        lastRenew = System.currentTimeMillis()
                     }
-                    rootDownloadsDir = diskCache
-                    lastRenew = System.currentTimeMillis()
                 } catch (e: Throwable) {
+                    logcat(LogPriority.ERROR, e) { "Failed to initialize disk cache" }
                     diskCacheFile.delete()
                 }
             }