From 4c8c7d8106253eecee5f56065715634b39af970b Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 16 Sep 2022 23:50:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/read/page/provider/ImageProvider.kt | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt index 8d353a0e5..f4996dca5 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt @@ -133,25 +133,20 @@ object ImageProvider { if (cacheBitmap != null) return cacheBitmap if (height != null && AppConfig.asyncLoadImage && ReadBook.pageAnim() == PageAnim.scrollPageAnim) { Coroutine.async { - kotlin.runCatching { - val bitmap = BitmapUtils.decodeBitmap(vFile.absolutePath, width, height) - ?: throw NoStackTraceException(appCtx.getString(R.string.error_decode_bitmap)) - withContext(Main) { - bitmapLruCache.put(vFile.absolutePath, bitmap) - } - }.onFailure { - //错误图片占位,防止重复获取 - withContext(Main) { - bitmapLruCache.put(vFile.absolutePath, errorBitmap) - } - putDebug( - "ImageProvider: decode bitmap failed. path: ${vFile.absolutePath}\n$it", - it - ) - } + val bitmap = BitmapUtils.decodeBitmap(vFile.absolutePath, width, height) + ?: throw NoStackTraceException(appCtx.getString(R.string.error_decode_bitmap)) withContext(Main) { - block?.invoke() + bitmapLruCache.put(vFile.absolutePath, bitmap) } + }.onError { + //错误图片占位,防止重复获取 + bitmapLruCache.put(vFile.absolutePath, errorBitmap) + putDebug( + "ImageProvider: decode bitmap failed. path: ${vFile.absolutePath}\n$it", + it + ) + }.onFinally { + block?.invoke() } return null }