AskaEth
f49585dd62
fix(launcher): M47 r1 评审 P2 四项 — 未知态不写盘/不顶替 + deadline 从点击起算 + 开关弹窗后置清理
评审 r1 status=p2-4items / merge=fix-then-merge(reviewed e4eda3a)。逐条:
P2-1 未知态被写成 settings=0,把失真推到别的入口
- bt_page.c / wifi_page.c:`meow_settings_set_bool(..., disp == 1)` 加 `disp >= 0` 门。
disp == -1(daemon 与直连都读不到)时**保留用户原意图不动**。该键被 notif_center /
settings_page 当显示态读、被 app_launcher 用来决定自动拉起 WiFi,写 0 会把「不知道」
污染成「确定已关」。
- test_bt_page.c 5d 期望同步改:未知 → settings 保持原意图 1(不再期望「回滚为 0」)。
P2-2 收尾后「探测未知」仍显示成确定态,第三态丢失
- mtog_calc:显示态**只认 probe**,probe < 0 直接返回 -1;last_real 不再顶替确定态
(`(void)last_real`,仅由调用方用于弹窗文案)。超时/下发失败且探测未知 → 顶栏保留
「关+?」、行内保留「状态未知」,与文件头契约一致。
- 弹窗文案按结论区分:「无法确认当前状态(上次已知:开启/关闭/未知)」vs
「切换未生效:当前仍为开启/关闭」——不再出现「当前仍为开启」自相矛盾(该文案只在
probe 已知且 != 意图时出现)。日志加 elapsed。
P2-3 deadline 起点错,注释上限是假的
- bt_page/wifi_page:`deadline` 从**点击时刻**起算(含下发耗时)。
- 注释改成如实上限:快路径 1~2s / ≈16 次探测;慢路径(on-off 读超时 1.5s + hciconfig
0.3~2s,之后一次探测 status 1.5s + 直连 1.8s ≈3.3s)总阻塞最坏 ≈7s、预算内只够 1 次
探测,此时只能确认「探测超时」而非「设备无响应」——文案已按此区分。异步化留给后续单。
P2-4 开关路径弹窗后缺 after_modal / 按键基线复位
- subpage.c:顶开关命中分支补上与行命中分支相同的后置清理(排空触摸 + 40ms 二次排空、
触摸基线/cooldown、key_router_rebase、kd_*/kp_poll 基线、m_prev_*、after_modal=1)。
s_dd_modal 是全屏压暗层,否则关闭后状态栏(0..27)残留压暗到下一次时钟重绘,电源/播放键
也可能带进弹窗里的陈旧边沿。
顺带(评审观察,未改全局超时策略)
- netmgr_ipc.c:拆出 `nm_cmd_t(..., int *read_timeout)`;`nm_bt_power_state()` 走它,
**读超时 = 状态未知且不把可达性缓存打成 down**(netmgrd 单线程忙时 `bt status` 自己
跑 hciconfig 可能超 1.5s;旧行为会标 down 1s,令紧随的 bt_rows 闪出「服务未运行(直连
模式)」并把后续探测切到 1.8s 直连)。WiFi/DNS 等其它调用保持旧语义(传 NULL)。
验证
- `bash patch_v2/meow_launcherd/build_launcher.sh test` → exit 0,**65 PASS / 0 FAIL / 0 warning**
(矩阵 13 组,新增「下发失败·探测未知 → 未知不顶替」)。
- 交叉编译 0 warning;产物(临时副本,不入库)901020 B / md5 e21450ff6621a67fd854165413c58be1。
- `test_time32_abi.sh` → 4263=3 / 4403=0 ALL PASS;`pkg_install` 与 7 条切换中/未知态文案
均在 strings 中(旧的两条「无法确认蓝牙/WiFi 状态」已合并为「无法确认当前状态(上次已知:%s)」)。
- 真机 --sysdump(只读,临时文件已删):exit 0,bt_on=1/wifi_on=1 与设备现状一致;
Music du 前后 199164544;未替换 /usr/bin/meow_launcherd、未重启 launcherd。
- 交付形态不变:本 commit 只动 5 个源码文件;二进制与 scripts/build/fw_content.conf 对 main 零 diff。
2026-11-11 17:59:13 +08:00
..
2026-08-30 21:38:30 +08:00
2026-11-11 16:37:00 +08:00
2026-09-01 16:08:01 +08:00
2026-09-01 04:28:10 +08:00
2026-11-04 21:00:40 +08:00
2026-11-11 17:59:13 +08:00
2026-11-11 17:23:55 +08:00
2026-08-30 01:12:34 +08:00
2026-08-31 19:12:51 +08:00
2026-09-03 12:16:01 +08:00
2026-08-31 03:41:51 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-09-02 17:25:21 +08:00
2026-08-30 01:12:34 +08:00
2026-11-04 20:02:28 +08:00
2026-11-04 20:02:28 +08:00
2026-09-04 18:13:18 +08:00
2026-11-10 22:51:00 +08:00
2026-09-02 00:57:17 +08:00
2026-09-02 03:41:39 +08:00
2026-09-04 02:21:45 +08:00
2026-11-11 16:37:00 +08:00
2026-09-01 19:40:29 +08:00
2026-09-01 19:40:29 +08:00
2026-11-04 21:00:40 +08:00
2026-11-04 21:00:40 +08:00
2026-11-04 21:00:40 +08:00
2026-11-04 21:00:40 +08:00
2026-08-30 21:38:30 +08:00
2026-09-01 18:28:07 +08:00
2026-08-30 14:14:30 +08:00
2026-08-31 07:53:57 +08:00
2026-08-31 07:53:57 +08:00
2026-11-04 21:00:40 +08:00
2026-11-11 16:37:00 +08:00
2026-11-11 17:23:42 +08:00
2026-09-04 00:39:29 +08:00
2026-09-04 00:39:29 +08:00
2026-08-30 21:38:30 +08:00
2026-08-31 05:46:46 +08:00
2026-08-31 05:46:46 +08:00
2026-09-03 20:01:13 +08:00
2026-09-01 14:44:55 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-09-02 08:13:55 +08:00
2026-11-11 17:16:28 +08:00
2026-11-11 17:59:13 +08:00
2026-11-04 20:02:28 +08:00
2026-11-04 20:02:28 +08:00
2026-09-04 13:09:03 +08:00
2026-11-10 22:51:00 +08:00
2026-11-11 16:37:00 +08:00
2026-09-02 00:48:23 +08:00
2026-11-10 22:51:00 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-11-04 20:02:28 +08:00
2026-08-30 21:38:30 +08:00
2026-11-11 17:59:13 +08:00
2026-09-01 19:40:29 +08:00
2026-09-04 00:39:29 +08:00
2026-09-04 11:27:07 +08:00
2026-11-04 21:00:40 +08:00
2026-11-04 21:00:40 +08:00
2026-11-04 21:00:40 +08:00
2026-11-11 17:59:13 +08:00
2026-09-01 18:28:07 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-08-31 05:09:42 +08:00
2026-08-30 13:42:41 +08:00
2026-08-31 14:34:28 +08:00
2026-08-31 19:12:51 +08:00
2026-08-31 06:51:04 +08:00
2026-11-04 20:02:28 +08:00
2026-09-03 12:16:01 +08:00
2026-09-02 11:49:37 +08:00
2026-09-03 12:16:01 +08:00
2026-09-02 03:41:39 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 19:49:28 +08:00
2026-09-04 00:39:29 +08:00
2026-09-04 03:53:09 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-11-11 17:16:28 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 15:23:32 +08:00
2026-08-31 19:12:51 +08:00
2026-08-30 13:02:17 +08:00
2026-09-03 12:16:01 +08:00
2026-09-04 13:09:03 +08:00
2026-09-04 13:09:03 +08:00
2026-11-04 20:02:28 +08:00
2026-09-03 12:16:01 +08:00
2026-11-10 22:51:00 +08:00
2026-11-11 16:37:00 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 18:12:46 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-11-04 20:02:28 +08:00
2026-09-03 12:16:01 +08:00
2026-11-04 20:02:28 +08:00
2026-09-02 08:13:55 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 04:28:10 +08:00
2026-11-04 21:00:40 +08:00
2026-11-11 17:59:13 +08:00