Invalidate DiskLruCache if broken
This commit is contained in:
@@ -13,9 +13,9 @@ import java.io.InputStream
|
|||||||
class PagesCache(context: Context) {
|
class PagesCache(context: Context) {
|
||||||
|
|
||||||
private val cacheDir = context.externalCacheDir ?: context.cacheDir
|
private val cacheDir = context.externalCacheDir ?: context.cacheDir
|
||||||
private val lruCache = DiskLruCache.create(
|
private val lruCache = createDiskLruCacheSafe(
|
||||||
cacheDir.subdir(CacheDir.PAGES.dir),
|
dir = cacheDir.subdir(CacheDir.PAGES.dir),
|
||||||
FileSize.MEGABYTES.convert(200, FileSize.BYTES),
|
size = FileSize.MEGABYTES.convert(200, FileSize.BYTES),
|
||||||
)
|
)
|
||||||
|
|
||||||
operator fun get(url: String): File? {
|
operator fun get(url: String): File? {
|
||||||
@@ -61,3 +61,13 @@ class PagesCache(context: Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createDiskLruCacheSafe(dir: File, size: Long): DiskLruCache {
|
||||||
|
return try {
|
||||||
|
DiskLruCache.create(dir, size)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
dir.deleteRecursively()
|
||||||
|
dir.mkdir()
|
||||||
|
DiskLruCache.create(dir, size)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user