kunfei 4 лет назад
Родитель
Сommit
3e12d8b901

+ 12 - 17
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
         }