Skip to content

feat(nav): scan wears the tip card, You wears a people circle - #1462

Merged
bmc08gt merged 4 commits into
code/cashfrom
feat/nav-bar-tipcard-glyphs
Sep 15, 2026
Merged

bmc08gt merged 4 commits into
code/cashfrom
feat/nav-bar-tipcard-glyphs

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Sep 14, 2026 •

Copy link
Copy Markdown
Collaborator

The nav bar had the scanner tab drawing a viewfinder and the You tab drawing the tip card, so the card stood for the account rather than for the thing the scanner points at. Node 10000:111297 swaps them:

  • Scanner now wears the tip card glyph (ic_nav_tipcard / _selected), because scanning one is what that tab is for.
  • You falls back to a people circle when the user has no photo. The avatar branch is untouched — a photo still wins.

ic_nav_scan and ic_nav_scan_selected lose their last caller and are deleted. The new-user tutorial's "Scan a tip card" card, the other place the old scan outline was used, moves to ic_nav_tipcard so the card and the tab it points at match.

Where the selected people circle comes from

The design file draws the You tab only as an outline, so there is no filled twin to export. Icons.Filled.AccountCircle from material-icons-core is the same glyph solid, and it lines up: its disc is r 10 at 24×24, against ic_people_circle's 9.25 centreline plus a 1.5 stroke — the same 10.0 outer edge. Only the head moves, 0.5 smaller. Knocking the person out of a solid body is the treatment ic_nav_wallet_selected and ic_nav_tipcard_selected already use, so it sits with the rest of the set rather than against it.

That makes the icon map return a Painter instead of a drawable id, since one of the four now comes from an ImageVector.

Test ids are unchanged

NavBarButton.testTag still yields nav_scanner, nav_wallet, nav_chats, nav_tipcard. The Maestro flows key off those, not off drawable names, so none of them move.

Screenshots

NavigationBarAvatarScreenshotTest gains a fourth bar — no photo, You tab selected — which was the one state neither the photo bars nor the unselected fallback showed. NavigationBarNoAvatarSelectedPreview covers the same state in the IDE.

Tab order

Chats moves from third to second, so the bar reads scanner, chats, wallet, you. NavBarButton.tabs is the only place the order is declared — NavigationBar reads it for the row, for the selected index, and for the pill offset — so the list is the whole change. The testTag values are derived per button rather than per position, so the Maestro selectors still match.

The scanner tab drew a viewfinder and the You tab drew the tip card, which
had the card standing for the account rather than for the thing the scanner
points at. Node 10000:111297 swaps them: the scanner gets the tip card
glyph, and the You tab falls back to a people circle when the user has no
photo. The avatar branch is untouched — a photo still wins.

The design file draws the You tab only as an outline, so the selected weight
comes from Material instead. Icons.Filled.AccountCircle is the same glyph
solid, and its disc lands on ic_people_circle's outer edge (r 10 at 24x24,
against the outline's 9.25 centreline plus a 1.5 stroke); only the head
moves, 0.5 smaller. Knocking the person out of a solid body is what
ic_nav_wallet_selected and ic_nav_tipcard_selected already do.

That makes the icon map return a Painter rather than a drawable id, since
one of the four now comes from an ImageVector. ic_nav_scan and
ic_nav_scan_selected lose their last caller and go with it.
The capture had three bars: the photo slot in both selection states, plus
the no-photo glyph unselected. The state it was missing is the one the
design file never drew — the people circle selected — which is now the only
glyph in the bar coming from Material rather than from the drawables. A
fourth bar puts it next to the outline it replaces, so the two can be
compared in one image.
@bmc08gt bmc08gt self-assigned this Sep 14, 2026
@github-actions github-actions Bot added the type: feature New functionality label Sep 14, 2026
Chats sits beside the scanner rather than after the wallet. Scanning a tip card
now lands in the chat, so the two tabs that make up the messaging path are
adjacent instead of separated by the wallet.

NavBarButton.tabs is the only place bar order is expressed; NavigationBar reads
its indices from that list, so nothing else moves.
@bmc08gt
bmc08gt merged commit 8d217a2 into code/cash Sep 15, 2026
3 checks passed
@bmc08gt
bmc08gt deleted the feat/nav-bar-tipcard-glyphs branch September 23, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant