features/wallet/wallet_display_sync_status
library
Enums
-
DisplayStatusEdge
-
Which dwell (if any) a raw transition needs before the display follows —
pure, so the notifier's timer plumbing and the truth-table tests share one
rule that cannot drift.
Constants
-
walletStallPostureDwell
→ const Duration
-
How long a Stalled-posture EDGE must hold before the display adopts it
(#399 item 3). FR-21's sub-second dial verdicts made the raw status flap
Stalled↔Scanning on every scheduled retry of a dead link: the badge
flickered, the liveRegion re-announced the pair each cycle (screen-reader
chatter), and the send screen's pinned queue button inserted/removed under
the user's thumb. The dwell must comfortably outlast one whole doomed retry
pass (dial verdict ≲1s + status churn) so the blip is absorbed, while
staying short enough that a REAL posture change still reads prompt.
-
walletTryNowLiveWindow
→ const Duration
-
How long the display mirrors the raw status LIVE after a "Try now" tap
(#399 item 4; review M2). The tap's feedback must be the truth in
motion — behind the dwell, a successful restart would sit under a held
"Sync paused" for a full walletStallPostureDwell (a dead-feeling tap,
the class). The window spans one whole doomed restart cycle (dial
verdict ≲1s + status churn) so a FAILED Try now visibly returns to the
stall too — honest in both directions — then the flap-absorbing dwell
resumes.
Properties
-
walletDisplaySyncStatusProvider
→ NotifierProvider<WalletDisplaySyncStatusNotifier, AsyncValue<SyncStatus>>
-
The POSTURE-STABLE view of syncStatusProvider for display surfaces (the
badge, the sync sheet, the send screen's queue affordance — all three watch
THIS so they can never flicker apart). Controllers and logic listeners
(rescan tip-edge, synced-tip latch, refresh edges) stay on the RAW provider:
the debounce is a presentation policy, never a truth filter. The ONE named
exception is the wallet tab's tip follow (
walletTipFollowProvider): it
decides whether the sync BAR shows and whether the coin spins as the bar
hides, so it must read what the bar renders (S12; reading raw made a
flaky link flicker). Do not move it back to raw.
final
Functions
-
nextDisplaySyncStatus(SyncStatus shown, SyncStatus raw)
→ DisplayStatusEdge
-
The #399 posture-dwell truth table.
shown is the currently displayed
status, raw the new raw emission. Total over every pair; never throws.