android: fix recording crash+save, gallery viewer unreachable, back key, settings persistence; photo orientation+annotations, analyzable MDT probes, trace mode
This commit is contained in:
@@ -68,6 +68,20 @@
|
||||
| 34 | 设置页依次点每一行,确认都有反应 | 调色板/发射率/报警温度/语言/旋转USB画面/云同步/关于 → 弹对话框;水平翻转/竖直翻转 → 文案在"已开启/已关闭"间切换;远程预览服务端 → 切换或弹"先连接热像仪";远程预览客户端 → 进入主机列表 | **没有点了没反应的行**(此前"语言"和"关于"是死行) |
|
||||
| 35 | 在**设置页**改"竖直翻转"或"旋转USB画面",然后切回实时页 | (无日志) | 画面**立即**按新设置显示(设置变更即时下发;此前靠实时页 400ms 轮询,仅在实时页处于打开状态时才生效) |
|
||||
|
||||
## 第二轮真机修复项(2026-09-11,重点验证)
|
||||
|
||||
| # | 操作 | 预期 | 通过标准 |
|
||||
|---|------|------|----------|
|
||||
| 36 | 实时页点"录像",等 10 秒,再点"停止" | `[rec] stopped: frames=<N> dropped=<N> file=<字节>`,随后实时页出现"录像已保存到相册"提示 | **不闪退**(此前停止即崩溃);相册/文件管理器 DCIM/MAG160C 出现 `MAG160C_V_*.mp4` 且**能播放**;日志 `frames` 应为几百(15fps×10s≈150) |
|
||||
| 36b | 若录像仍失败 | `[rec] start failed: …` 或 `[rec] frame dropped (…) dropped=<N>` / `[rec] video publish failed: …` | 日志会指出是编码启动、丢帧还是入库失败;**不再有未捕获异常** |
|
||||
| 37 | 相册页点任意一张照片 | (无日志) | **立即进入查看页**(此前点了没反应);按返回键**回到相册列表**,不是退出软件 |
|
||||
| 38 | 分析页点图像任意位置 | (无日志) | 该处出现白点+圆环+`Pt* 温度`标签;侧边栏"测温点"列表同步新增一行;**再点同一点可删除** |
|
||||
| 39 | 分析页点"保存" | 提示"已保存为新照片" | 相册出现一张 `MAG160C_*_edit.jpg`(**原照片仍在**);打开新照片能看到烧录的测温点标记 |
|
||||
| 40 | 关掉 APP 完全重开,进设置页 | (无日志) | 之前改过的**旋转USB画面/水平翻转/竖直翻转/追踪/默认调色板**都还在(此前会变回默认) |
|
||||
| 41 | 设置页改"追踪"为"最低温",回实时页 | (无日志) | 顶栏显示"追低",画面上**只标最低温**;改成"最高+最低"→ 两个都标;"关闭"→ 都不标 |
|
||||
| 42 | 设置"竖直翻转"开启后拍照 | (无日志) | **照片方向与屏幕一致**(此前保存的是传感器原始朝向,与屏幕不符) |
|
||||
| 43 | 拍照前先在实时页点几个测温点,再拍照 | (无日志) | 照片上带这些测温点与温度;进分析页打开该照片,**测温点仍在**且可继续编辑 |
|
||||
|
||||
## 相机(PIP)失败时的表现(设计如此,不算 bug)
|
||||
PIP 的相机是可选功能,任何相机异常都只记日志并关闭小窗,**不影响热像主画面**:
|
||||
|
||||
|
||||
@@ -451,6 +451,51 @@
|
||||
(CAMERA 权限原本会让相机变必需,已显式声明为可选)。
|
||||
**未 push**(按用户指令)。
|
||||
|
||||
## 用户反馈修复 第十九轮(2026-09-11,第二轮真机:相册/录像/分析/设置持久化)
|
||||
|
||||
用户第二轮实机测试报出以下问题,本轮全部处理:
|
||||
|
||||
- [x] **录像停止即闪退**(严重)。两处根因:
|
||||
① `Mp4Recorder.offerFrame` 先取 `inputSurface` 再判断,而 `stop()` 会 release
|
||||
它——采集线程随后 `lockCanvas` 在已释放 Surface 上抛异常,**该异常发生在
|
||||
USB 读线程且无人捕获 → 进程崩溃**。现改为所有 surface/encoder 访问同锁,
|
||||
且 `offerFrame` 整体 try/catch 吞掉编码层异常(丢帧优于崩溃)。
|
||||
② **录完的文件从未保存**(只改了状态文案,相册里什么都没有)。现新增
|
||||
`MediaStore.Video` 保存(`PhotoSaver.saveVideo`)+ 临时文件清理,
|
||||
状态区分 `rec_done`/`rec_save_fail`/`rec_fail`。
|
||||
- [x] **相册点照片打不开**:`AnalyzeViewer` 被放在 `fillMaxSize()` 的 Column
|
||||
**之后**,布局到屏幕外,所以点击像"没反应"。改为 `Box` 内**覆盖层**,
|
||||
并加 `BackHandler` 让返回键关闭查看器。
|
||||
- [x] **远程预览列表按返回键直接退出软件**:缺 `BackHandler`。列表页与查看页
|
||||
均补上(列表→返回设置;查看页→断开并回列表)。
|
||||
- [x] **设置不生效/不持久**(用户:"每次重开设置就变回默认"):根因是
|
||||
**默认调色板/追踪模式从未被实时页读取**(只有方向设置接了)。
|
||||
`AppSettings` 全部相关 setter 现在都 publish 到 `ImageOrientationSettings`,
|
||||
`init` 用持久化值播种;实时页 collect 后即时应用调色板+追踪模式。
|
||||
(`defaultEmissivityPercent`/`alarmTempC` 仍未被管线使用——见"诚实记录"。)
|
||||
- [x] **照片要按设置竖直翻转/旋转后再保存**:新增
|
||||
`PhotoSaver.encodeRendered(frame, orientation, probes)`,拍照时按**与屏幕
|
||||
一致**的方向(翻转→旋转)生成 JPEG,不再保存传感器原始朝向。
|
||||
- [x] **照片上烧录测温点+温度**:拍照时把探针(含 `Pt* 温度` 标签)绘到 JPEG 上。
|
||||
- [x] **MDT 新增探针数据块**(`0x5BB5B55F`,UTF-8 文本行 `x,y,label,tempMc`),
|
||||
分析页可**重新载入**原有测温点并可编辑。
|
||||
- [x] **分析页改造**(按用户要求):只显示保存的原始渲染图(不再按调色板重渲染,
|
||||
避免"改调色板看起来照片被改了");点击图像添加测温点、再点删除;
|
||||
"保存"生成**新照片**(标注烧录、探针入库),原文件不动;
|
||||
最高/最低/中心温度与测温点列表显示在**侧边栏**。
|
||||
- [x] **追踪模式设置项**:设置页新增"追踪"(最高温/最低温/最高+最低/关闭),
|
||||
顶栏按钮显示当前模式(追高/追低/追高·低/追踪),录入 `TraceMode`。
|
||||
- [x] **操作反馈**:拍照/录像完成后在实时页显示 2.5 秒提示(此前这些状态只在
|
||||
"未连接"分支显示,正常出图时用户看不到任何反馈)。
|
||||
- [x] 单测 66 → **76 项全绿**;debug + release(R8) 双构建通过;APK 已更新。
|
||||
|
||||
**诚实记录(本轮未做)**:
|
||||
- `defaultEmissivityPercent`(默认发射率)与 `alarmTempC`(报警温度)**仍未被
|
||||
测温管线使用**:发射率需要官方 `CorrectTemperature` 的完整浮点公式(已从
|
||||
libcxsdk 伪代码定位到 `@000298f0`,但牵涉 T2E/环境温度/`Energe2Temp` 多处
|
||||
状态,属独立议题),报警温度需要超温提示 UI。当前这两项**只保存与显示**,
|
||||
不声称已生效。
|
||||
|
||||
## 用户反馈修复 第十八轮(2026-09-11,真机实测:温度/朝向/远程三类缺陷)
|
||||
|
||||
用户实机安装测试(含两台手机远程预览)报出以下问题,本轮全部处理:
|
||||
|
||||
Reference in New Issue
Block a user