Instead of showing a retry button on the first failure, silently re-open the inventory stream with exponential backoff (250ms→4s, 6 attempts, staying in the loading spinner). The startup DB-not-ready race clears in well under a second, so the user just sees the spinner briefly and the list appears — no tap needed. Only after the retry budget is exhausted do we surface the manual-retry error. Tests cover auto-recovery, no error flicker during retries, and the give-up path (via fake_async to fast-forward the backoff). |
||
|---|---|---|
| .. | ||
| data | ||
| db | ||
| di | ||
| domain | ||
| i18n | ||
| security | ||
| services | ||
| state | ||
| ui | ||
| app.dart | ||
| bootstrap.dart | ||
| main.dart | ||