阅读进度条开关 #125

This commit is contained in:
HapeLee
2025-10-22 19:44:34 +08:00
parent 310a6e78b0
commit 135afb4a1f
12 changed files with 107 additions and 25 deletions
@@ -53,6 +53,7 @@ object PreferKey {
const val threadCount = "threadCount"
const val webPort = "webPort"
const val keepLight = "keep_light"
const val readSliderMode = "read_slider_mode"
const val webService = "webService"
const val webDavUrl = "web_dav_url"
const val webDavAccount = "web_dav_account"
@@ -820,10 +820,16 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
appCtx.putPrefString(PreferKey.labelVisibilityMode, value)
}
var menuAlpha
var menuAlpha: Int
get() = appCtx.getPrefInt(PreferKey.menuAlpha, 100)
set(value) {
appCtx.putPrefInt(PreferKey.menuAlpha, value)
}
var readSliderMode
get() = appCtx.getPrefString(PreferKey.readSliderMode, "0")
set(value) {
appCtx.putPrefString(PreferKey.readSliderMode, value)
}
}
@@ -5,6 +5,7 @@ import android.content.Context
import android.content.res.Configuration
import android.graphics.drawable.GradientDrawable
import android.util.AttributeSet
import android.view.Gravity
import android.view.LayoutInflater
import android.view.WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
import android.view.animation.AlphaAnimation
@@ -36,6 +37,7 @@ import io.legato.kazusa.utils.activity
import io.legato.kazusa.utils.applyNavigationBarPadding
import io.legato.kazusa.utils.dpToPx
import io.legato.kazusa.utils.getPrefBoolean
import io.legato.kazusa.utils.getPrefString
import io.legato.kazusa.utils.gone
import io.legato.kazusa.utils.invisible
import io.legato.kazusa.utils.loadAnimation
@@ -172,7 +174,7 @@ class ReadMenu @JvmOverloads constructor(
private fun initView() = binding.run {
initAnimation()
updateSliderVisibility()
binding.bottomView.post {
val allButtons = getUserButtons()
renderButtons(binding.bottomView, allButtons)
@@ -435,23 +437,62 @@ class ReadMenu @JvmOverloads constructor(
}
})
//替换
//fabReplaceRule.setOnClickListener { callBack.openReplaceRule() }
//夜间模式
// fabNightTheme.setOnClickListener {
// AppConfig.isNightTheme = !AppConfig.isNightTheme
// ThemeConfig.applyDayNight(context)
// }
//上一章
tvPre.setOnClickListener { ReadBook.moveToPrevChapter(upContent = true, toLast = false) }
//下一章
tvNext.setOnClickListener { ReadBook.moveToNextChapter(true) }
}
private fun updateSliderVisibility() {
when (AppConfig.readSliderMode) {
"0" -> {
binding.llSlider.gravity = Gravity.CENTER
binding.llSlider.isVisible = true
binding.cdSlider.isVisible = true
binding.tvPre.isVisible = true
binding.tvNext.isVisible = true
}
"1" -> {
binding.llSlider.gravity = Gravity.CENTER
binding.llSlider.isVisible = false
binding.cdSlider.isVisible = false
binding.tvPre.isVisible = false
binding.tvNext.isVisible = false
}
"2" -> {
binding.llSlider.gravity = Gravity.START
binding.llSlider.isVisible = true
binding.cdSlider.isVisible = false
binding.tvPre.isVisible = true
binding.tvNext.isVisible = true
}
"3" -> {
binding.llSlider.gravity = Gravity.END
binding.llSlider.isVisible = true
binding.cdSlider.isVisible = false
binding.tvPre.isVisible = true
binding.tvNext.isVisible = true
}
"4" -> {
binding.llSlider.gravity = Gravity.CENTER
binding.llSlider.isVisible = true
binding.cdSlider.isVisible = true
binding.tvPre.isVisible = false
binding.tvNext.isVisible = false
}
else -> {
binding.llSlider.isVisible = true
binding.cdSlider.isVisible = true
binding.tvPre.isVisible = true
binding.tvNext.isVisible = true
}
}
}
private val buttonMap = mutableMapOf<String, MaterialButton>()
@@ -89,6 +89,7 @@ class MoreConfigDialog : BaseBottomSheetDialogFragment(R.layout.dialog_more_conf
}
PreferKey.keepLight -> postEvent(key, true)
PreferKey.readSliderMode -> postEvent(EventBus.UPDATE_READ_ACTION_BAR, true)
PreferKey.textSelectAble -> postEvent(key, getPrefBoolean(key))
PreferKey.screenOrientation -> {
(activity as? ReadBookActivity)?.setOrientation()