Browse Source
会议模板不再挡启动与登录 _performParallelTasks 名字叫并行、实际完全串行(网络检查 → 版本检查 → token 校验,后者内部又是 getLoginToken → getAppConfig → _initMeetingTemplate), 冷启动要串等 5 次网络往返,而 _initializeApp 要等这一整串跑完才允许导航。 其中 ②③ 之间的串行是刻意的(强更弹窗必须先出、把 splash 卡住,见 CLAUDE.md), 不能改回并行;但 _initMeetingTemplate 排在最后、**启动时没有任何地方要用它** ——模板只落 sqlite,由会议模板页 getMeetingTemplateList 消费。改成 unawaited, 模板照常拉取更新,启动不再等它。 登录流程里同一句挡在 Get.offAllNamed(Routes.home) 前面,一并改。 设备页先渲染再补登记 loadDevices 里 `await BesDeviceAuth.verifyConnected()` 串在 getdevices 前面,首次进入白名单没命中时会真的去打 user_binddevice(带 10s 超时), 整个页面干等两次网络往返——就是「点设备页半天没响应」。 - isLoading 改成只在本地无数据时才遮罩:onInit 里 _refreshFromUser() 本来 就已经拿本地列表渲染过一次了,再盖一层纯属让用户对着转圈等。 - verifyConnected 挪到列表渲染之后、改成后台跑。它登记成功时会直接把设备 塞进 User.instance.devices,回来 _refreshFromUser() 刷一次即可, 不必再拉一遍 getdevices。 ⚠️ 代价:首次连接的新耳机会晚一两秒才出现在列表里(以前是干等到它出现才 显示整个页面)。这是「页面立刻可见」的必然结果。 ⚠️ 两处的实际收益都要在 release 包上量,debug 的 JIT 会把差异淹掉。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>main
3 changed files with 26 additions and 8 deletions
Loading…
Reference in new issue