Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

kunfei 4 лет назад
Родитель
Сommit
16722fe6ed

+ 5 - 1
app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt

@@ -123,7 +123,11 @@ abstract class BaseReadBookActivity :
         if (toolBarHide) {
             setLightStatusBar(ReadBookConfig.durConfig.curStatusIconDark())
         } else {
-            val statusBarColor = ThemeStore.statusBarColor(this, AppConfig.isTransparentStatusBar)
+            val statusBarColor = if (AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0) {
+                ReadBookConfig.bgMeanColor
+            } else {
+                ThemeStore.statusBarColor(this, AppConfig.isTransparentStatusBar)
+            }
             setLightStatusBar(ColorUtils.isColorLight(statusBarColor))
         }
     }

+ 57 - 31
app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt

@@ -56,24 +56,23 @@ class ReadMenu @JvmOverloads constructor(
     private val menuBottomOut: Animation by lazy {
         loadAnimation(context, R.anim.anim_readbook_bottom_out)
     }
-    private val bgColor: Int
-        get() = if(AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0){
-            Color.parseColor(ReadBookConfig.durConfig.curBgStr())
-        }else{
-            context.bottomBackground
-        }
-    private val textColor: Int
-        get() = if(AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0){
-            ReadBookConfig.durConfig.curTextColor()
-        }else{
-            context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
-        }
+    private val immersiveMenu: Boolean
+        get() = AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0
+    private var bgColor: Int = if (immersiveMenu) {
+        Color.parseColor(ReadBookConfig.durConfig.curBgStr())
+    } else {
+        context.bottomBackground
+    }
+    private var textColor: Int = if (immersiveMenu) {
+        ReadBookConfig.durConfig.curTextColor()
+    } else {
+        context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
+    }
 
-    private val bottomBackgroundList: ColorStateList
-        get() = Selector.colorBuild()
-            .setDefaultColor(bgColor)
-            .setPressedColor(ColorUtils.darkenColor(bgColor))
-            .create()
+    private var bottomBackgroundList: ColorStateList = Selector.colorBuild()
+        .setDefaultColor(bgColor)
+        .setPressedColor(ColorUtils.darkenColor(bgColor))
+        .create()
     private var onMenuOutEnd: (() -> Unit)? = null
     private val showBrightnessView
         get() = context.getPrefBoolean(
@@ -158,15 +157,22 @@ class ReadMenu @JvmOverloads constructor(
             fabNightTheme.setImageResource(R.drawable.ic_brightness)
         }
         initAnimation()
-        val bgColor = this@ReadMenu.bgColor
-        val textColor = this@ReadMenu.textColor
-        val bottomBackgroundList = this@ReadMenu.bottomBackgroundList
-        val lightTextColor = ColorUtils.withAlpha(ColorUtils.lightenColor(textColor),0.75f)
-        titleBar.setTextColor(textColor)
-        titleBar.setBackgroundColor(bgColor)
-        titleBar.setColorFilter(textColor)
-        tvChapterName.setTextColor(lightTextColor)
-        tvChapterUrl.setTextColor(lightTextColor)
+        if (immersiveMenu) {
+            val lightTextColor = ColorUtils.withAlpha(ColorUtils.lightenColor(textColor), 0.75f)
+            titleBar.setTextColor(textColor)
+            titleBar.setBackgroundColor(bgColor)
+            titleBar.setColorFilter(textColor)
+            tvChapterName.setTextColor(lightTextColor)
+            tvChapterUrl.setTextColor(lightTextColor)
+        } else {
+            val bgColor = context.primaryColor
+            val textColor = context.primaryTextColor
+            titleBar.setTextColor(textColor)
+            titleBar.setBackgroundColor(bgColor)
+            titleBar.setColorFilter(textColor)
+            tvChapterName.setTextColor(textColor)
+            tvChapterUrl.setTextColor(textColor)
+        }
         val brightnessBackground = GradientDrawable()
         brightnessBackground.cornerRadius = 5F.dpToPx()
         brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f))
@@ -195,19 +201,39 @@ class ReadMenu @JvmOverloads constructor(
         seekBrightness.post {
             seekBrightness.progress = AppConfig.readBrightness
         }
-        if(AppConfig.showReadTitleBarAddition){
+        if (AppConfig.showReadTitleBarAddition) {
             titleBarAddition.visible()
-        }else{
+        } else {
             titleBarAddition.gone()
         }
     }
 
-    fun reset(){
+    fun reset() {
+        upColorConfig()
         initView()
     }
 
-    fun refreshMenuColorFilter(){
-        binding.titleBar.setColorFilter(textColor)
+    fun refreshMenuColorFilter() {
+        if (immersiveMenu) {
+            binding.titleBar.setColorFilter(textColor)
+        }
+    }
+
+    private fun upColorConfig() {
+        bgColor = if (immersiveMenu) {
+            Color.parseColor(ReadBookConfig.durConfig.curBgStr())
+        } else {
+            context.bottomBackground
+        }
+        textColor = if (immersiveMenu) {
+            ReadBookConfig.durConfig.curTextColor()
+        } else {
+            context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
+        }
+        bottomBackgroundList = Selector.colorBuild()
+            .setDefaultColor(bgColor)
+            .setPressedColor(ColorUtils.darkenColor(bgColor))
+            .create()
     }
 
     fun upBrightnessState() {