This commit is contained in:
kunfei
2023-07-09 13:19:21 +08:00
parent 4678e34ece
commit f0ee7b19da
11 changed files with 38 additions and 22 deletions
@@ -14,11 +14,15 @@ import io.legado.app.help.book.isLocal
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.glide.ImageLoader import io.legado.app.help.glide.ImageLoader
import io.legado.app.model.BookCover import io.legado.app.model.BookCover
import io.legado.app.model.ImageProvider
import io.legado.app.model.ReadBook import io.legado.app.model.ReadBook
import io.legado.app.model.localBook.LocalBook import io.legado.app.model.localBook.LocalBook
import io.legado.app.model.webBook.WebBook import io.legado.app.model.webBook.WebBook
import io.legado.app.ui.book.read.page.provider.ImageProvider import io.legado.app.utils.GSON
import io.legado.app.utils.* 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.delay
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import splitties.init.appCtx import splitties.init.appCtx
@@ -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.Bitmap
import android.graphics.BitmapFactory 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.book.isPdf
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.coroutine.Coroutine 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.EpubFile
import io.legado.app.model.localBook.PdfFile import io.legado.app.model.localBook.PdfFile
import io.legado.app.utils.BitmapUtils 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? { private fun getNotRecycled(key: String): Bitmap? {
val bitmap = bitmapLruCache.get(key) ?: return null val bitmap = bitmapLruCache.get(key) ?: return null
if (bitmap.isRecycled) { if (bitmap.isRecycled) {
@@ -193,4 +200,20 @@ object ImageProvider {
return tmp 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
}
} }
@@ -112,10 +112,8 @@ class AudioPlayService : BaseService(),
.submit() .submit()
.get() .get()
}.onSuccess { }.onSuccess {
val tmpCover = cover
cover = it cover = it
upNotification() upNotification()
tmpCover.recycle()
} }
} }
@@ -157,7 +155,6 @@ class AudioPlayService : BaseService(),
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED) upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED)
AudioPlay.status = Status.STOP AudioPlay.status = Status.STOP
postEvent(EventBus.AUDIO_STATE, Status.STOP) postEvent(EventBus.AUDIO_STATE, Status.STOP)
cover.recycle()
} }
/** /**
@@ -113,10 +113,8 @@ abstract class BaseReadAloudService : BaseService(),
.submit() .submit()
.get() .get()
}.onSuccess { }.onSuccess {
val tmpCover = cover
cover = it cover = it
upNotification() upNotification()
tmpCover.recycle()
} }
} }
@@ -140,7 +138,6 @@ abstract class BaseReadAloudService : BaseService(),
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED) upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED)
mediaSessionCompat.release() mediaSessionCompat.release()
ReadBook.uploadProgress() ReadBook.uploadProgress()
cover.recycle()
} }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
@@ -21,7 +21,7 @@ import io.legado.app.help.glide.ImageLoader
import io.legado.app.help.glide.OkHttpModelLoader import io.legado.app.help.glide.OkHttpModelLoader
import io.legado.app.help.source.SourceVerificationHelp import io.legado.app.help.source.SourceVerificationHelp
import io.legado.app.lib.theme.primaryColor 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.ui.widget.dialog.PhotoDialog
import io.legado.app.utils.applyTint import io.legado.app.utils.applyTint
import io.legado.app.utils.setLayout import io.legado.app.utils.setLayout
@@ -200,13 +200,7 @@ class ReadBookActivity : BaseReadBookActivity(),
super.onWindowFocusChanged(hasFocus) super.onWindowFocusChanged(hasFocus)
upSystemUiVisibility() upSystemUiVisibility()
if (hasFocus) { if (hasFocus) {
//调节系统亮度后如果设置亮度值和原来一样亮度不会变 binding.readMenu.upBrightnessState()
launch {
delay(100)
binding.readMenu.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE)
delay(1000)
binding.readMenu.upBrightnessState()
}
} }
} }
@@ -23,13 +23,13 @@ import io.legado.app.help.book.isLocal
import io.legado.app.help.book.removeType import io.legado.app.help.book.removeType
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.coroutine.Coroutine
import io.legado.app.model.ImageProvider
import io.legado.app.model.ReadAloud import io.legado.app.model.ReadAloud
import io.legado.app.model.ReadBook import io.legado.app.model.ReadBook
import io.legado.app.model.localBook.LocalBook import io.legado.app.model.localBook.LocalBook
import io.legado.app.model.webBook.WebBook import io.legado.app.model.webBook.WebBook
import io.legado.app.service.BaseReadAloudService import io.legado.app.service.BaseReadAloudService
import io.legado.app.ui.book.read.page.entities.TextChapter 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.ui.book.searchContent.SearchResult
import io.legado.app.utils.* import io.legado.app.utils.*
import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.IO
@@ -15,13 +15,13 @@ import io.legado.app.help.book.isImage
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.config.ReadBookConfig
import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.accentColor
import io.legado.app.model.ImageProvider
import io.legado.app.model.ReadBook 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.TextLine
import io.legado.app.ui.book.read.page.entities.TextPage 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.TextPos
import io.legado.app.ui.book.read.page.entities.column.* 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.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.ui.book.read.page.provider.TextPageFactory
import io.legado.app.utils.* import io.legado.app.utils.*
import kotlin.math.min import kotlin.math.min
@@ -14,6 +14,7 @@ import io.legado.app.data.entities.BookChapter
import io.legado.app.help.book.BookContent import io.legado.app.help.book.BookContent
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.config.ReadBookConfig
import io.legado.app.model.ImageProvider
import io.legado.app.model.ReadBook 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.TextChapter
import io.legado.app.ui.book.read.page.entities.TextLine import io.legado.app.ui.book.read.page.entities.TextLine
@@ -21,9 +21,9 @@ import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.prefs.fragment.PreferenceFragment import io.legado.app.lib.prefs.fragment.PreferenceFragment
import io.legado.app.lib.theme.primaryColor import io.legado.app.lib.theme.primaryColor
import io.legado.app.model.CheckSource import io.legado.app.model.CheckSource
import io.legado.app.model.ImageProvider
import io.legado.app.receiver.SharedReceiverActivity import io.legado.app.receiver.SharedReceiverActivity
import io.legado.app.service.WebService 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.file.HandleFileContract
import io.legado.app.ui.widget.number.NumberPickerDialog import io.legado.app.ui.widget.number.NumberPickerDialog
import io.legado.app.utils.* import io.legado.app.utils.*
@@ -11,8 +11,8 @@ import io.legado.app.help.book.BookHelp
import io.legado.app.help.glide.ImageLoader import io.legado.app.help.glide.ImageLoader
import io.legado.app.help.glide.OkHttpModelLoader import io.legado.app.help.glide.OkHttpModelLoader
import io.legado.app.model.BookCover import io.legado.app.model.BookCover
import io.legado.app.model.ImageProvider
import io.legado.app.model.ReadBook 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.setLayout
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding