## [1.6.0] - 2026-07-20 ### ✨ 新增 - **魅族 21 Note 机型适配**:新增 `21 Note` 特征字识别,设计容量 5500mAh - 21 Note 运行 Flyme 12.6 版本,日志格式与 21 系列一致 - 支持 `learned_cap` 字段直接读取,与 21 / 21 Pro 逻辑相同 - 已加入 `DeviceMatching` 机型映射表 - **更新日志页面**:内置 `CHANGELOG.md` 渲染,版本历史一目了然 - 使用 `flutter_markdown` 解析,支持标准 Markdown 格式 - 滚动进度条:实时显示阅读进度,提升浏览体验 - 进入页面自动请求 120Hz 高刷新率,滑动更流畅(Flyme LTPO 适配) - 滚动时呼吸动画维持高刷感知,停止后自动恢复省电策略 - **AppBar 菜单重构**:刷新按钮左移,右侧新增三点菜单 - `更新日志`:已可用 - `深色模式`:占位(1.7.0 实现) - `关于`:占位(1.7.0 实现) - **原生层高刷控制**:新增 `MethodChannel` 通道,支持 Dart 侧动态申请/释放 120Hz - 进入更新日志页面自动触发 - 退出页面自动释放,不影响系统省电策略 ### ✅ 已确认完美支持(更新) | 机型 | 容量来源 | 设计容量 | |---|---|---| | 魅族 20 / 20 Pro / 20 INFINITY | `remaining_cap` + `status=Full` | 4700 / 5000 / 4800 mAh | | 魅族 21 / 21 Pro | `learned_cap` | 4800 / 5050 mAh | | **魅族 21 Note(新增)** | `learned_cap` | **5500 mAh** | ### ⚡ 优化 - **UI 拆分**:将 `BatteryHealthPage` 的 UI 部分抽离至独立文件,降低耦合度 - **动画简化**:移除复合动画控制器(`AnimationController`),改用轻量 `AnimatedOpacity` 控制充电条目显隐 - **更新日志性能**:缓存 Markdown 渲染结果,避免重复解析 - **LTPO 适配**:通过进度条微动 + 原生层 `preferredRefreshRate`,解决更新日志页面降频卡顿问题 ### 🐛 修复 - 修复更新日志页面因 `ListView` + `shrinkWrap` 导致的 `unbounded height` 渲染异常 - 修复充电条目动画状态残留导致的显示异常 - 修复部分 `TextStyle` 中 `color` 与 `foreground` 混用导致的渲染断言错误 ### 📊 影响范围 - `device_matching.dart`:新增 21 Note 机型映射 - `battery_health_page.dart`:AppBar 重构,动画简化 - `battery_data_layout.dart`(新增):UI 布局抽离 - `changelog_page.dart`(新增):更新日志页面 - `MainActivity.kt`:新增原生高刷控制通道 - `pubspec.yaml`:新增 `flutter_markdown` 依赖,添加 `assets/CHANGELOG.md` ### 📌 备注 - 本次更新为 1.6.0 封版版本,后续将聚焦 1.7.0(深色模式 + 关于页面) - 21 Note 在 Flyme 12.6 上测试通过,日志解析正常 ✅ ---- ## [1.5.3] - 2026-07-19 - 新增:机型匹配优化 ### ✅ 已确认完美支持 - 魅族 20 / 20 Pro / 20 INFINITY(基于remaining_cap + status=full联合判断) - 魅族 21 / 21 Pro(直接读取learned_cap字段信息) ### ⚠️ 部分支持(测试中) - 魅族 18 / 18s / 18 Pro / 18s Pro(日志存在,字段解析适配中) - 魅族 16s(需回退原厂固件验证) ### ❌ 确认不支持 - 魅族 21 Note(星纪团队固件,日志格式乱码无法识别,导致异常) - 魅族 22(系统未生成 `mbattery_charger` 目录) ### 📌 说明 - 适配状态仅针对 BMS 日志可读性,与手机硬件本身无关 - 部分旧机型(如 16 系)若无日志生成,则无法使用本工具 - 后续若发现其他机型可用,将持续补充 ---- ## [1.5.2] - 2026-07-14 ### 新增 - 浪漫雅圆字体,工程内文件为FlymeFont.ttf ### 🎨 UI 优化 - **字体体系重构**:数字全局替换为 FlymeFont(浪漫雅圆),中文保留 HarmonyOS Sans SC - 健康度百分比、容量数值、循环次数、电压/温度读数均使用 FlymeFont - 中文/单位/符号保持 HarmonyOS Sans SC,确保阅读舒适度 - **温标符号修正**:温度显示由 `°C`(度符号 + C)改为专用字符 `℃`(U+2103),与 FlymeFont 原生适配 - **容量行视觉权重优化**: - 当前容量与设计容量数字使用 FlymeFont(字号 20,字重 300) - `mAh` 单位改用 HarmonyOS Sans SC(字号 16,字重 500),与 `cycles` 保持一致 - 整行颜色统一为 `rgb(95, 95, 95)`,弱化视觉重量,突出健康度大数字 - **电压/温度极值显示优化**:数值与单位统一使用 FlymeFont,箭头符号保留 HarmonyOS ### 🐛 修复 - 修复 FlymeFont 数字 1 在部分场景下显示为红色的问题(字体内部颜色预设) - 修复容量行 `designCap`(设计容量)未正确应用 FlymeFont 的问题 - 修复部分 `TextStyle` 中 `color` 与 `foreground` 混用导致的渲染断言错误 - 统一主界面与二级页面状态栏样式 ### 📊 影响范围 - `battery_summary.dart`:健康度/循环/容量显示样式重构 - `battery_info_panel.dart`:电压/温度显示字体统一 - `charge_detail_page.dart`:数值字体统一 - `trend_chart.dart`:坐标轴数字字体统一 ### 📌 备注 - 本次更新纯 UI 优化,不影响数据读取与计算逻辑 ---- ## [1.5.0] - 2026-07-09 ### 🐛 修复 - 修复有线充电功率计算单位错误(µV × µA 计算时少除 1000,导致功率放大 1000 倍,属于潜藏bug,外面看不出问题) - 修复魅族 21 系列 `learned_cap` 因受 `status=Full` 限制导致容量未及时更新的问题 - `learned_cap` 优先级提升:在所有状态行中优先匹配,不再局限于 `status=Full` ### ⚡ 优化 - 有线充电功率显示重构: - 主界面:`≈{实际功率}w/{请求功率}w`(例:`≈30w/65w`) - 二级页面:拆分为“请求档位”(`≈80w/L-10`)和“实际功率”(`≈30w`)两行 - USB 慢充保持 `≈7.5w` 不变 - UI 统一: - 统一主界面与二级页面状态栏背景色 - 统一主界面与二级页面 AppBar 背景色为 `Colors.white` - 状态栏图标保持深色(`Brightness.dark`) ## 更早期日志请移步至项目Git Release页面查看