diff --git a/app/src/main/java/io/legado/app/api/controller/BookController.kt b/app/src/main/java/io/legado/app/api/controller/BookController.kt index 1ae31291b..73d83871a 100644 --- a/app/src/main/java/io/legado/app/api/controller/BookController.kt +++ b/app/src/main/java/io/legado/app/api/controller/BookController.kt @@ -79,7 +79,6 @@ object BookController { ?: return returnData.setErrorMsg("bookUrl为空") val src = parameters["path"]?.firstOrNull() ?: return returnData.setErrorMsg("图片链接为空") - val width = parameters["width"]?.firstOrNull()?.toInt() ?: 640 if (this.bookUrl != bookUrl) { this.book = appDb.bookDao.getBook(bookUrl) ?: return returnData.setErrorMsg("bookUrl不对") @@ -95,7 +94,7 @@ object BookController { } this.bookUrl = bookUrl return returnData.setData( - BitmapUtils.decodeBitmap(vFile.absolutePath, width, width) + ImageLoader.loadBitmap(appCtx, vFile.absolutePath).submit().get() ) } diff --git a/app/src/main/java/io/legado/app/help/BookHelp.kt b/app/src/main/java/io/legado/app/help/BookHelp.kt index a77157db2..dfb7b5193 100644 --- a/app/src/main/java/io/legado/app/help/BookHelp.kt +++ b/app/src/main/java/io/legado/app/help/BookHelp.kt @@ -122,7 +122,7 @@ object BookHelp { cacheFolderName, book.getFolderName(), cacheImageFolderName, - "${MD5Utils.md5Encode16(src)}${getImageSuffix(src)}" + "${MD5Utils.md5Encode16(src)}.${getImageSuffix(src)}" ).writeBytes(it) } } catch (e: Exception) { @@ -137,14 +137,14 @@ object BookHelp { cacheFolderName, book.getFolderName(), cacheImageFolderName, - "${MD5Utils.md5Encode16(src)}${getImageSuffix(src)}" + "${MD5Utils.md5Encode16(src)}.${getImageSuffix(src)}" ) } fun getImageSuffix(src: String): String { var suffix = src.substringAfterLast(".").substringBefore(",") if (suffix.length > 5) { - suffix = ".jpg" + suffix = "jpg" } return suffix } 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 979737d44..713a21712 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) - } - } - } - }