Commit 040dd8a
authored
fix: ensure system info is loaded before MainShell builds (#1105)
CallerIdSettingsRepository.create and another provider create: in main_shell.dart
call getLocalSystemInfo() synchronously. If system info is absent (cleared during
session cleanup after FGS failure, or never fetched in this session) the provider
throws StateError and crashes the app.
Add a getSystemInfo(cacheFirst) call to onMainShellRouteGuardNavigation, executed
after the auth check and before navigation resolves. If system info cannot be
loaded — no cache and network unreachable — redirect to the login screen.
This prevents the crash observed on Xiaomi after FGS recovery:
CallerIdSettingsRepository.create → getLocalSystemInfo() → StateError:
"No system info in cache" (main_shell.dart:257)1 parent 89fb6ec commit 040dd8a
2 files changed
Lines changed: 23 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| 31 | + | |
30 | 32 | | |
31 | 33 | | |
32 | 34 | | |
| |||
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
| 45 | + | |
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
| |||
340 | 343 | | |
341 | 344 | | |
342 | 345 | | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
343 | 365 | | |
344 | 366 | | |
345 | 367 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| |||
0 commit comments