diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index e97e06191..bb8250ebd 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -191,7 +191,7 @@ object PreferKey { const val mangaScrollMode = "mangaScrollMode" const val webtoonSidePaddingDp = "webtoonSidePaddingDp" const val mangaVolumeKeyPage = "mangaVolumeKeyPage" - + const val reverseVolumeKeyPage = "reverseVolumeKeyPage" const val mangaClickActionTL = "mangaClickActionTopLeft" const val mangaClickActionTC = "mangaClickActionTopCenter" const val mangaClickActionTR = "mangaClickActionTopRight" diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index e5ab84f3b..26079298d 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -869,6 +869,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { appCtx.putPrefBoolean(PreferKey.mangaVolumeKeyPage, value) } + var reverseVolumeKeyPage: Boolean + get() = appCtx.getPrefBoolean(PreferKey.reverseVolumeKeyPage, false) + set(value) { + appCtx.putPrefBoolean(PreferKey.reverseVolumeKeyPage, value) + } + var tabletInterface get() = appCtx.getPrefString(PreferKey.tabletInterface, "auto") set(value) { diff --git a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt index 186262ec8..511b47395 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt @@ -11,7 +11,6 @@ import android.view.MenuItem import android.view.WindowManager import android.view.animation.LinearInterpolator import androidx.activity.addCallback -import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog import androidx.core.view.doOnLayout @@ -31,7 +30,6 @@ import io.legado.app.BuildConfig import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.constant.AppLog -import io.legado.app.constant.BookType import io.legado.app.constant.EventBus import io.legado.app.data.appDb 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.isImage 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.coroutine.Coroutine import io.legado.app.help.source.getSourceType @@ -815,6 +812,10 @@ class ReadMangaActivity : VMBaseActivity { - scrollToPrev() - return true - } + if (!AppConfig.MangaVolumeKeyPage) { + return super.onKeyDown(keyCode, event) + } - KeyEvent.KEYCODE_VOLUME_DOWN -> { + val isReverse = AppConfig.reverseVolumeKeyPage + + when (keyCode) { + KeyEvent.KEYCODE_VOLUME_UP -> { + if (isReverse) { scrollToNext() - return true + } else { + scrollToPrev() } + return true + } + + KeyEvent.KEYCODE_VOLUME_DOWN -> { + if (isReverse) { + scrollToPrev() + } else { + scrollToNext() + } + return true } } diff --git a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt index 2b62c616b..b386a03e7 100644 --- a/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/manga/config/MangaFooterSettingDialog.kt @@ -4,7 +4,6 @@ import android.content.DialogInterface import android.os.Bundle import android.view.Gravity import android.view.View -import androidx.core.graphics.toColorInt import androidx.core.view.isVisible import androidx.transition.TransitionManager 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.databinding.DialogMangaFooterSettingBinding 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.read.config.TipConfigDialog.Companion.B_COLOR import io.legado.app.ui.widget.ReaderInfoBarView import io.legado.app.utils.GSON 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 { isChecked = AppConfig.mangaLongClick setOnCheckedChangeListener { _, isChecked -> @@ -303,6 +307,7 @@ class MangaFooterSettingDialog : fun onMangaScaleDisabledChanged(disabled: Boolean) fun onHideMangaTitleChanged(hide: Boolean) fun onVolumeKeyPageChanged(enable: Boolean) + fun onReverseVolumeKeyPageChanged(enable: Boolean) fun onMangaLongClickChanged(checked: Boolean) } diff --git a/app/src/main/res/layout/dialog_manga_footer_setting.xml b/app/src/main/res/layout/dialog_manga_footer_setting.xml index fffc23ac5..fc6da1186 100644 --- a/app/src/main/res/layout/dialog_manga_footer_setting.xml +++ b/app/src/main/res/layout/dialog_manga_footer_setting.xml @@ -268,6 +268,12 @@ android:layout_height="wrap_content" android:text="@string/volume_key_page" /> + + 自动检查新备份 强调 颜色样式 + 反转音量键翻页方向 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e5046e13f..77d0e0acf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1371,4 +1371,5 @@ 选择操作 强调 颜色样式 + 反转音量键翻页方向