diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 1e2cfe1..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cmake.ignoreCMakeListsMissing": true, - "gitlens.codeLens.enabled": false -} \ No newline at end of file diff --git a/assets/CHANGELOG.md b/assets/CHANGELOG.md index aeaf1a6..d3c7193 100644 --- a/assets/CHANGELOG.md +++ b/assets/CHANGELOG.md @@ -2,6 +2,11 @@ ### ✨ 新增 +- **魅族 21 Note 机型适配**:新增 `21 Note` 特征字识别,设计容量 5500mAh + - 21 Note 运行 Flyme 12.6 版本,日志格式与 21 系列一致 + - 支持 `learned_cap` 字段直接读取,与 21 / 21 Pro 逻辑相同 + - 已加入 `DeviceMatching` 机型映射表 + - **更新日志页面**:内置 `CHANGELOG.md` 渲染,版本历史一目了然 - 使用 `flutter_markdown` 解析,支持标准 Markdown 格式 - 滚动进度条:实时显示阅读进度,提升浏览体验 @@ -17,6 +22,14 @@ - 进入更新日志页面自动触发 - 退出页面自动释放,不影响系统省电策略 +### ✅ 已确认完美支持(更新) + +| 机型 | 容量来源 | 设计容量 | +|---|---|---| +| 魅族 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 部分抽离至独立文件,降低耦合度 @@ -32,12 +45,17 @@ ### 📊 影响范围 +- `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 diff --git a/lib/models/device_matching.dart b/lib/models/device_matching.dart index 60c3cff..c199dc7 100644 --- a/lib/models/device_matching.dart +++ b/lib/models/device_matching.dart @@ -3,6 +3,7 @@ class DeviceMatching { /// 根据机型返回设计容量(mAh) static int getDesignCapacity(String model) { if (model.contains('21 Pro')) return 5050; + if (model.contains('21 Note')) return 5500; if (model.contains('21')) return 4800; if (model.contains('20 Pro')) return 5000; if (model.contains('20 Inf')) return 4800; @@ -29,6 +30,7 @@ class DeviceMatching { /// 根据机型返回显示名称 static String getModelName(String model) { if (model.contains('21 Pro')) return '魅族21 Pro'; + if (model.contains('21 Note')) return '魅族21 Note'; if (model.contains('21')) return '魅族21'; if (model.contains('20 Pro')) return '魅族20 Pro'; if (model.contains('20 Inf')) return '魅族20 Infinity';