2026-06-30 设置 Pro 状态行
用户目标
- 根据 Mindraw 标注
mdoc_18bd9996566de820_141b0 / vdV9pLClLWTmva6yJ6Bp4 调整设置页 UI。
- 语言页和关于页也要增加同一行 Pro 状态信息。
- 所有“免费版”按钮/胶囊状态改为一句文字:“您当前是免费版用户”。
已完成事项
- 解析 Mindraw frame
0630修改意见1,确认本轮只做上述两项 UI 调整。
PreferencesView.swift 新增 proHeaderStatusLabel,免费态使用本地化 key settings.proStatus.freeUser 渲染完整句;预览、Pro 已解锁和 legacy 状态继续使用现有 ProStatusPill。
shouldShowSettingsFixedProHeader 改为所有 8 个设置页签都显示固定 Pro 状态行,覆盖语言页和关于页。
- 同步更新
pro_feature_gate_qa.sh 静态门禁,防止语言/关于页再次隐藏该行,防止免费态回退为 免费版 胶囊。
- 同步更新
CODEGRAPH.md 的设置页 Pro 状态行规则。
文件变更
/Users/ar/Projects/Taglauncher/src/Apptag/PreferencesView.swift
/Users/ar/Projects/Taglauncher/src/Scripts/pro_feature_gate_qa.sh
/Users/ar/Projects/Taglauncher/CODEGRAPH.md
验证结果
bash Scripts/pro_feature_gate_qa.sh:PASS
bash Scripts/pro_localization_qa.sh:PASS
bash Scripts/theme_settings_qa.sh:PASS
bash Scripts/pro_display_mode_preview_qa.sh:PASS
bash Scripts/pro_theme_preview_countdown_qa.sh:PASS
bash build.sh:PASS,生成 /Users/ar/Projects/Taglauncher/src/build/TagLauncher.app
git diff --check:PASS
未决问题
- 本轮只生成本地 QA
.app,未生成新的可分发 DMG,也未做新的版本递增、提交、冻结或 App Store 上传。
- 若要把该 UI 调整纳入上架包,需要在 8.2.8 之后重新递增版本/build、打 DMG、提交、冻结并重新上传。
追加:Pro 对比表左对齐
- 用户补充要求:Pro 页免费列和 Pro 列的表头、状态胶囊全部左对齐,免费用户和 Pro 用户看到的同一页面都要生效,29 种语言都要跟随。
- 已将
proTabComparisonTable(width:) 内两个状态列的表头和状态胶囊从 .center 改为 .leading,不改列宽、不改文案、不改胶囊样式。
- 已更新
pro_feature_gate_qa.sh,禁止 Pro 对比表状态列回退为居中对齐。
- 已更新
CODEGRAPH.md,记录 Pro 对比表状态列左对齐规则。
- 追加验证:
bash Scripts/pro_feature_gate_qa.sh、bash Scripts/pro_localization_qa.sh、git diff --check、bash build.sh 均通过;最新本地 QA 构建仍在 /Users/ar/Projects/Taglauncher/src/build/TagLauncher.app。
追加:语言/关于页删除购买说明
- 用户补充截图要求:删除语言页和关于页固定状态行里圈出的
仅 Pro 用户可以使用彩色容器/彩色网格 说明文字。
- 已将
settingsProHeaderText 的 .language / .about 分支改为空字符串,并让固定状态行只在有说明文字时渲染第二段说明;保留左侧“您当前是免费版用户”和右侧“解锁 Pro / 恢复购买”按钮。
- 已更新
pro_feature_gate_qa.sh,禁止语言/关于页再次复用通用页购买说明。
- 已更新
CODEGRAPH.md,记录语言/关于页固定状态行只显示状态与操作按钮、不显示购买说明文字。
- 追加验证:
bash Scripts/pro_feature_gate_qa.sh、bash Scripts/pro_localization_qa.sh、git diff --check、bash build.sh 均通过;最新本地 QA 构建仍在 /Users/ar/Projects/Taglauncher/src/build/TagLauncher.app。
追加:已解锁 Pro 状态行居中统一
- 用户补充 Mindraw / 截图要求:当用户已经成为 Pro 后,设置页的“语言 / Pro / 关于”三个页签顶部状态行统一显示为前置胶囊
Pro 已解锁(胶囊自带皇冠图标)加一句文字 您当前是尊贵的 Pro 用户,整组在状态行中左右居中。
- 已在
PreferencesView.swift 增加 shouldCenterUnlockedIdentityHeader,仅对已解锁 Pro 且选中 .language / .pro / .about 时启用居中分支;通用 / 主题 / 快捷键 / 标签 / 数据页仍保留各自原有权益说明逻辑。
- 已将 29 个语言包里的
settings.proStatus.proUser 文案去掉内置皇冠图标,简体中文固定为 您当前是尊贵的 Pro 用户,避免和 ProStatusPill 自带皇冠重复。
- 已更新
pro_feature_gate_qa.sh,断言居中分支只覆盖语言 / Pro / 关于三个页签,并且必须使用 Pro 已解锁 胶囊 + settings.proStatus.proUser。
- 已更新
pro_localization_qa.sh,断言 29 语种 settings.proStatus.proUser 不再包含皇冠图标,简体中文使用已确认文案。
- 已更新
CODEGRAPH.md,记录该 UI 规则,避免后续恢复购买按钮、购买说明或文案内置皇冠重新混入此状态行。
- 追加验证:
bash Scripts/pro_feature_gate_qa.sh、bash Scripts/pro_localization_qa.sh、git diff --check -- src/Apptag/PreferencesView.swift src/Apptag/Localization src/Scripts/pro_feature_gate_qa.sh src/Scripts/pro_localization_qa.sh CODEGRAPH.md、bash build.sh 均通过;最新本地 QA 构建为 /Users/ar/Projects/Taglauncher/src/build/TagLauncher.app。