WalletOverlayController
UI-navigation state holder for the wallet's full-screen overlays.
Plain class (NOT Hilt): it holds nothing but transient UI-navigation state, which Compose owns. WalletOverlayHost remember {}s one and provides it over its content via LocalWalletOverlay; the pill / PanelBar read the ambient instance and call open / close.
The current overlay is plain Compose state, so any reader that touches active recomposes when it changes.
Properties
App version shown in the Settings ABOUT section. The SDK never fabricates this. WalletOverlayHost seeds it from its own appVersion; a content-level host that owns the value (e.g. PanelBar) can set it here so the host need not thread the param. Null hides the ABOUT section.
The chosen appearance theme id, as observable Compose state.
Sigil-pill twin of walletSheetReopen — bumped when Settings opened from the SIGIL gear closes.
One-shot "re-open the WALLET pill's sheet" counter. Bumped by close when the closed overlay originated from the wallet pill (Send / Receive, or Settings opened from the wallet gear). The wallet pill keys a LaunchedEffect on it so Back from an overlay lands back on the sheet the user came from — not on the bare host content. Starts at 0 (no-op).
Functions
Close the active overlay and re-open the ORIGINATING pill's sheet (Send / Receive ⇒ wallet; Settings ⇒ its WalletOverlay.Settings.launchSource) by bumping that pill's reopen counter. This restores the old back-to-sheet stack: Back from any overlay returns to the sheet that launched it rather than dropping to bare content. Use dismissForLock for the no-reopen path.
Close the active overlay WITHOUT re-opening any sheet. Used when a session lock (#251) tears the overlay down: the lock cover must be the only surface, and the sheet must NOT spring back on unlock. Deliberately does not bump a reopen counter.