diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 6be083ce9..e8b50dffa 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -55,7 +55,6 @@ object ReadBook : CoroutineScope by MainScope() { callBack?.upMenuView() callBack?.upPageAnim() upWebBook(book) - ImageProvider.clearAllCache() synchronized(this) { loadingChapters.clear() } @@ -207,7 +206,6 @@ object ReadBook : CoroutineScope by MainScope() { } upReadTime() preDownload() - ImageProvider.clearOut(durChapterIndex) } /** 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 386a37dbb..f5d8d9173 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 @@ -4,32 +4,17 @@ import android.graphics.Bitmap import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookSource import io.legado.app.help.BookHelp +import io.legado.app.help.glide.ImageLoader import io.legado.app.model.localBook.EpubFile import io.legado.app.utils.BitmapUtils import io.legado.app.utils.FileUtils import kotlinx.coroutines.runBlocking +import splitties.init.appCtx import java.io.FileOutputStream import java.util.concurrent.ConcurrentHashMap object ImageProvider { - private val cache = ConcurrentHashMap>() - - @Synchronized - fun getCache(chapterIndex: Int, src: String): Bitmap? { - return cache[chapterIndex]?.get(src) - } - - @Synchronized - fun setCache(chapterIndex: Int, src: String, bitmap: Bitmap) { - var indexCache = cache[chapterIndex] - if (indexCache == null) { - indexCache = ConcurrentHashMap() - cache[chapterIndex] = indexCache - } - indexCache[src] = bitmap - } - fun getImage( book: Book, chapterIndex: Int, @@ -37,9 +22,6 @@ object ImageProvider { bookSource: BookSource?, onUi: Boolean = false, ): Bitmap? { - getCache(chapterIndex, src)?.let { - return it - } val vFile = BookHelp.getImage(book, src) if (!vFile.exists()) { if (book.isEpub()) { @@ -56,38 +38,10 @@ object ImageProvider { } } return try { - val bitmap = BitmapUtils.decodeBitmap( - vFile.absolutePath, - ChapterProvider.visibleWidth, - ChapterProvider.visibleHeight - ) - setCache(chapterIndex, src, bitmap) - bitmap + ImageLoader.loadBitmap(appCtx, vFile.absolutePath).submit().get() } catch (e: Exception) { null } } - @Synchronized - fun clearAllCache() { - cache.forEach { indexCache -> - indexCache.value.forEach { - it.value.recycle() - } - } - cache.clear() - } - - @Synchronized - fun clearOut(chapterIndex: Int) { - cache.forEach { indexCache -> - if (indexCache.key !in chapterIndex - 1..chapterIndex + 1) { - indexCache.value.forEach { - it.value.recycle() - } - cache.remove(indexCache.key) - } - } - } - }