This commit is contained in:
Horis
2023-12-22 22:28:04 +08:00
parent 2fd6df4943
commit bc7fb631c8
21 changed files with 70 additions and 36 deletions
@@ -140,6 +140,9 @@ object PreferKey {
const val showBookshelfFastScroller = "showBookshelfFastScroller"
const val importKeepEnable = "importKeepEnable"
const val previewImageByClick = "previewImageByClick"
const val volumeKeyPageOnLongPress = "volumeKeyPageOnLongPress"
const val volumeKeyPage = "volumeKeyPage"
const val volumeKeyPageOnPlay = "volumeKeyPageOnPlay"
const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent"
@@ -331,6 +331,7 @@ data class Book(
appDb.bookDao.delete(this)
}
@Suppress("ConstPropertyName")
companion object {
const val hTag = 2L
const val rubyTag = 4L
@@ -21,7 +21,7 @@ import io.legado.app.utils.sysConfiguration
import io.legado.app.utils.toastOnUi
import splitties.init.appCtx
@Suppress("MemberVisibilityCanBePrivate")
@Suppress("MemberVisibilityCanBePrivate", "ConstPropertyName")
object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
val isCronet = appCtx.getPrefBoolean(PreferKey.cronet)
var useAntiAlias = appCtx.getPrefBoolean(PreferKey.antiAlias)
@@ -468,6 +468,15 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
val progressBarBehavior: String?
get() = appCtx.getPrefString(PreferKey.progressBarBehavior, "page")
val volumeKeyPageOnLongPress
get() = appCtx.getPrefBoolean(PreferKey.volumeKeyPageOnLongPress, false)
val volumeKeyPage
get() = appCtx.getPrefBoolean(PreferKey.volumeKeyPage, true)
val volumeKeyPageOnPlay
get() = appCtx.getPrefBoolean(PreferKey.volumeKeyPageOnPlay, true)
var searchScope: String
get() = appCtx.getPrefString("searchScope") ?: ""
set(value) {
@@ -48,9 +48,12 @@ import io.legado.app.ui.book.audio.AudioPlayActivity
import io.legado.app.ui.book.bookmark.BookmarkDialog
import io.legado.app.ui.book.changesource.ChangeBookSourceDialog
import io.legado.app.ui.book.changesource.ChangeChapterSourceDialog
import io.legado.app.ui.book.read.config.*
import io.legado.app.ui.book.read.config.AutoReadDialog
import io.legado.app.ui.book.read.config.BgTextConfigDialog.Companion.BG_COLOR
import io.legado.app.ui.book.read.config.BgTextConfigDialog.Companion.TEXT_COLOR
import io.legado.app.ui.book.read.config.MoreConfigDialog
import io.legado.app.ui.book.read.config.ReadAloudDialog
import io.legado.app.ui.book.read.config.ReadStyleDialog
import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_COLOR
import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_DIVIDER_COLOR
import io.legado.app.ui.book.read.page.ContentTextView
@@ -570,7 +573,7 @@ class ReadBookActivity : BaseReadBookActivity(),
/**
* 按键事件
*/
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
if (menuLayoutIsVisible) {
return super.onKeyDown(keyCode, event)
}
@@ -592,13 +595,13 @@ class ReadBookActivity : BaseReadBookActivity(),
}
keyCode == KeyEvent.KEYCODE_VOLUME_UP -> {
if (volumeKeyPage(PageDirection.PREV)) {
if (volumeKeyPage(PageDirection.PREV, event.repeatCount > 0)) {
return true
}
}
keyCode == KeyEvent.KEYCODE_VOLUME_DOWN -> {
if (volumeKeyPage(PageDirection.NEXT)) {
if (volumeKeyPage(PageDirection.NEXT, event.repeatCount > 0)) {
return true
}
}
@@ -628,10 +631,10 @@ class ReadBookActivity : BaseReadBookActivity(),
/**
* 松开按键事件
*/
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
when (keyCode) {
KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN -> {
if (volumeKeyPage(PageDirection.NONE)) {
if (volumeKeyPage(PageDirection.NONE, event.repeatCount > 0)) {
return true
}
}
@@ -824,20 +827,23 @@ class ReadBookActivity : BaseReadBookActivity(),
/**
* 音量键翻页
*/
private fun volumeKeyPage(direction: PageDirection): Boolean {
if (!binding.readMenu.isVisible) {
if (getPrefBoolean("volumeKeyPage", true)) {
if (getPrefBoolean("volumeKeyPageOnPlay")
|| !BaseReadAloudService.isPlay()
) {
binding.readView.cancelSelect()
binding.readView.pageDelegate?.isCancel = false
binding.readView.pageDelegate?.keyTurnPage(direction)
return true
}
}
private fun volumeKeyPage(direction: PageDirection, longPress: Boolean): Boolean {
if (menuLayoutIsVisible) {
return false
}
return false
if (!AppConfig.volumeKeyPage) {
return false
}
if (!AppConfig.volumeKeyPageOnPlay && BaseReadAloudService.isPlay()) {
return false
}
if (!AppConfig.volumeKeyPageOnLongPress && longPress) {
return false
}
binding.readView.cancelSelect()
binding.readView.pageDelegate?.isCancel = false
binding.readView.pageDelegate?.keyTurnPage(direction)
return true
}
override fun upMenuView() {