diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/PagesCache.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/PagesCache.kt index 66d1b2f4d..82e70a650 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/PagesCache.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/PagesCache.kt @@ -4,7 +4,7 @@ import android.content.Context import com.tomclaw.cache.DiskLruCache import org.koitharu.kotatsu.utils.FileSizeUtils import org.koitharu.kotatsu.utils.ext.longHashCode -import org.koitharu.kotatsu.utils.ext.sub +import org.koitharu.kotatsu.utils.ext.subdir import org.koitharu.kotatsu.utils.ext.takeIfReadable import java.io.File import java.io.InputStream @@ -13,8 +13,10 @@ import java.io.OutputStream class PagesCache(context: Context) { private val cacheDir = context.externalCacheDir ?: context.cacheDir - private val lruCache = - DiskLruCache.create(cacheDir.sub(Cache.PAGES.dir), FileSizeUtils.mbToBytes(200)) + private val lruCache = DiskLruCache.create( + cacheDir.subdir(Cache.PAGES.dir), + FileSizeUtils.mbToBytes(200) + ) operator fun get(url: String): File? { return lruCache.get(url)?.takeIfReadable() @@ -22,7 +24,7 @@ class PagesCache(context: Context) { @Deprecated("Useless lambda") fun put(url: String, writer: (OutputStream) -> Unit): File { - val file = cacheDir.sub(url.longHashCode().toString()) + val file = File(cacheDir, url.longHashCode().toString()) file.outputStream().use(writer) val res = lruCache.put(url, file) file.delete() @@ -30,7 +32,7 @@ class PagesCache(context: Context) { } fun put(url: String, inputStream: InputStream): File { - val file = cacheDir.sub(url.longHashCode().toString()) + val file = File(cacheDir, url.longHashCode().toString()) file.outputStream().use { out -> inputStream.copyTo(out) } diff --git a/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt b/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt index 63e774884..a58e5098c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/domain/MangaSearchRepository.kt @@ -96,7 +96,7 @@ class MangaSearchRepository( MangaSuggestionsProvider.QUERY_URI, SUGGESTION_PROJECTION, null, - null, + arrayOfNulls(1), null )?.use { cursor -> cursor.count } ?: 0 } diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/CacheUtils.kt b/app/src/main/java/org/koitharu/kotatsu/utils/CacheUtils.kt index 2760b831e..37487e297 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/CacheUtils.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/CacheUtils.kt @@ -23,12 +23,12 @@ object CacheUtils { @WorkerThread fun computeCacheSize(context: Context, name: String) = getCacheDirs(context) - .map { it.sub(name) } + .map { File(it, name) } .sumOf { x -> x.computeSize() } @WorkerThread fun clearCache(context: Context, name: String) = getCacheDirs(context) - .map { it.sub(name) } + .map { File(it, name) } .forEach { it.deleteRecursively() } // FIXME need async implementation diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt index 0c2d9b579..248f0f158 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt @@ -13,8 +13,13 @@ import java.util.zip.ZipEntry import java.util.zip.ZipFile @Suppress("NOTHING_TO_INLINE") +@Deprecated("Useless", ReplaceWith("File(this, name)", "java.io.File")) inline fun File.sub(name: String) = File(this, name) +fun File.subdir(name: String) = File(this, name).also { + if (!it.exists()) it.mkdirs() +} + fun File.takeIfReadable() = takeIf { it.exists() && it.canRead() } fun ZipFile.readText(entry: ZipEntry) = getInputStream(entry).bufferedReader().use {