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:
ZXCLI
2026-09-11 23:26:27 +08:00
parent 3704ee797b
commit 15a7127287
18 changed files with 1351 additions and 397 deletions
+45
View File
@@ -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,真机实测:温度/朝向/远程三类缺陷)
用户实机安装测试(含两台手机远程预览)报出以下问题,本轮全部处理: