Skip to content

fix(reader): 移动端阅读设置面板补「音量键翻页」开关 / Add missing volume-key paging toggle to mobile reader settings#380

Open
chy5301 wants to merge 1 commit into
codedogQBY:mainfrom
chy5301:fix/mobile-volume-paging-toggle
Open

fix(reader): 移动端阅读设置面板补「音量键翻页」开关 / Add missing volume-key paging toggle to mobile reader settings#380
chy5301 wants to merge 1 commit into
codedogQBY:mainfrom
chy5301:fix/mobile-volume-paging-toggle

Conversation

@chy5301
Copy link
Copy Markdown
Contributor

@chy5301 chy5301 commented Jun 6, 2026

问题

移动端音量键翻页的核心逻辑(useVolumeButtonPaging.ts)、原生桥接(VolumeManager)、启用条件(ReaderScreen.tsx)、设置字段(volumeButtonsPageTurn,默认 false)、i18n 文案(settings.volumeButtonsPageTurn)均已就位,唯独 ReaderSettingsPanel.tsx 缺少对应的开关 UI,导致用户永远无法启用该功能。

Closes #379

改动

packages/app-expo/src/screens/reader/ReaderSettingsPanel.tsx(+12 行):

  1. readSettings 解构新增 volumeButtonsPageTurn 字段;
  2. 在「阅读模式」与「顶部标题与进度」之间插入 toggle 行,复用现有 toggle 模式,文案复用现成的 t("settings.volumeButtonsPageTurn")

无新增依赖、无样式/类型变更。

验证

  • Biome 检查通过(既有 RubySettingsRow 格式警告与本次无关);
  • ReadSettings 类型已含 volumeButtonsPageTurn(packages/core/src/types/book.ts:95),onUpdateSetting 类型安全;
  • 插入位置与同级 toggle 视觉一致,无新增样式。

音量键翻页的核心逻辑、原生桥接、i18n 文案均已就位,但
ReaderSettingsPanel 缺少对应的 toggle,设置项默认 false 且
无 UI 入口可改,导致功能不可达。在「阅读模式」与「顶部
标题与进度」之间插入开关行,复用现有 toggle 模式。

Closes codedogQBY#379
@chy5301
Copy link
Copy Markdown
Contributor Author

chy5301 commented Jun 6, 2026

Hi @codedogQBY,这个 PR 修复的是一个移动端基本可用性问题——音量键翻页的核心逻辑、原生桥接、i18n 文案早已全部就位,唯独设置面板漏接了一个 toggle 开关(默认 false 且无任何 UI 入口可改),导致整个功能对用户完全不可达。

移动端阅读场景下,音量键翻页是刚需——单手握持时无需抬手触屏即可翻页,没有这个功能的版本在移动端体验上几乎不可用。改动仅 +12 行,风险极低,请尽快核实确认并合并,建议同步更新版本以尽早覆盖已安装用户。

相关:Fixes #379 / 补充 issue #381(设置面板溢出隐患,可后续处理)

@codedogQBY
Copy link
Copy Markdown
Owner

这个有测过了吗?之前音量翻页有奔溃性bug,所以给隐藏了

@chy5301
Copy link
Copy Markdown
Contributor Author

chy5301 commented Jun 7, 2026

没特别仔细测,我晚点再看看吧> 这个有测过了吗?之前音量翻页有奔溃性bug,所以给隐藏了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants