launcher: 进设置页不再同步跑串行网络 popen 与逐套字体 sha256(点设置卡≥5s 修复)
- 设置页入口 s_net_sync_from_sys() 改为 toggle 同步(快)+异步 s_net_refresh_kick(); wifi/bt 状态与列表由 run_settings_page 主循环逐步骤 s_net_refresh_pump() 填充 (每步一个带超时 popen、~150ms 一步),draw 用 g_net_* 缓存,数据变化即 need_paint → 入口不再被 wpa_cli/bluetoothctl/hcitool 5 条串行 popen(各 1.2~2.5s 有界超时)拖住。 - 进设置页字体重扫 meow_font_scan_presets(0) 跳过逐套 sha256(gbk/full 套数 MB, 逐套双 sha256 真机耗数秒,入口卡顿主因之一);完整性校验保留给启动/热插拔全量(verify=1)。 - s_net_refresh() 保留同步语义(kick+drain) 供通知中心等调用方;WiFi/BT 子页返回、 网络下拉后改 kick(由主循环承担异步填充)。 - 设置入口加毫秒级分段日志(font rescan / net toggle-sync+kick / page shown)供真机取证。 - 交叉 -Wall -Wextra 0 warning;launcher 宿主测试全 PASS。launcher md5 fbc78c62
This commit is contained in:
1 parent
0294553096
commit
41427fdcb3
6 files changed
+102
-46
No files matched your search
@@ -996,7 +996,7 @@ static void run_menu(struct app apps[MAX_APPS], int napps, int state,
|
||||
unsigned long long fsig = fonts_dir_sig();
|
||||
if (fsig != fonts_sig) {
|
||||
fonts_sig = fsig;
|
||||
meow_font_scan_presets();
|
||||
meow_font_scan_presets(1); /* 目录签名变化:全量扫描(含 sha256 校验) */
|
||||
}
|
||||
}
|
||||
if (was_nocard || state != 0 || napps == 0) {
|
||||
@@ -1801,13 +1801,13 @@ int main(int argc, char **argv)
|
||||
settings_load(); /* M2.11:读系统设置(audio.volume 等),供音量/状态栏使用 */
|
||||
|
||||
/* M2.6:启动扫描一次 TF 卡 MeowOS/fonts/<family>/<weight>/,填充「字体文件」下拉 preset。
|
||||
* 无卡/无字库目录 → 仅默认字体(等价现状)。进设置页时 run_settings_page 会再扫一次。 */
|
||||
meow_font_scan_presets();
|
||||
* 无卡/无字库目录 → 仅默认字体(等价现状)。进设置页时 run_settings_page 会再扫一次(verify=0)。 */
|
||||
meow_font_scan_presets(1); /* 启动全量扫描:含逐套 sha256 完整性校验 */
|
||||
|
||||
if (fontscan_root) {
|
||||
/* M2.6 测试钩子:扫描指定卡根下的 MeowOS/fonts/<family>/<weight>/ 并打印 preset(qemu/宿主可测)。
|
||||
* 用于验证 font.json 解析(含 weight)/三件套/缺件跳过/sha 校验 + preset 动态化逻辑。 */
|
||||
meow_font_scan_presets_root(fontscan_root);
|
||||
meow_font_scan_presets_root(fontscan_root, 1); /* 测试钩子:全量含 sha256 */
|
||||
printf("fonts=%d\n", font_presets_n);
|
||||
for (int i = 0; i < font_presets_n; i++)
|
||||
printf(" %d %s -> %s (fam=%s wt=%s)\n", i, font_preset_labels[i], font_presets[i],
|
||||
|
||||
Reference in new issue
Block a user