diff --git a/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt b/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt index 5dc2309c0..6ced5ce6f 100644 --- a/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt +++ b/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt @@ -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" diff --git a/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt b/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt index 9b5e32e8d..2375df320 100644 --- a/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt +++ b/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt @@ -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) + } } diff --git a/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt b/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt index 6cfb32249..ffc02e0a2 100644 --- a/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt +++ b/app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt @@ -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() diff --git a/app/src/main/java/io/legato/kazusa/ui/book/read/config/MoreConfigDialog.kt b/app/src/main/java/io/legato/kazusa/ui/book/read/config/MoreConfigDialog.kt index c4145602c..21bd1798a 100644 --- a/app/src/main/java/io/legato/kazusa/ui/book/read/config/MoreConfigDialog.kt +++ b/app/src/main/java/io/legato/kazusa/ui/book/read/config/MoreConfigDialog.kt @@ -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() diff --git a/app/src/main/res/layout-land/view_read_menu.xml b/app/src/main/res/layout-land/view_read_menu.xml index 4b1da4775..3c3539fb4 100644 --- a/app/src/main/res/layout-land/view_read_menu.xml +++ b/app/src/main/res/layout-land/view_read_menu.xml @@ -153,6 +153,7 @@ tools:ignore="TouchTargetSizeCheck" /> - - - - - + diff --git a/app/src/main/res/values-zh/arrays.xml b/app/src/main/res/values-zh/arrays.xml index 6a88f5078..1c25a7e44 100644 --- a/app/src/main/res/values-zh/arrays.xml +++ b/app/src/main/res/values-zh/arrays.xml @@ -160,4 +160,12 @@ 不显示 + + 常驻 + 不显示 + 按钮置左 + 按钮置右 + 仅显示滑动条 + + \ No newline at end of file diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 60980641c..403b04745 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1303,4 +1303,5 @@ 深浅色模式开关 长按保存图片 长按设置为全局默认模式 + 滑动条显示样式 diff --git a/app/src/main/res/values/array_values.xml b/app/src/main/res/values/array_values.xml index 6a20dfa0c..c5124fabd 100644 --- a/app/src/main/res/values/array_values.xml +++ b/app/src/main/res/values/array_values.xml @@ -89,4 +89,12 @@ unlabeled + + 0 + 1 + 2 + 3 + 4 + + \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 0fb1d174c..482335c74 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -85,6 +85,14 @@ Always + + Always + Disable + Left button + Right button + Only slider + + @string/screen_unspecified @string/screen_portrait diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4339f0c5e..67cb8fa3c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1304,4 +1304,5 @@ 深浅色模式开关 长按保存图片 长按设置为全局默认模式 + 滑动条显示样式 diff --git a/app/src/main/res/xml/pref_config_read.xml b/app/src/main/res/xml/pref_config_read.xml index d8f8299c3..20592d674 100644 --- a/app/src/main/res/xml/pref_config_read.xml +++ b/app/src/main/res/xml/pref_config_read.xml @@ -28,6 +28,15 @@ app:iconSpaceReserved="false" app:isBottomBackground="true" /> + +