跳转至

Phase 12: 主题、设置与锁屏 TODO

状态: ⬜ 待开始 预计周期: 4~5 周 依赖阶段: Phase 6, Phase 10, Phase 11 目标交付物: ThemeStyleManager、iOS/Windows 主题包、系统设置 App、锁屏模块


一、阶段目标

核心目标

实现双主题风格系统的完整实现,以及依赖主题系统的设置 App 和锁屏模块。

具体交付物

  • [ ] ThemeStyleManager 主题管理器
  • [ ] iOS 主题包
  • [ ] Windows 11 主题包
  • [ ] 系统设置 App
  • [ ] 锁屏模块

二、待实现任务

Week 1-2: ThemeStyleManager

Week 1, Day 1-2: ThemePack 数据结构

  • [ ] 定义 ThemePack 结构
  • [ ] id(主题标识符)
  • [ ] name(主题名称)
  • [ ] version(版本号)
  • [ ] author(作者)
  • [ ] 定义颜色 Token 集
  • [ ] 主色调(Primary/OnPrimary/PrimaryContainer)
  • [ ] 次色调(Secondary/OnSecondary/SecondaryContainer)
  • [ ] 背景色(Background/OnBackground/Surface/OnSurface)
  • [ ] 错误色(Error/OnError)
  • [ ] 自定义颜色
  • [ ] 定义排版 Token
  • [ ] 字体家族
  • [ ] 字体大小(Display/Headline/Title/Body/Label)
  • [ ] 行高
  • [ ] 字重
  • [ ] 定义形状 Token
  • [ ] 圆角半径(Small/Medium/Large/ExtraLarge)
  • [ ] 边框宽度
  • [ ] 定义间距 Token
  • [ ] 基础间距单位
  • [ ] 内边距
  • [ ] 外边距
  • [ ] 定义动效策略引用
  • [ ] animationPolicy(Spring/Ease)
  • [ ] 定义布局策略引用
  • [ ] navigationPolicy(iOS/Windows)
  • [ ] windowPolicy(Fullscreen/Floating)
  • [ ] 编写单元测试

Week 1, Day 3-5: 主题包加载与缓存

  • [ ] 实现主题包加载
  • [ ] JSON 格式解析
  • [ ] 资源文件加载(图标/壁纸/字体)
  • [ ] 验证主题包完整性
  • [ ] 实现主题包存储
  • [ ] 系统主题目录 /usr/share/CFDesktop/themes/
  • [ ] 用户主题目录 ~/.local/share/CFDesktop/themes/
  • [ ] 实现主题包缓存
  • [ ] 解析后缓存
  • [ ] 资源预加载
  • [ ] 缓存失效检测
  • [ ] 实现 ThemePackRegistry
  • [ ] registerTheme(pack)
  • [ ] unregisterTheme(id)
  • [ ] getTheme(id)
  • [ ] getAllThemes()
  • [ ] 编写单元测试

Week 2, Day 1-3: 热切换机制

  • [ ] 创建 ThemeStyleManager 单例
  • [ ] 实现主题应用
  • [ ] applyTheme(themeId) 应用主题
  • [ ] getCurrentTheme() 获取当前主题
  • [ ] getDefaultTheme() 获取默认主题
  • [ ] 实现切换协调器
  • [ ] 通知所有订阅方
  • [ ] 渐进式切换(避免视觉撕裂)
  • [ ] 切换动画
  • [ ] 实现订阅机制
  • [ ] subscribe(callback) 订阅变更
  • [ ] unsubscribe(callback) 取消订阅
  • [ ] 实现主题持久化
  • [ ] 保存用户选择
  • [ ] 启动时加载
  • [ ] 编写单元测试

Week 2, Day 4-5: 组件级微调 API

  • [ ] 实现组件样式覆盖
  • [ ] setComponentStyle(componentId, styleOverrides)
  • [ ] getComponentStyle(componentId)
  • [ ] 实现微调配置持久化
  • [ ] 基于 ConfigStore
  • [ ] 与主题包关联
  • [ ] 实现样式重置
  • [ ] resetComponentStyle(componentId)
  • [ ] resetAllStyles()
  • [ ] 编写单元测试

Week 3: iOS 主题包

Day 1-2: iOS 颜色 Token

  • [ ] 实现 iOS 颜色方案
  • [ ] 对标 iOS 17 Human Interface Guidelines
  • [ ] 定义主色调(iOS Blue)
  • [ ] 定义背景色(浅色/深色模式)
  • [ ] 定义表面色
  • [ ] 实现深色模式支持
  • [ ] light 颜色集
  • [ ] dark 颜色集
  • [ ] 自动切换(跟随系统)
  • [ ] 准备 iOS 风格图标
  • [ ] SF Pro 风格图标
  • [ ] 圆角矩形图标
  • [ ] 图标阴影

Day 3: iOS 布局策略

  • [ ] 实现 IOSNavigationPolicy(已在 Phase 10 实现)
  • [ ] 实现 IOSWindowPolicy(全屏模式)
  • [ ] 定义 iOS 间距规范
  • [ ] 8pt 基础网格
  • [ ] 标准间距(8/16/24/32pt)

Day 4-5: iOS 动效与壁纸

  • [ ] 实现 iOS 动效策略
  • [ ] Spring Animation 参数集
  • [ ] mass: 1.0
  • [ ] stiffness: 300
  • [ ] damping: 20
  • [ ] 准备 iOS 默认壁纸
  • [ ] 3-5 张高质量壁纸
  • [ ] 支持深色模式壁纸
  • [ ] 编写 iOS 主题包配置文件

Week 4: Windows 11 主题包

Day 1-2: Windows 颜色 Token

  • [ ] 实现 Windows 颜色方案
  • [ ] 对标 Windows 11 Fluent Design
  • [ ] 定义主色调(Windows Blue)
  • [ ] 定义 Mica 效果颜色
  • [ ] 定义 Acrylic 效果颜色
  • [ ] 实现深色模式支持
  • [ ] light 颜色集
  • [ ] dark 颜色集
  • [ ] 准备 Windows 风格图标
  • [ ] Segoe UI 风格图标
  • [ ] 中等圆角
  • [ ] Fluent 风格

Day 3: Windows 布局策略

  • [ ] 实现 WindowsNavigationPolicy(已在 Phase 10 实现)
  • [ ] 实现 WindowsWindowPolicy(浮动模式)
  • [ ] 定义 Windows 间距规范
  • [ ] 4px 基础网格
  • [ ] 标准间距(4/8/12/16/20px)

Day 4: Windows 动效与特效

  • [ ] 实现 Windows 动效策略
  • [ ] Ease 曲线参数集
  • [ ] 缓入缓出
  • [ ] 标准时长(200ms)
  • [ ] 实现 Mica 效果(High Tier)
  • [ ] 半透明背景
  • [ ] 模糊效果
  • [ ] 实现 Acrylic 效果(High Tier)
  • [ ] 毛玻璃效果
  • [ ] 编写 Windows 主题包配置文件

Day 5: 主题包验证与测试

  • [ ] 编写主题包验证工具
  • [ ] 测试主题切换
  • [ ] iOS → Windows
  • [ ] Windows → iOS
  • [ ] 测试深色模式切换
  • [ ] 性能测试

Week 4-5: 系统设置 App

Week 4, Day 1-2: 设置框架

  • [ ] 创建 SettingsApp(独立进程)
  • [ ] 实现设置分类导航
  • [ ] 侧边栏导航
  • [ ] 分类图标+名称
  • [ ] 实现设置项通用组件
  • [ ] SettingItem(标题+描述+控件)
  • [ ] SettingGroup(分组标题+子项)
  • [ ] SettingSwitch(开关)
  • [ ] SettingSlider(滑条)
  • [ ] SettingComboBox(下拉选择)
  • [ ] 实现搜索功能
  • [ ] 所有设置项可搜索
  • [ ] 实时过滤
  • [ ] 编写单元测试

Week 4, Day 3-5: 设置页面

  • [ ] 显示设置
  • [ ] 分辨率选择
  • [ ] 亮度滑条
  • [ ] 夜间模式开关
  • [ ] 缩放比例
  • [ ] 声音设置
  • [ ] 音量滑条
  • [ ] 输出设备选择
  • [ ] 提示音开关
  • [ ] 网络设置
  • [ ] WiFi 列表
  • [ ] IP 配置
  • [ ] 代理设置
  • [ ] 蓝牙设置
  • [ ] 设备列表
  • [ ] 配对管理
  • [ ] 桌面设置
  • [ ] 主题包切换
  • [ ] 壁纸选择
  • [ ] 动效开关
  • [ ] 深色模式切换

Week 5, Day 1-2: 更多设置页面

  • [ ] 输入设置
  • [ ] 触摸灵敏度
  • [ ] 鼠标速度
  • [ ] 键盘布局
  • [ ] 应用设置
  • [ ] 已安装应用列表
  • [ ] 默认应用
  • [ ] 权限管理
  • [ ] 语言设置
  • [ ] 语言列表(预留)
  • [ ] 地区设置
  • [ ] 时区设置
  • [ ] 辅助功能
  • [ ] 字体大小缩放
  • [ ] 高对比度(预留)
  • [ ] 系统设置
  • [ ] 关于本机
  • [ ] 硬件信息(HWTier 展示)
  • [ ] 日志查看

Week 5: 锁屏模块

Day 1-3: 锁屏核心

  • [ ] 创建 LockScreen 类
  • [ ] 最高 Z-order 层
  • [ ] 覆盖所有窗口
  • [ ] 实现解锁方式
  • [ ] PIN 码解锁
  • [ ] 密码解锁
  • [ ] 图案解锁(可选)
  • [ ] 实现安全凭证存储
  • [ ] 加密存储
  • [ ] 与系统分离
  • [ ] 实现锁屏界面
  • [ ] 时间显示
  • [ ] 日期显示
  • [ ] 解锁控件
  • [ ] 通知提示(可选)
  • [ ] 编写单元测试

Day 4-5: 锁屏增强

  • [ ] 实现锁屏壁纸
  • [ ] 独立于桌面壁纸
  • [ ] 可配置
  • [ ] 实现锁屏通知
  • [ ] 仅 Normal 及以上级别
  • [ ] 点击查看详情(需先解锁)
  • [ ] 实现息屏策略
  • [ ] 超时自动锁屏(可配置)
  • [ ] HWTier 联动
    • [ ] Low Tier: 30 秒
    • [ ] Mid Tier: 1 分钟
    • [ ] High Tier: 2 分钟
  • [ ] 实现锁屏媒体控制卡片
  • [ ] 正在播放时显示
  • [ ] 播放/暂停控制
  • [ ] 编写集成测试

三、验收标准

功能验收

  • [ ] iOS/Windows 两套主题包均完整可用
  • [ ] 运行时热切换无崩溃、无视觉撕裂
  • [ ] 动效在各 HWTier 按策略正确降级
  • [ ] 设置 App 所有项可配置
  • [ ] 锁屏安全可靠

性能验收

  • [ ] 主题切换 < 500ms
  • [ ] 设置 App 启动 < 1s
  • [ ] 锁屏解锁响应 < 200ms

代码质量

  • [ ] 单元测试覆盖率 > 80%
  • [ ] 符合项目代码规范

四、文件清单(待实现)

头文件

  • [ ] ui/desktop/theme/theme_style_manager.h
  • [ ] ui/desktop/theme/theme_pack.h
  • [ ] ui/desktop/theme/theme_colors.h
  • [ ] ui/desktop/theme/theme_typography.h
  • [ ] ui/desktop/theme/theme_shapes.h
  • [ ] ui/desktop/theme/theme_spacing.h
  • [ ] ui/desktop/theme/ios_theme_pack.h
  • [ ] ui/desktop/theme/windows_theme_pack.h
  • [ ] ui/desktop/app/settings_app.h
  • [ ] ui/desktop/app/setting_item.h
  • [ ] ui/desktop/app/setting_group.h
  • [ ] ui/desktop/shell/lock_screen.h

源文件

  • [ ] src/desktop/theme/theme_style_manager.cpp
  • [ ] src/desktop/theme/theme_pack.cpp
  • [ ] src/desktop/theme/ios_theme_pack.cpp
  • [ ] src/desktop/theme/windows_theme_pack.cpp
  • [ ] src/desktop/app/settings_app.cpp
  • [ ] src/desktop/app/setting_item.cpp
  • [ ] src/desktop/shell/lock_screen.cpp

资源文件

  • [ ] assets/themes/ios/theme.json
  • [ ] assets/themes/ios/colors.json
  • [ ] assets/themes/ios/typography.json
  • [ ] assets/themes/ios/wallpapers/
  • [ ] ios_light_01.jpg
  • [ ] ios_dark_01.jpg
  • [ ] ...
  • [ ] assets/themes/windows11/theme.json
  • [ ] assets/themes/windows11/colors.json
  • [ ] assets/themes/windows11/typography.json
  • [ ] assets/themes/windows11/wallpapers/
  • [ ] win_bloom.jpg
  • [ ] win_flow.jpg
  • [ ] ...

测试文件

  • [ ] tests/unit/desktop/theme/test_theme_style_manager.cpp
  • [ ] tests/unit/desktop/theme/test_theme_pack.cpp
  • [ ] tests/unit/desktop/theme/test_ios_theme.cpp
  • [ ] tests/unit/desktop/theme/test_windows_theme.cpp
  • [ ] tests/unit/desktop/app/test_settings_app.cpp
  • [ ] tests/unit/desktop/shell/test_lock_screen.cpp

五、相关文档


最后更新: 2026-03-12