feat(tokens): revamped v2 currency-info layout - #1247
Open
bmc08gt wants to merge 3 commits into
Open
Conversation
Ports the iOS currency-info revamp (code-ios-app#585) to Android's new UI (gated on FeatureFlag.NewUi; legacy screen untouched). Hero card, action tiles (Give/Convert/Withdraw, single Get when not held, USDF = Convert/Withdraw), per-token Recent, Market Cap + chart, About, created footer, and a scroll-revealed title pill. The app bar is an overlay (chat-style): content fills behind it as the haze source, inset by the measured bar height, with a bg->transparent scrim; back/pill/share are frosted liquid glass (via the optional hazeState on the app-bar chrome). Adds a bounded per-token recent-activity query (MessageDao/MessageDataSource/ActivityFeedCoordinator) surfaced as TokenInfoViewModel.State.transactions. All sizing via grid/type/shape/color tokens.
bmc08gt
force-pushed
the
feat/currency-info-revamp
branch
from
August 17, 2026 11:51
72abc44 to
2c8cd3c
Compare
Replaces the onSizeChanged/measured overlay with a SubcomposeLayout (OverlayTopBarScaffold) that measures the app bar BEFORE the content in the same layout pass, so the hero card gets the correct top inset on the very first frame instead of settling on frame 2. Mirrors the chat screen's ChatInputScaffold (top-bar only). The scrim height is kept off the content inset so it can't shift the content on a later frame.
bmc08gt
force-pushed
the
feat/currency-info-revamp
branch
from
August 17, 2026 12:57
b0fbdd7 to
3d36767
Compare
…pp bar The scrim spanned the full app-bar height, washing content out across the whole bar. Scope it to the status-bar strip plus half the app-bar row, so the hero card dims as it scrolls up behind the frosted chrome (matching iOS) and stays vibrant below the bar's midline. The app bar is measured on its own (status bar excluded) so scrim = statusBar + appBar/2. The scrim never grows the content inset (the scaffold measures the full bar), so there's no jump.
bmc08gt
force-pushed
the
feat/currency-info-revamp
branch
from
August 17, 2026 13:01
3d36767 to
60400d3
Compare
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.
Summary
Ports the iOS currency-info revamp (code-ios-app#585) to Android's new UI. Gated on
FeatureFlag.NewUi; legacy screen untouched. PR 1 of the two-part port (layout; the Apple-Wallet card-expand animation is the follow-up).Stacked on #1249 (the reusable frosted app-bar chrome), which it consumes.
New
CurrencyInfoContentV2(LazyColumn), reusing existing components:TokenCard(balance + appreciation when held, identity only when not)ActivityFeedRow, held only) · Market Cap + chart (MarketCapSection, non-USDF) · About (ExpandableText+ social chips) · created footerChrome / scroll: the app bar is an overlay (chat-style) — content fills behind it as the haze source, inset by the measured bar height, with a
bg→transparentscrim for a soft top fade; back / pill / share are frosted liquid glass over the scrolling content (via #1249's optionalhazeState). Matches the iOS reference.Actions reuse existing pushes (Give sheet, Swap-buy, Withdrawal) — no buy-flow plumbing needed. Data: adds a bounded per-token recent-activity query (
MessageDao/MessageDataSource/ActivityFeedCoordinator) →TokenInfoViewModel.State.transactions(read off IO). All sizing via grid/type/shape/color tokens.Verified on device
Held / USDF / not-held all correct; frosted chrome + card scrolling under the glass matches the reference; USDF drops Give/chart/created/share.