Accounts management redesign: full-screen accounts, wallet names, import under Advanced - #594
Accounts management redesign: full-screen accounts, wallet names, import under Advanced#594n13 wants to merge 11 commits into
Conversation
- render icons - fix steps
…ort under advanced
- Accounts popup sheet replaced by a full-screen AccountsScreen pushed from
the right with a back button
- Main wallet renders expanded on top with an Active Wallet badge; other
wallets collapse to a single row showing total balance and account count,
expandable in place; Wallet 1 / Wallet 2 segmentation dropped
- Optional per-wallet names stored in SettingsService (wallet_name_<index>),
editable via a new WalletNameScreen (pencil next to the wallet name) and
offered after importing a wallet; falls back to Wallet {n}
- Import Account moved under the Advanced section of Add Account
- accounts_grouping reworked to produce WalletGroups instead of a flat
segmented list; tests updated
Flexible(flex 1) name next to a Spacer split the free space, leaving the expanded-wallet caret mid-row; group name+pencil in an Expanded instead.
groupWallets moves the wallet containing the active account to the front (numbering stays stable); the screen no longer auto-expands the active wallet since it now renders as the top section. Account and multisig rows swap the pencil icon button for a plain side caret that opens the menu; row tap still switches the account and dismisses.
- New theme colors errorLight, errorDeep, surfaceHero replace hardcoded hex values in the keystone hero and warning cards; alpha derivation unified on useOpacity (no withValues in widgets) - UnderlinedTextLink folded into QuantusButton as ButtonVariant.underline - invalidateAccountProviders() replaces the repeated accountsProvider + activeAccountProvider invalidation pairs - Scanner overlay/brackets use theme colors; drop redundant width: null - AGENTS.md: UI conventions (theme colors, useOpacity, theme text styles, extend existing components)
| } | ||
|
|
||
| if (accountsAsync.hasError || multisigAsync.hasError) { | ||
| return Center( |
There was a problem hiding this comment.
This is violating DRY principle, we shouldn't repeat this piece. Only the text content changing.
| const SizedBox(height: 8), | ||
| Text( | ||
| _walletBalanceText(l10n, wallet), | ||
| style: context.themeText.smallParagraph!.copyWith(fontSize: 14, color: colors.textTertiary, height: 1), |
There was a problem hiding this comment.
I want to nit about small paragraph already fontSize 14 being overridden with value 14 again. Sry about this, but just ridiculous to override fontSize with same value. Might as well not use the textStyle token.
| const SizedBox(width: 8), | ||
| Text( | ||
| l10n.accountsScreenAccountCount(wallet.accountCount), | ||
| style: context.themeText.smallParagraph?.copyWith(fontSize: 14, color: colors.textSubtle, height: 1), |
| ), | ||
| child: Text( | ||
| label.toUpperCase(), | ||
| style: context.themeText.detail?.copyWith( |
There was a problem hiding this comment.
We have tiny for font size 11, but anyway, like I mentioned in the other PR, we need to discuss about theme style so we don't keep pilling noise. Because right now already not like the original goal when we add this text theme token.
There was a problem hiding this comment.
I think it's basically from the design system
Our current design system is - we have a font type, then various attributes on the fonts
We don't have a system with a few specific types
Could ask Sejal about this
dewabisma
left a comment
There was a problem hiding this comment.
Few nits.
Overall looking good.
We really need to discuss about the text theme soon. So, we don't keep dirtying our codebase with the misuse.
…ent_redesign # Conflicts: # mobile-app/lib/v2/screens/accounts/account_menu_screen.dart

Implements the updated account management design (Figma node 4184-16283), built on top of the keystone design branch.
Changes
AccountsScreen) that slides in from the right with a back button. All add/import/disconnect flows still pop back to it by route name.ACTIVE WALLETbadge. Additional wallets (software and keystone) collapse into a single row showing the wallet's total balance and account count, expanding in place to reveal accounts and the encrypted account. TheWallet 1 / Wallet 2segmentation headers are gone.SettingsService(wallet_name_<index>, cleaned up onremoveWallet). NewWalletNameScreen(mirrors the account naming screen) opens from the pencil next to a wallet name; unnamed wallets fall back to "Wallet {n}". The wallet picker in settings also shows custom names.Notes
accounts_grouping.dartreworked from a flat segmented item list toWalletGroups; unit tests updated and extended (softwareWalletNumberunchanged for the disconnect-wallet copy).Testing
melos run analyze(--fatal-infos) clean across packages