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 89dabb7b7..16de5d464 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 @@ -14,11 +14,15 @@ import io.legado.app.help.book.isLocal import io.legado.app.help.config.AppConfig import io.legado.app.help.glide.ImageLoader import io.legado.app.model.BookCover +import io.legado.app.model.ImageProvider import io.legado.app.model.ReadBook import io.legado.app.model.localBook.LocalBook import io.legado.app.model.webBook.WebBook -import io.legado.app.ui.book.read.page.provider.ImageProvider -import io.legado.app.utils.* +import io.legado.app.utils.GSON +import io.legado.app.utils.cnCompare +import io.legado.app.utils.fromJsonObject +import io.legado.app.utils.printOnDebug +import io.legado.app.utils.stackTraceStr import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking import splitties.init.appCtx 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/model/ImageProvider.kt similarity index 91% rename from app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt rename to app/src/main/java/io/legado/app/model/ImageProvider.kt index a81b336fa..206164c1f 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt +++ b/app/src/main/java/io/legado/app/model/ImageProvider.kt @@ -1,4 +1,4 @@ -package io.legado.app.ui.book.read.page.provider +package io.legado.app.model import android.graphics.Bitmap import android.graphics.BitmapFactory @@ -15,7 +15,6 @@ import io.legado.app.help.book.isEpub import io.legado.app.help.book.isPdf import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.Coroutine -import io.legado.app.model.ReadBook import io.legado.app.model.localBook.EpubFile import io.legado.app.model.localBook.PdfFile import io.legado.app.utils.BitmapUtils @@ -65,6 +64,14 @@ object ImageProvider { } + fun put(key: String, bitmap: Bitmap) { + bitmapLruCache.put(key, bitmap) + } + + fun get(key: String): Bitmap? { + return bitmapLruCache.get(key) + } + private fun getNotRecycled(key: String): Bitmap? { val bitmap = bitmapLruCache.get(key) ?: return null if (bitmap.isRecycled) { @@ -193,4 +200,20 @@ object ImageProvider { return tmp } + fun getServiceCover(coverUrl: String?): Bitmap { + var bitmap: Bitmap? + if (!coverUrl.isNullOrBlank()) { + bitmap = get(coverUrl) + if (bitmap != null) { + return bitmap + } + } + bitmap = get("defaultCover") + if (bitmap == null) { + bitmap = BitmapFactory.decodeResource(appCtx.resources, R.drawable.icon_read_book)!! + put("defaultCover", bitmap) + } + return bitmap + } + } diff --git a/app/src/main/java/io/legado/app/service/AudioPlayService.kt b/app/src/main/java/io/legado/app/service/AudioPlayService.kt index c6b49c225..14c2cb6f5 100644 --- a/app/src/main/java/io/legado/app/service/AudioPlayService.kt +++ b/app/src/main/java/io/legado/app/service/AudioPlayService.kt @@ -112,10 +112,8 @@ class AudioPlayService : BaseService(), .submit() .get() }.onSuccess { - val tmpCover = cover cover = it upNotification() - tmpCover.recycle() } } @@ -157,7 +155,6 @@ class AudioPlayService : BaseService(), upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED) AudioPlay.status = Status.STOP postEvent(EventBus.AUDIO_STATE, Status.STOP) - cover.recycle() } /** diff --git a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt index bd4850b09..17bbc9dff 100644 --- a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt @@ -113,10 +113,8 @@ abstract class BaseReadAloudService : BaseService(), .submit() .get() }.onSuccess { - val tmpCover = cover cover = it upNotification() - tmpCover.recycle() } } @@ -140,7 +138,6 @@ abstract class BaseReadAloudService : BaseService(), upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED) mediaSessionCompat.release() ReadBook.uploadProgress() - cover.recycle() } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { diff --git a/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt b/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt index 9d5de7641..335d18a14 100644 --- a/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt @@ -21,7 +21,7 @@ import io.legado.app.help.glide.ImageLoader import io.legado.app.help.glide.OkHttpModelLoader import io.legado.app.help.source.SourceVerificationHelp import io.legado.app.lib.theme.primaryColor -import io.legado.app.ui.book.read.page.provider.ImageProvider +import io.legado.app.model.ImageProvider import io.legado.app.ui.widget.dialog.PhotoDialog import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index ade42e93b..d1f764ac2 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -200,13 +200,7 @@ class ReadBookActivity : BaseReadBookActivity(), super.onWindowFocusChanged(hasFocus) upSystemUiVisibility() if (hasFocus) { - //调节系统亮度后如果设置亮度值和原来一样亮度不会变 - launch { - delay(100) - binding.readMenu.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE) - delay(1000) - binding.readMenu.upBrightnessState() - } + binding.readMenu.upBrightnessState() } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index d04ddfad2..9cb45f724 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -23,13 +23,13 @@ import io.legado.app.help.book.isLocal import io.legado.app.help.book.removeType import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.Coroutine +import io.legado.app.model.ImageProvider import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook import io.legado.app.model.localBook.LocalBook import io.legado.app.model.webBook.WebBook import io.legado.app.service.BaseReadAloudService import io.legado.app.ui.book.read.page.entities.TextChapter -import io.legado.app.ui.book.read.page.provider.ImageProvider import io.legado.app.ui.book.searchContent.SearchResult import io.legado.app.utils.* import kotlinx.coroutines.Dispatchers.IO diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt index 3b01bec76..954144e19 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt @@ -15,13 +15,13 @@ import io.legado.app.help.book.isImage import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.lib.theme.accentColor +import io.legado.app.model.ImageProvider import io.legado.app.model.ReadBook import io.legado.app.ui.book.read.page.entities.TextLine import io.legado.app.ui.book.read.page.entities.TextPage import io.legado.app.ui.book.read.page.entities.TextPos import io.legado.app.ui.book.read.page.entities.column.* import io.legado.app.ui.book.read.page.provider.ChapterProvider -import io.legado.app.ui.book.read.page.provider.ImageProvider import io.legado.app.ui.book.read.page.provider.TextPageFactory import io.legado.app.utils.* import kotlin.math.min diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt index 5459e5017..4ad3074e0 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt @@ -14,6 +14,7 @@ import io.legado.app.data.entities.BookChapter import io.legado.app.help.book.BookContent import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig +import io.legado.app.model.ImageProvider import io.legado.app.model.ReadBook import io.legado.app.ui.book.read.page.entities.TextChapter import io.legado.app.ui.book.read.page.entities.TextLine diff --git a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt index eb9d040a2..43fc522cc 100644 --- a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt @@ -21,9 +21,9 @@ import io.legado.app.lib.dialogs.alert import io.legado.app.lib.prefs.fragment.PreferenceFragment import io.legado.app.lib.theme.primaryColor import io.legado.app.model.CheckSource +import io.legado.app.model.ImageProvider import io.legado.app.receiver.SharedReceiverActivity import io.legado.app.service.WebService -import io.legado.app.ui.book.read.page.provider.ImageProvider import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.widget.number.NumberPickerDialog import io.legado.app.utils.* diff --git a/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt b/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt index 3e310ab16..7004b78a1 100644 --- a/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt @@ -11,8 +11,8 @@ import io.legado.app.help.book.BookHelp import io.legado.app.help.glide.ImageLoader import io.legado.app.help.glide.OkHttpModelLoader import io.legado.app.model.BookCover +import io.legado.app.model.ImageProvider import io.legado.app.model.ReadBook -import io.legado.app.ui.book.read.page.provider.ImageProvider import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding