[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.

Co-authored-by: Caleb Morris <347395+CalebMorris@users.noreply.github.com>
This commit is contained in:
Secozzi 2024-05-08 16:18:39 +02:00
parent 28e70ffd5d
commit 6ea76e0dbc
No known key found for this signature in database
GPG key ID: 71E9C97D8DDC2662
2 changed files with 14 additions and 8 deletions

View file

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

View file

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