Skip to content

feat(core): ✨ 新增应用生效范围黑名单模式与应用列表系统应用显示及批量操作 - #22

Merged
IceTeacher merged 10 commits into
devfrom
feat/app-filter-mode
Oct 31, 2026
Merged

IceTeacher merged 10 commits into
devfrom
feat/app-filter-mode

Conversation

@IceTeacher

@IceTeacher IceTeacher commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

变更

  • 生效范围由白名单开关扩展为全部应用、仅白名单应用、排除黑名单应用三种,白名单与黑名单分开保存;门控新增 Blacklisted 跳过原因,白名单与黑名单范围下前台未知均不放行,三种范围都跳过内置相机应用。
  • 旧版 whitelist_enabled 升级时映射为对应范围并保留原白名单;新版写入时删除旧键,降级不会扩大生效范围。
  • 应用列表新增更多菜单:「显示系统应用」默认关闭并跨启动保留(独立的界面偏好,不进入配置与诊断转储);搜索非空时可选中当前结果,名单非空时可经确认清空。商店更新过的预装应用按用户应用显示,已选或本页操作过的系统应用在隐藏时仍可见。
  • 复查修复:重建后保留本页操作过的应用、黑名单清空文案注明相机类应用仍跳过、交互用例改用返回键关闭菜单。
  • 真机验收修复:
    • 无障碍后端只把能解析为该包 Activity 的窗口事件当作前台切换,忽略悬浮层、弹窗和输入法。此前 HyperOS 传送门 com.miui.contentextension 的事件会把黑名单内的 Chrome 换成名单外包名并保亮。
    • 英文计数文案改为「Selected: 1」等不依赖单复数的写法,自定义提前量与上限改用 s / min。
  • 官网生效范围、常见问题与开始步骤文案补充黑名单;README 设置页与应用列表截图(中英)重拍;使用说明补充 Android 13+「受限制的设置」与无障碍前台识别限制。

注意:「全部应用」范围现在也会跳过内置相机应用,此前只在白名单开启时跳过。无障碍后端从启动器应用进入其他无启动器入口应用的全屏页面时,前台可能仍记为上一个应用;需要更准确的前台识别时使用 Shizuku 或 LSPosed。

验证

  • pnpm --filter @gazekeep/app verify;新增 A11yForegroundTest 在旧实现下失败后通过;apps_light_zh、settings_bottom_light_en 截图基线有意重录并核对,其余截图不变

  • 官网:test:unit(96)、test:browser:docker(51)、lint、check、完整构建(重新生成 kmp-showcase 预编译产物,生成物不提交)

  • pnpm verify:docs、pnpm verify:agent-assets、git diff --check

  • Pixel_8_API_35 模拟器(Android 15/API 35):升级与降级、黑名单门控、test:device 实机套件(ScreenTimeoutRestoreTest 按前提跳过,记为未执行)、系统应用判定、偏好重启保留、选中搜索结果、清空确认与横竖屏重建

  • Xiaomi 12 Pro(HyperOS OS2.0.6,Android 14,LSPosed 2.2.1 + Sui/Shizuku),arm64 Debug 包,系统超时 60 s:

    后端(锁定) 黑名单内 Chrome 名单外便签
    LSPosed skip=Blacklisted,按原超时熄屏 放行、真人注视、延长
    Shizuku skip=Blacklisted,约 58 s 熄屏 放行、真人注视、延长
    无障碍(修复后) skip=Blacklisted,约 60 s 熄屏 放行、真人注视、延长

    HyperOS 系统应用判定:带系统标志的 19 个启动器应用中 13 个为商店更新过的预装应用并默认显示,相机、文件管理、短信、下载管理、设置与 com.miui.miservice 默认隐藏;/product/data-app 的可卸载预装不带系统标志,按用户应用显示。中英文、深色、1.3 倍字体下的菜单与清空对话框走查通过。详见 docs/plans/todo.md。

未执行

  • HyperOS 以外的 ROM 上的系统应用判定与无障碍前台识别。
  • 真机上的搜索相关操作(输入法会改写 adb 输入),以模拟器结果为准。
  • 一次按应用语言为英文时页面显示为中文的现象未能复现,已登记待查。

Refs #11

- 生效范围由白名单开关扩展为全部应用、仅白名单应用、排除黑名单应用三种,白名单与黑名单分开保存,切换范围不互相覆盖
- 门控新增 Blacklisted 跳过原因;白名单与黑名单范围下前台未知均不放行,前台已知时三种范围都跳过内置相机应用
- 旧版 whitelist_enabled 自动映射为对应范围并保留原白名单;写入时删除旧键保证降级不扩大范围,旧键仍在时以旧版最后的选择为准
- 设置页改用下拉选择生效范围,应用页标题、勾选与数量跟随当前范围,同步中英文案、截图基线与诊断转储
- 新增 GatePolicy、ConfigStore 迁移、页面交互与黑名单冷启动回读测试,并同步术语、架构、产品、测试文档与任务清单

已在 Pixel_8_API_35 模拟器验证升级、降级与门控行为,真机与真实 ROM 验收未执行。

Refs #11
- 新增「显示系统应用」开关,默认关闭并跨启动保留;Android 端单独存入 gazekeep_ui_prefs,不进入 GazeConfig
- 系统应用以 FLAG_SYSTEM 且未被更新判定,商店更新过的预装应用按用户应用显示;图标预读取优先用户应用
- 隐藏时已选及本页操作过的应用保持可见;搜索只命中隐藏的系统应用时提示数量并可一键显示
- 搜索非空时可将可见结果并入当前名单;名单非空时可经确认清空,文案按白名单与黑名单说明后果
- 打开菜单前收起搜索键盘,避免输入法候选栏遮挡菜单;清空对话框在打开时固定数量
- 新增列表过滤、系统应用判定与应用页交互测试,重录应用页截图基线,同步中英文案、术语、架构与任务清单

已在 Pixel_8_API_35 模拟器验证系统应用判定、偏好重启保留、选中搜索结果与清空确认,真机与真实 ROM 未执行。
- 本页操作过的应用集合改为可保存状态,旋转等重建后仍保持可见,便于重新勾选
- 黑名单清空确认文案注明相机类应用仍跳过,避免误以为所有应用都会保亮检测
- 选中搜索结果用例改用返回键关闭菜单,不再依赖遮罩吞掉屏幕中央的点按
- 新增状态恢复回归测试,旧实现下失败

已在 Pixel_8_API_35 模拟器横竖屏切换后确认取消勾选的 Gmail 仍可见,测试后已恢复白名单与方向。
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-31T17:25:55.096769Z 8a75c2a New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

官网预览

项目 内容
分支别名 https://pr-22.gazekeep.pages.dev
本次部署 https://3028ac2f.gazekeep.pages.dev
提交 071476be538cd2c2c316b0715983594facde9150

部署冒烟已通过;预览仅供评审,不代表真实浏览器或 WebGPU 渲染验收。

- 窗口状态事件也来自悬浮层、弹窗和输入法,现在只有包名与类名能经 PackageManager 解析为该包 Activity 时才切换前台,同包事件不改变结果
- 解析结果在主线程缓存;启动器之外的不可见包解析失败,按非 Activity 忽略并沿用上一个 Activity
- 新增 A11yForegroundTest,悬浮层用例在旧实现下失败
- 架构文档补充前台来源与包可见性取舍,使用说明补充 Android 13+ 受限制的设置与无障碍前台识别限制

Xiaomi 12 Pro(HyperOS OS2.0.6)实测:修复前传送门 com.miui.contentextension 的事件
把黑名单内的 Chrome 换成名单外包名并延长 2 次;修复后 Chrome 记为 Blacklisted 并约 60 s 熄屏,
名单外便签仍放行并延长。
- 已选、已排除、隐藏系统应用与清空确认的计数改为「Selected: 1」等不依赖单复数的写法
- 自定义提前量与上限改用 s / min,避免「1 seconds」「1 minutes」
- settings_bottom_light_en 截图基线因计数文案有意重录,其余基线不变

真机英文、深色、1.3 倍字体走查中发现「1 apps excluded」。
- 生效范围区说明默认仅白名单应用,也可改为排除黑名单应用,无法确认当前应用时不保亮
- 常见问题与开始步骤改为按生效范围与名单排查和设置

kmp-showcase 预编译产物已随完整构建重新生成(生成物不提交)。
- 在 Pixel_8_API_35 模拟器以演示状态栏重拍中英文设置页与应用列表截图,表头改为应用列表
- 任务清单记录 Xiaomi 12 Pro 上三种后端的黑名单门控、HyperOS 系统应用判定与英文/深色/大字体走查结果,收敛已完成待办并登记未复现的应用语言问题
- 同步文档索引的复核日期与无障碍架构加载时机

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 60e8fa4cdc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- versionCode 由 5 升至 6,versionName 由 1.1.3 升至 1.1.4。
- 更新日志覆盖黑名单生效范围、应用列表更多菜单、旧版白名单设置迁移、无障碍前台识别与英文计数文案修复。
- 启用步骤补充 Android 13 及以上受限制的设置,并改为先选择生效范围再挑选名单应用。
- 文档索引登记 v1.1.4 发布说明,状态为待发布。

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8a75c2a808

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- 相机类应用只在能识别当前前台应用时跳过,与引擎架构「只要前台已知」的描述保持一致。
@IceTeacher
IceTeacher merged commit d5c1e9f into dev Oct 31, 2026
6 checks passed
@IceTeacher
IceTeacher deleted the feat/app-filter-mode branch October 31, 2026 17:42

This branch was successfully deployed

1 active deployment
web-preview — 071476be Deployed Oct 31, 2026 by IceTeacher via Deploy website preview #90
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant