kunfei 3 лет назад
Родитель
Сommit
f0ee7b19da

+ 6 - 2
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.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.*
+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.delay
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.runBlocking
 import splitties.init.appCtx
 import splitties.init.appCtx

+ 25 - 2
app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt → 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.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
+    }
+
 }
 }

+ 0 - 3
app/src/main/java/io/legado/app/service/AudioPlayService.kt

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

+ 0 - 3
app/src/main/java/io/legado/app/service/BaseReadAloudService.kt

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

+ 1 - 1
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.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

+ 1 - 7
app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt

@@ -200,13 +200,7 @@ class ReadBookActivity : BaseReadBookActivity(),
         super.onWindowFocusChanged(hasFocus)
         super.onWindowFocusChanged(hasFocus)
         upSystemUiVisibility()
         upSystemUiVisibility()
         if (hasFocus) {
         if (hasFocus) {
-            //调节系统亮度后如果设置亮度值和原来一样亮度不会变
-            launch {
-                delay(100)
-                binding.readMenu.setScreenBrightness(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE)
-                delay(1000)
-                binding.readMenu.upBrightnessState()
-            }
+            binding.readMenu.upBrightnessState()
         }
         }
     }
     }
 
 

+ 1 - 1
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.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

+ 1 - 1
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.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

+ 1 - 0
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.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

+ 1 - 1
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.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.*

+ 1 - 1
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.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