优化
This commit is contained in:
@@ -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
|
||||||
|
|||||||
+25
-2
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user