feat(wallet): dashboard parity — top bar, welcome banner, pill, inline tx#549
Merged
Merged
Conversation
…ll, inline transactions
Reshape the wallet home screen to match the iOS layout per
WALLET_PARITY.md §3.
Changes:
• Top bar — Spark+Breez (or NWC) brand logo on the left, refresh
+ settings icons on the right. The wallet branding moves up from
the bottom "powered by" footer; the standalone refresh button
that used to live under the balance number is gone.
• Welcome banner — default (nsec-derived) wallets get a tappable
card with a key icon, title "Your default wallet is secured by
your key", and body explaining the nsec-as-backup property. Tap
routes to the recovery-phrase screen so users can also save the
seed locally. Hides once seedBackupAcked flips. Custom wallets
keep the existing amber seed-not-viewed nudge and red backup-
missing warning.
• Lightning address pill — collapsed surface chip with bolt icon
prefix, tap-to-copy. Replaces the bare primary-color text line.
Setup CTA (when no address is registered) renders as the same
pill shape with an outlined accent border.
• Send / Receive — circular 64dp accent-tinted buttons in a single
centered row (was 72dp on primary container). Extracted as
WalletActionButton.
• Recent transactions footer — anchored to the bottom of the
dashboard. "RECENT" header + "View all ^" affordance with the
most-recent transaction visible inline. Tap any of it to expand
to the full transactions screen.
The dashboard preloads recent transactions on connect via a
LaunchedEffect so the inline footer has data without the user
having to visit the transactions screen first.
iOS counterpart: this layout already ships on iOS; brings Android
visually in line.
2 tasks
…et Info expandable
Three iOS-parity additions to the wallet dashboard + settings.
1. Hide the top "← Wallet" app-bar on the Home dashboard. The bottom
nav is the entry point, the dashboard's own logo + refresh +
settings row plays the role of a toolbar, and the iOS app doesn't
carry a redundant title strip either. Sub-pages still render the
app-bar so back-nav stays reachable.
2. Render the NWC node alias to the right of the NWC logo in the
dashboard top bar. The alias is fetched once post-connect via
NIP-47 `get_info` (new request type in `Nip47.kt`), cached on
`NwcRepository.nodeAlias`. NWC drawable also painted in its
brand palette (warm orange + purple accent) so the top-bar mark
matches iOS instead of rendering as a tinted black silhouette.
3. New Wallet Info expandable card in settings for both modes.
Collapsed shows just the brand mark (+ alias on NWC) with a
chevron; tap expands the per-mode detail rows:
• Spark — Wallet ID (identity pubkey, truncated, copy), Network,
SDK version.
• NWC — Service pubkey, Client pubkey, Relay, Encryption,
Lightning address (if set), Supported methods (chips).
Spark identity pubkey is captured from the existing `getInfo()`
call so no extra SDK roundtrip is needed. NWC connection metadata
is exposed via a new `NwcRepository.ConnectionInfo` data class,
updated whenever the connection string is parsed or encryption
is renegotiated.
Hiding the app-bar removed the only thing providing top-edge spacing, so the brand logo + refresh + settings row collided with the system status icons. Reintroduce a clean inset on the Home content's root Column via `statusBarsPadding()`; sub-pages keep their own app-bar, which already supplies the equivalent gap.
…-parity # Conflicts: # app/src/main/kotlin/com/wisp/app/ui/screen/WalletScreen.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third slice of the wallet cross-platform parity work — see
WALLET_PARITY.md §3 (parity doc landing in a forthcoming PR).
Summary
Reshape the wallet home screen to match the iOS layout.
the bottom "powered by" footer; the standalone refresh button that
used to live under the balance number is gone.
card with a key icon, title "Your default wallet is secured by
your key", and body explaining the nsec-as-backup property. Tap
routes to the recovery-phrase screen so users can also save the
seed locally. Hides once `seedBackupAcked` flips. Custom wallets
keep the existing amber seed-not-viewed nudge and red backup-
missing warning.
prefix, tap-to-copy. Replaces the bare primary-color text line.
Setup CTA (when no address is registered) renders as the same pill
shape with an outlined accent border.
single centered row (was 72dp on primary container). Extracted as
`WalletActionButton`.
dashboard. "RECENT" header + "View all ^" affordance with the
most-recent transaction visible inline. Tap any of it to expand
to the full transactions screen.
The dashboard preloads recent transactions on connect via a
`LaunchedEffect` so the inline footer has data without the user
having to visit the transactions screen first.
iOS counterpart
This layout already ships on iOS; brings Android visually in line.
Test plan
bar; the old bottom "Powered by" footer is gone.
!seedBackupAcked: welcome banner shows; taproutes to recovery phrase; banner disappears after acking.
!seedBackupAcked: existing amber nudge shows(NOT the welcome banner).
backupMissing: existing red warning shows.clipboard.
LightningAddressSetup.
reflects it on next Home visit.