diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt b/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt index fae28f875..32b13d7c5 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhCacheKeyFactory.kt @@ -23,7 +23,7 @@ object EhCacheKeyFactory { return "image:$gid:$index" } - fun getImageKey(url: String): String { + fun getPreviewThumbKey(url: String): String { return url.removePrefix(URL_PREFIX_THUMB_E) .removePrefix(URL_PREFIX_THUMB_EX) .removePrefix("t/") diff --git a/app/src/main/java/com/hippo/ehviewer/coil/Extensions.kt b/app/src/main/java/com/hippo/ehviewer/coil/Extensions.kt index e3f8bf320..fc37d8a89 100644 --- a/app/src/main/java/com/hippo/ehviewer/coil/Extensions.kt +++ b/app/src/main/java/com/hippo/ehviewer/coil/Extensions.kt @@ -5,7 +5,7 @@ import coil.request.ImageRequest import com.hippo.ehviewer.client.EhCacheKeyFactory fun ImageRequest.Builder.ehUrl(url: String) = apply { - val key = EhCacheKeyFactory.getImageKey(url) + val key = EhCacheKeyFactory.getPreviewThumbKey(url) data(url) memoryCacheKey(key) diskCacheKey(key) diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/ArchivePageLoader.kt b/app/src/main/java/com/hippo/ehviewer/gallery/ArchivePageLoader.kt index 3b60b4b06..6ad4f4ef4 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/ArchivePageLoader.kt +++ b/app/src/main/java/com/hippo/ehviewer/gallery/ArchivePageLoader.kt @@ -17,7 +17,6 @@ package com.hippo.ehviewer.gallery import android.content.Context import android.net.Uri -import android.os.ParcelFileDescriptor import com.hippo.UriArchiveAccessor import com.hippo.ehviewer.Settings import com.hippo.image.Image @@ -36,7 +35,6 @@ import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withPermit -import java.io.IOException class ArchivePageLoader(context: Context, uri: Uri, passwdFlow: Flow) : PageLoader2(), CoroutineScope { @@ -137,18 +135,12 @@ class ArchivePageLoader(context: Context, uri: Uri, passwdFlow: Flow) : } override fun save(index: Int, file: UniFile): Boolean { - val fd: ParcelFileDescriptor - try { - fd = file.openFileDescriptor("w") - } catch (e: IOException) { - e.printStackTrace() - return false - } - archiveAccessor.extractToFd(index, fd.fd) - try { - fd.close() - } catch (e: IOException) { - e.printStackTrace() + runCatching { + file.openFileDescriptor("w").use { + archiveAccessor.extractToFd(index, it.fd) + } + }.onFailure { + it.printStackTrace() return false } return true