feat:正文图片添加失败图,加载失败删除

This commit is contained in:
Xwite
2022-04-12 10:38:37 +08:00
parent 9d7c896842
commit e4e9d4c2d4
2 changed files with 36 additions and 4 deletions
@@ -1,6 +1,10 @@
package io.legado.app.ui.book.read.page.provider package io.legado.app.ui.book.read.page.provider
import android.graphics.Bitmap import android.graphics.Bitmap
import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.load.DataSource
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Target
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookSource import io.legado.app.data.entities.BookSource
import io.legado.app.help.BookHelp import io.legado.app.help.BookHelp
@@ -8,9 +12,11 @@ import io.legado.app.help.glide.ImageLoader
import io.legado.app.model.localBook.EpubFile import io.legado.app.model.localBook.EpubFile
import io.legado.app.utils.BitmapUtils import io.legado.app.utils.BitmapUtils
import io.legado.app.utils.FileUtils import io.legado.app.utils.FileUtils
import io.legado.app.R
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import splitties.init.appCtx import splitties.init.appCtx
import java.io.FileOutputStream import java.io.FileOutputStream
import java.io.File
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
object ImageProvider { object ImageProvider {
@@ -37,10 +43,36 @@ object ImageProvider {
} }
} }
} }
return try { return ImageLoader.loadBitmap(appCtx, vFile.absolutePath)
ImageLoader.loadBitmap(appCtx, vFile.absolutePath).submit().get() .error(R.drawable.image_loading_error)
} catch (e: Exception) { .listener(glideListener)
null .submit()
.get()
}
private val glideListener by lazy {
object : RequestListener<Bitmap> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Bitmap>?,
isFirstResource: Boolean
): Boolean {
File(model as String).delete()
return false
}
override fun onResourceReady(
resource: Bitmap?,
model: Any?,
target: Target<Bitmap>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
return false
}
} }
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB