This commit is contained in:
kunfei
2023-07-09 13:19:21 +08:00
parent b300a0002f
commit a401d630da
11 changed files with 38 additions and 22 deletions

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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()
}
/**

View File

@@ -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 {

View File

@@ -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

View File

@@ -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()
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.*

View File

@@ -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