Skip to content

chore(ui): tear out the v1 UI behind the newUI flag - #1290

Open
bmc08gt wants to merge 1 commit into
code/cashfrom
chore/tear-out-v1-ui
Open

chore(ui): tear out the v1 UI behind the newUI flag#1290
bmc08gt wants to merge 1 commit into
code/cashfrom
chore/tear-out-v1-ui

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #1286, which flipped FeatureFlag.NewUi to launched. With the flag
permanently on, every isNewUi branch had exactly one live side — this removes the
flag and collapses those branches, then deletes the v1 surfaces that are stranded
once the branch is gone.

Removed

  • FeatureFlag.NewUi and FeatureFlag.NavBar (the v1 nav-bar config flag),
    plus the Labs "Nav Bar" settings screen that edited it.
  • The v1 scanner chromeDecorView, ScannerDecorItem, ScannerNavigationBar,
    LongPressDraggable, NavBarConfig, GiveButtonLabel. The v2 nav bar is a single
    persistent overlay hoisted to the app root; none of this had a caller left.
  • apps/flipcash/features/home — the v1 home host. Dropped from settings.gradle.kts.
  • The v1 balance surface (BalanceScreen, BalanceScreenContent, CashReservesRow)
    and the v1 currency-info sections (TokenBalance, TokenDetails), superseded by the
    wallet card deck and CurrencyInfoContentV2.
  • CurrencyCreatorUpsellCard — the creator promo is a wallet action tile now.

Net: 92 files, +630 / −3766.

UI tests

The Maestro suite and the macrobenchmark still drove v1 affordances — a
"Tips"/"Discover"/"Cash" tab row, a menu_button, a swipe-down sheet dismissal — so
they are retargeted to the v2 tab model rather than left to rot:

  • NavigationBar tabs are tagged nav_scanner / nav_wallet / nav_chats /
    nav_tipcard, and helpers/close_open_sheet.yaml unwinds to the scanner tab
    (tabs are replaced on one root back stack, so Back never unwinds between them).
  • SwapStep.Entry is explicitly tagged swap_screen. buy.yaml / sell.yaml already
    anchored on that id, but nothing ever emitted it — the derived id is entry_screen.
  • CurrencyInfoExpansion carries the token_info_screen anchor too: in v2 a wallet card
    expands as an overlay rather than pushing AppRoute.Token.Info, so the flows would
    otherwise lose their anchor on the most common path into currency info.
  • The chats list is tagged chat_list.
  • buy.yaml / sell.yaml follow v2 swap semantics: there is no "Sell" (liquidating is a
    Convert into Dollars), "Buy" is "Get" and is only offered on a currency you do not
    hold, and the funding currency is picked inline rather than as a pushed step.
  • Give flows enter through Wallet → currency → Give, and cancelling a bill returns to
    currency info, not the scanner.
  • BaselineProfileGenerator journeys switch tabs by resource id instead of tapping v1
    labels; sendChatJourney (which entered an unbuilt module via a "Send" tab) becomes a
    chats-tab journey.

`FeatureFlag.NewUi` launched, so every `isNewUi` branch had exactly one live
side. This removes the flag and collapses those branches, then deletes the v1
surfaces that are stranded once the branch is gone.

Removed
- `FeatureFlag.NewUi` and `FeatureFlag.NavBar` (the v1 nav-bar config flag),
  plus the Labs "Nav Bar" settings screen that edited it.
- The v1 scanner chrome: `DecorView`, `ScannerDecorItem`,
  `ScannerNavigationBar`, `LongPressDraggable`, `NavBarConfig`,
  `GiveButtonLabel`.
- `apps/flipcash/features/home` — the v1 home host, unreferenced once the nav
  bar is hoisted to the app root. Dropped from `settings.gradle.kts`.
- The v1 balance surface (`BalanceScreen`, `BalanceScreenContent`,
  `CashReservesRow`) and the v1 currency-info sections (`TokenBalance`,
  `TokenDetails`), superseded by the wallet deck and `CurrencyInfoContentV2`.
- `CurrencyCreatorUpsellCard` — the creator promo lives on the wallet now.

UI tests
The Maestro suite still drove v1 affordances (a "Tips"/"Discover"/"Cash" tab
row, a `menu_button`, a swipe-down sheet dismissal), so it is retargeted to the
v2 tab model rather than left to fail:
- `NavigationBar` tabs are tagged `nav_scanner` / `nav_wallet` / `nav_chats` /
  `nav_tipcard`; `helpers/close_open_sheet.yaml` unwinds to the scanner tab.
- `SwapStep.Entry` is explicitly tagged `swap_screen` (the derived id would be
  `entry_screen`); `buy.yaml` / `sell.yaml` already anchored on `swap_screen`.
- `CurrencyInfoExpansion` carries the `token_info_screen` anchor too, since in
  v2 a wallet card expands as an overlay instead of pushing the screen.
- The chats list is tagged `chat_list`.
- `buy.yaml`/`sell.yaml` follow v2 swap semantics ("Get" on a currency you do
  not hold, "Convert" in place of "Sell"), give flows enter via
  Wallet → currency → Give, and `BaselineProfileGenerator` journeys switch tabs
  instead of tapping v1 labels.
@github-actions github-actions Bot added type: chore Maintenance, config, CI/CD area: payments Payments, transfers, intents, billing area: scanner QR/Kikcode scanning, camera area: build-system Gradle, convention plugins, build-logic area: tokens Token accounts, balances, token info area: deeplinks Deep link handling, URL routing, and link parsing area: session area: onboarding and removed type: chore Maintenance, config, CI/CD labels Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: build-system Gradle, convention plugins, build-logic area: deeplinks Deep link handling, URL routing, and link parsing area: onboarding area: payments Payments, transfers, intents, billing area: scanner QR/Kikcode scanning, camera area: session area: tokens Token accounts, balances, token info

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant