[新增] 新增漫画音量键翻页反转设置

This commit is contained in:
HapeLee committed 2026-01-10 04:05:27 +08:00
1 parent e31a6deed3
commit 4ff5ab461e
7 files changed
+41 -9

No files matched your search

@@ -191,7 +191,7 @@ object PreferKey {
const val mangaScrollMode = "mangaScrollMode" const val mangaScrollMode = "mangaScrollMode"
const val webtoonSidePaddingDp = "webtoonSidePaddingDp" const val webtoonSidePaddingDp = "webtoonSidePaddingDp"
const val mangaVolumeKeyPage = "mangaVolumeKeyPage" const val mangaVolumeKeyPage = "mangaVolumeKeyPage"
const val reverseVolumeKeyPage = "reverseVolumeKeyPage"
const val mangaClickActionTL = "mangaClickActionTopLeft" const val mangaClickActionTL = "mangaClickActionTopLeft"
const val mangaClickActionTC = "mangaClickActionTopCenter" const val mangaClickActionTC = "mangaClickActionTopCenter"
const val mangaClickActionTR = "mangaClickActionTopRight" const val mangaClickActionTR = "mangaClickActionTopRight"
@@ -869,6 +869,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
appCtx.putPrefBoolean(PreferKey.mangaVolumeKeyPage, value) appCtx.putPrefBoolean(PreferKey.mangaVolumeKeyPage, value)
} }
var reverseVolumeKeyPage: Boolean
get() = appCtx.getPrefBoolean(PreferKey.reverseVolumeKeyPage, false)
set(value) {
appCtx.putPrefBoolean(PreferKey.reverseVolumeKeyPage, value)
}
var tabletInterface var tabletInterface
get() = appCtx.getPrefString(PreferKey.tabletInterface, "auto") get() = appCtx.getPrefString(PreferKey.tabletInterface, "auto")
set(value) { set(value) {
@@ -11,7 +11,6 @@ import android.view.MenuItem
import android.view.WindowManager import android.view.WindowManager
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.activity.result.contract.ActivityResultContracts
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.view.doOnLayout import androidx.core.view.doOnLayout
@@ -31,7 +30,6 @@ import io.legado.app.BuildConfig
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.VMBaseActivity import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.constant.BookType
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.data.appDb import io.legado.app.data.appDb
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
@@ -45,7 +43,6 @@ import io.legado.app.help.AppFreezeMonitor.handler
import io.legado.app.help.book.BookHelp import io.legado.app.help.book.BookHelp
import io.legado.app.help.book.isImage import io.legado.app.help.book.isImage
import io.legado.app.help.book.isLocal import io.legado.app.help.book.isLocal
import io.legado.app.help.book.removeType
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.coroutine.Coroutine
import io.legado.app.help.source.getSourceType import io.legado.app.help.source.getSourceType
@@ -815,6 +812,10 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
AppConfig.MangaVolumeKeyPage = enable AppConfig.MangaVolumeKeyPage = enable
} }
override fun onReverseVolumeKeyPageChanged(enable: Boolean) {
AppConfig.reverseVolumeKeyPage = enable
}
override fun onHideMangaTitleChanged(hide: Boolean) { override fun onHideMangaTitleChanged(hide: Boolean) {
AppConfig.hideMangaTitle = hide AppConfig.hideMangaTitle = hide
ReadManga.loadContent() ReadManga.loadContent()
@@ -1069,17 +1070,29 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
} }
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (AppConfig.MangaVolumeKeyPage) { if (!AppConfig.MangaVolumeKeyPage) {
return super.onKeyDown(keyCode, event)
}
val isReverse = AppConfig.reverseVolumeKeyPage
when (keyCode) { when (keyCode) {
KeyEvent.KEYCODE_VOLUME_UP -> { KeyEvent.KEYCODE_VOLUME_UP -> {
if (isReverse) {
scrollToNext()
} else {
scrollToPrev() scrollToPrev()
}
return true return true
} }
KeyEvent.KEYCODE_VOLUME_DOWN -> { KeyEvent.KEYCODE_VOLUME_DOWN -> {
if (isReverse) {
scrollToPrev()
} else {
scrollToNext() scrollToNext()
return true
} }
return true
} }
} }
@@ -4,7 +4,6 @@ import android.content.DialogInterface
import android.os.Bundle import android.os.Bundle
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import androidx.core.graphics.toColorInt
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.transition.TransitionManager import androidx.transition.TransitionManager
import com.google.android.material.chip.Chip import com.google.android.material.chip.Chip
@@ -14,9 +13,7 @@ import io.legado.app.base.BaseBottomSheetDialogFragment
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.databinding.DialogMangaFooterSettingBinding import io.legado.app.databinding.DialogMangaFooterSettingBinding
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.ReadBookConfig
import io.legado.app.ui.book.manga.entities.MangaFooterConfig import io.legado.app.ui.book.manga.entities.MangaFooterConfig
import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.B_COLOR
import io.legado.app.ui.widget.ReaderInfoBarView import io.legado.app.ui.widget.ReaderInfoBarView
import io.legado.app.utils.GSON import io.legado.app.utils.GSON
import io.legado.app.utils.fromJsonObject import io.legado.app.utils.fromJsonObject
@@ -134,6 +131,13 @@ class MangaFooterSettingDialog :
} }
} }
binding.reverseVolumeKeyPage.apply {
isChecked = AppConfig.reverseVolumeKeyPage
setOnCheckedChangeListener { _, isChecked ->
callback?.onReverseVolumeKeyPageChanged(isChecked)
}
}
binding.checkboxMangaLongClick.apply { binding.checkboxMangaLongClick.apply {
isChecked = AppConfig.mangaLongClick isChecked = AppConfig.mangaLongClick
setOnCheckedChangeListener { _, isChecked -> setOnCheckedChangeListener { _, isChecked ->
@@ -303,6 +307,7 @@ class MangaFooterSettingDialog :
fun onMangaScaleDisabledChanged(disabled: Boolean) fun onMangaScaleDisabledChanged(disabled: Boolean)
fun onHideMangaTitleChanged(hide: Boolean) fun onHideMangaTitleChanged(hide: Boolean)
fun onVolumeKeyPageChanged(enable: Boolean) fun onVolumeKeyPageChanged(enable: Boolean)
fun onReverseVolumeKeyPageChanged(enable: Boolean)
fun onMangaLongClickChanged(checked: Boolean) fun onMangaLongClickChanged(checked: Boolean)
} }
@@ -268,6 +268,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/volume_key_page" /> android:text="@string/volume_key_page" />
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/reverseVolumeKeyPage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/reverse_volume_key_page" />
<com.google.android.material.checkbox.MaterialCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/checkboxMangaLongClick" android:id="@+id/checkboxMangaLongClick"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -1366,4 +1366,5 @@
<string name="auto_check_new_backup_t">自动检查新备份</string> <string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="text_accent_color">强调</string> <string name="text_accent_color">强调</string>
<string name="read_color">颜色样式</string> <string name="read_color">颜色样式</string>
<string name="reverse_volume_key_page">反转音量键翻页方向</string>
</resources> </resources>
+1
View File
@@ -1371,4 +1371,5 @@
<string name="select_operation">选择操作</string> <string name="select_operation">选择操作</string>
<string name="text_accent_color">强调</string> <string name="text_accent_color">强调</string>
<string name="read_color">颜色样式</string> <string name="read_color">颜色样式</string>
<string name="reverse_volume_key_page">反转音量键翻页方向</string>
</resources> </resources>