android: revert image to locked orientation (user decision); keep official-style manual rotate/flip settings

This commit is contained in:
ZXCLI
2026-09-11 03:50:56 +08:00
parent 464cfcb5e8
commit f7bca894ba
13 changed files with 227 additions and 218 deletions
+14 -12
View File
@@ -466,15 +466,16 @@
新增回归测试 `PipelineTemperatureStateTest`3 项)。
- [x] **追踪开关只关最高温**:最低温标记未受开关控制(`LiveRenderer.drawOsd`)。
现在开=最高+最低都画("高"/"低"),关=都不画。
- [x] **画面转向反了 / 横屏应翻 180°**先"图像恒 90°CW 不动"的约定在真机上
表现为转身后场景跟着转。改为**图像内容按握持角补偿**:`rot = 90 - φ`
依据官方实现(`MainActivity.windowOrientationListener` 把 Display.rotation
映射成图像 90/0/270/180,经 `ImageViewer.drawImage``matrix.postRotate`
应用;官方窗口随传感器转,可见结果恒 90);显示旋转索引→角度取官方自家
相机代码 `VisibleCameraHelper.setPreviewOrientation`N→N×90)。
构图(条栏/图像区绝对位置)仍钉死竖屏框架不变
- [x] **新增官方同款方向设置**:设置页"旋转USB画面"0/90/180/270)、
"水平翻转"、"竖直翻转",叠加在自动补偿之上并持久化。
- [x] **画面转向反了 / 横屏应翻 180°**:先"图像内容随握持角补偿(`rot = 90 - φ`"
改了一版,**用户实测后指正:图像应保持锁定**——传感器装在手机上跟着一起转,
锁定图像时场景相对世界方向自动正确,加速度计参与反而双重补偿(这正是
"右转画面往反方向转"的原因)。**已改回锁定**:`ImageTransform.params()`
不再接受握持角参数(编译期保证),只保留官方同款手工修正。
用户还实测发现"**竖直翻转 + 旋转 90°**"能把画面转到另一方向——已用单测
证明它等价于"水平翻转 + 旋转 270°"(逐像素比对),两者只差一次水平镜像
- [x] **新增官方同款方向设置**:设置页"旋转USB画面"0/90/180/270,叠加在锁定
基准 90° 上)、"水平翻转"、"竖直翻转"(作用在传感器帧上,与官方一致),
持久化于 `AppSettings`
- [x] **色标条两端最高/最低温与色条错位**:标签原先按未旋转的基线锚点定位。
改为**按旋转后包围盒**定位(`ImageTransform.rotatedBoxHalfExtents` +
`drawGripText`),任意握持角都贴着色条两端。
@@ -494,12 +495,13 @@
主机实现"后来者写 busy"accept 循环不再阻塞在 serve 上,第二客户端立即
收到 `{"type":"busy"}`;新增 `secondClientIsRejectedWithBusy`)。
另删除未使用的 `ACCESS_NETWORK_STATE` 权限。
- [x] 单测 44 → **61 项全绿**debug + release(R8) 双构建通过;APK 已更新
- [x] 单测 44 → **62 项全绿**debug + release(R8) 双构建通过;APK 已更新
12.66MB)。`screenOrientation=portrait` 复核保持、camera 系列仍
not-required、多余权限已消失。
⚠️ **规格偏离(已告知用户)**:本轮推翻了第四/五轮"图像恒 90°CW 不动"的约定
(用户实测该约定导致转向错误)。构图绝对位置不变,仅图像**内容**随握持角补偿。
⚠️ **规格说明(用户裁定)**:图像**锁定**在竖屏框架(第四/五轮约定维持不变);
新增的仅是官方同款三项手工方向修正。中途曾按握持角补偿图像,用户实测指正后
已改回,`ImageTransform.params()` 不再接受握持角参数以防回退。