perf(onboarding,settings): 权限/热键状态纯事件驱动,去掉高频轮询#673
Conversation
issue #470:引导页桌面(1s)/Android(3s)、设置页热键(1s) 的 setInterval 高频权限/热键轮询 全部改为 window focus / visibilitychange 事件驱动,连低频兜底也去掉(纯事件驱动)。 覆盖论证:麦克风前台原生弹窗授予由申请结果回调 + 800ms 兜底覆盖;辅助功能授予必经系统 设置 App、切回 OpenLess 必触发 focus/visibilitychange。并给 onGrantAccessibility 补对称的 void refresh() + 800ms 兜底(与 onRequestMicrophone 对齐)。PermissionsSection 的 refreshPermissions(10s)/refreshNetwork(30s) 保留不动。
PR Reviewer Guide 🔍(Review updated until commit d221ee2)Here are some key observations to aid the review process:
|
|
Claude finished @appergb's task in 2m 24s —— View job PR #673 代码审查
|
|
Persistent review updated to latest commit d221ee2 |

User description
源自 #470 Cloud 性能审查 #3/#4/#5。引导页桌面(1s)/Android(3s)、设置页热键(1s) 的高频权限/热键
setInterval轮询全部改为focus/visibilitychange事件驱动,连低频兜底也去掉(纯事件驱动)。覆盖论证:麦克风前台原生弹窗授予由申请结果回调 + 800ms 兜底覆盖;辅助功能授予必经系统设置 App、切回必触发 focus/visibilitychange。并给
onGrantAccessibility补对称的void refresh()+ 800ms 兜底。refreshPermissions(10s)/refreshNetwork(30s)保留不动。验证:
npm run build通过 + 对抗式复审(已修复其指出的 floating-promise)。PR Type
Enhancement
Description
移除高频轮询,改用 focus/visibilitychange 事件驱动
添加 visibilitychange 事件监听,确保从系统设置返回后立即刷新
对称处理麦克风和辅助功能授权后的刷新逻辑
统一代码风格(void refresh())消除 floating promise
File Walkthrough
Onboarding.tsx
事件驱动替代轮询 + 授权刷新对称处理openless-all/app/src/components/Onboarding.tsx
PermissionsSection.tsx
Settings 页热键状态改为纯事件驱动openless-all/app/src/pages/settings/PermissionsSection.tsx