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 }