0
Fork 0
mirror of https://github.com/Silent1566/webhtv.git synced 2026-10-25 10:16:33 +00:00

fix(ui): 观影记录同步弹窗深色模式改用语义 token

观影记录同步弹窗及其两个二级管理弹窗(远端同步 / Webhook 上报)在代码里
构建行卡片,底色/描边/标题/说明/状态色全部写死为浅色字面量:
#F5F6F7 卡片、#DADCE0/#E2E5E8 描边、Color.BLACK 标题、#5F6368 说明、
#137333/#B3261E 状态、#FFFFFF 徽标、#FFF7F7 暂停行。这些值都不等于任何
webhtv_color_* 角色,ThemeBinder 的精确匹配改写按设计会跳过它们,于是深色
表下弹窗面板变深而每行仍是近白卡片配黑字,分区标签与说明保持 #5F6368
(在深色面板上仅 2.23:1),即用户报告的「色调太乱」。

改为取 ThemeController.current() 语义 token:
- 行卡片底 colorSurfaceContainerLow(日 #F2F3F9 / 夜 #181C20)
- 行描边 colorOutlineVariant(日 #C4C6CF / 夜 #44474F)
- 行标题 colorOnSurface,分区标签与说明 colorOnSurfaceVariant
- 状态色 colorSuccess / colorError,徽标底 colorSurfaceContainerLowest
- 暂停行底 colorErrorContainer(日 #F9DEDC / 夜 #93000A)

原先描边的两个灰阶(可用 #DADCE0 / 不可用 #E2E5E8)对比度仅 1.02:1,
不携带可读信息(可用性已由徽标文字表达),故合并为同一语义描边。

两表对比度均过 WCAG AA:标题 15.43:1 / 13.29:1,说明 8.39:1 / 10.06:1,
状态色 5.90:1 / 10.09:1,暂停行错误字 5.14:1 / 5.51:1。

验证:
- DialogForegroundTokenTest 新增两个契约(行/徽标/暂停行语义 token、
  禁止 Color.BLACK/Color.WHITE),5 项通过
- theme.* 与 ui.dialog.* 共 349 项单测 0 失败
- 5559(emulator-5558,Android 9,arm64)实机:深色表下三级弹窗行卡片、
  标题、说明、徽标全部正确;切浅色表复核无回归
- 本机 bash 不可用(HCS_E_SERVICE_NOT_AVAILABLE),未运行 task_guard,
  按「允许路径」逐项手工核对,改动仅限声明的 4 个文件
This commit is contained in:
Silent1566 2026-10-19 02:38:53 +08:00
commit ad21137c0f
4 changed files with 135 additions and 26 deletions