Repository navigation
新增功能
本版以扫码修复为主,没有新增功能。
变更
- 扫码入口位置:从「个人设置」挪到侧边栏(抽屉)头像行右侧的扫码按钮;设置页不再保留第二个入口。长按桌面图标的「扫一扫」快捷方式与
otsmail://qr深链保持不变。
修复
- 二维码完全无法识别:此前用 ZXing 的
PlanarYUVLuminanceSource.rotateCounterClockwise()旋转 90/270 度的相机帧,而该类型不支持旋转,每帧都会抛异常又被静默吞掉,界面表现为「相机有画面但扫什么都没反应」。现改为按rowStride(含行尾 padding)自行取出 Y 平面并做 90/180/270 度旋转,再交给 ZXing 解码。 - 分析分辨率过大:分析流此前会被选到 3024×3024,每帧旋转与二值化开销很大;现固定目标 1280×720(实测落到 960×720),明显降低每帧耗时。
- 没有自动对焦:预览流与分析流都设置
CONTROL_AF_MODE_CONTINUOUS_PICTURE,进入扫码页后每 2.5 秒对画面中心补一次对焦,并支持点击屏幕对焦到点击位置。 - 没有成功反馈:首次识别到 OTSMail 登录二维码时播放一声短提示音并短震动一次,命中后立即停止分析,不会重复触发。
- 无效二维码静默无提示:识别到二维码但不是 OTSMail 格式时,明确提示「这不是 OTSMail 登录二维码」;连续扫到同一张无效码不会反复提示。
已知问题
- 扫码端到端(网页出码 → App 扫码确认 → 网页登录)仍需真机完整走通验证。服务端
/login/qr已确认线上可用(返回 200 与真实票据),不再存在「未部署」问题。
安装提示
- 同签名可直接覆盖安装,登录态与本地邮件缓存保留。
- 覆盖安装会重置通知权限(
POST_NOTIFICATION的 app-op 回到 ignore),装完需要到系统设置里手动再开启一次,否则新邮件提醒不会弹出。
本版仍未经真机验证的项
- 有效二维码的完整链路:本版只通过 adb 日志确认了「帧能到达、90° 旋转不再抛异常、解码返回 null(画面里没有码)」,尚未在真机扫到真实网页二维码并走完确认登录。
- 提示音与震动:实际音量、时长与听感未验证。
- 对焦效果:自动对焦与点屏对焦后的实际识别距离、暗光成功率未验证。
- 无效二维码提示:只在代码层确认提示文案与去重逻辑,未在真机对照测试。
- 入口位置:抽屉头像行右侧的扫码按钮在窄屏/长邮箱地址下的排布未在真机确认。
正式签名包,可直接覆盖升级。SHA-256:fbba03f5c60bea2fdc942db3a5e7f1e1a9b25a03976168a011f791475b44e2bf
该版本的 R8 混淆映射不随 Release 公开,仅归档在本次 Actions artifact(保留 90 天,文件名 mapping-v0.3.3.txt)。