edit | blame | history | raw

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.shbash Scripts/pro_localization_qa.shgit diff --checkbash 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.shbash Scripts/pro_localization_qa.shgit diff --checkbash 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.shbash Scripts/pro_localization_qa.shgit diff --check -- src/Apptag/PreferencesView.swift src/Apptag/Localization src/Scripts/pro_feature_gate_qa.sh src/Scripts/pro_localization_qa.sh CODEGRAPH.mdbash build.sh 均通过;最新本地 QA 构建为 /Users/ar/Projects/Taglauncher/src/build/TagLauncher.app