pull/2292/head
Horis 2 years ago
parent e7041d19df
commit 37e0ad4ac3
  1. 6
      app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt
  2. 88
      app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt

@ -123,7 +123,11 @@ abstract class BaseReadBookActivity :
if (toolBarHide) { if (toolBarHide) {
setLightStatusBar(ReadBookConfig.durConfig.curStatusIconDark()) setLightStatusBar(ReadBookConfig.durConfig.curStatusIconDark())
} else { } 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)) setLightStatusBar(ColorUtils.isColorLight(statusBarColor))
} }
} }

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

Loading…
Cancel
Save