Merge pull request #2292 from 821938089/little-fix

修复阅读界面菜单颜色问题
pull/2296/head
kunfei 2 years ago committed by GitHub
commit 73f29688dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt
  2. 44
      app/src/main/java/io/legado/app/ui/book/read/ReadMenu.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))
}
}

@ -56,21 +56,20 @@ 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){
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 val textColor: Int
get() = if(AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0){
private var textColor: Int = if (immersiveMenu) {
ReadBookConfig.durConfig.curTextColor()
} else {
context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
}
private val bottomBackgroundList: ColorStateList
get() = Selector.colorBuild()
private var bottomBackgroundList: ColorStateList = Selector.colorBuild()
.setDefaultColor(bgColor)
.setPressedColor(ColorUtils.darkenColor(bgColor))
.create()
@ -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
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))
@ -203,12 +209,32 @@ class ReadMenu @JvmOverloads constructor(
}
fun reset() {
upColorConfig()
initView()
}
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() {
if (brightnessAuto()) {

Loading…
Cancel
Save