Skip to content

fix: port design-review fixes from ios#907

Open
jvsena42 wants to merge 17 commits intomasterfrom
fix/design-review
Open

fix: port design-review fixes from ios#907
jvsena42 wants to merge 17 commits intomasterfrom
fix/design-review

Conversation

@jvsena42
Copy link
Copy Markdown
Member

@jvsena42 jvsena42 commented Apr 23, 2026

This PR ports four design-review fixes from bitkit-ios fix/design-review to keep Android parity with iOS:

  1. Aligns the active tab indicator color on the Shop Discover and Receive QR screens
  2. Enlarges the notifications bell figure in the Background Payments intro sheet
  3. Restyles the Show/Hide Details button on Send confirmation with a dark solid background and reworked spacing
  4. Increases and dynamically adjusts the number of recent activity items on the Home screen

Description

  • Tab active color: Shop Discover no longer uses the yellow accent for the selected tab indicator, and Receive QR stops tinting each tab differently (Brand blue for Savings, White for Unified, Purple for Spending). All three tabs now share a single white active color, matching iOS textPrimary.
  • Bell figure: Regenerated bell drawables across density buckets from the new iOS 768×768 source PNG so the bell illustration fills more of the sheet area. Stored as PNG during the port; can be re-encoded to WebP later if APK size becomes a concern.
  • Show details button: The Send confirmation toggle now uses a solid #151515 background (darker than the surrounding cards) instead of the translucent White06. The flex spacer moved to above the button and a fixed 62dp gap sits between the button and the swipe-to-confirm control — matching iOS Spacer(minLength: 16) + .padding(.bottom, 62).
  • Home activity count: SIZE_LATEST bumped from 3 to 4 in ActivityListViewModel, and HomeScreen replaces its fixed small/large activity counts with a slot-budget calculation: slotCapacity = isSmallScreen ? 3 : 4, minus 1 per non-item slot (transfer banner, widgets onboarding hint). With nothing else showing the home list fits 4 items (3 on small screens); when the banner or widgets hint is visible the count shrinks so the overall rhythm stays within the cap.

Note: iOS also added a pressed-state gradient swap to PrimaryButtonView so custom-background buttons still show press feedback. Android's PrimaryButton already has an alphaFeedback modifier providing equivalent press feedback, so this change is not mirrored on Android.

Preview

QA Notes

  1. Shop Discover tab indicator
    • Open Drawer → Shop → Discover
    • Verify the selected tab underline is white, not yellow
    • Verify the tab has the same style from the others of the app
    • Verify the Background color is black
shop.webm
  1. Receive QR sheet
    • Open Receive → scan states with and without a Lightning invoice
    • Verify all visible tabs (Savings, Unified when available, Spending) use a white active color — no per-tab blue/purple
    • Verify the "Show Details" button is now tertiary
    • Verify the "Show QR" button has a QR symbol
qr-code.webm
  1. Background Payments intro
    • Open Settings → Background Payments intro sheet
    • Verify the bell illustration fills noticeably more of the sheet than before and matches the iOS proportions
    • Verify the "Later" and "Enable" buttons
    • Now the Accent color is purple
Screen_recording_20260424_103644.webm
  1. Send confirmation Show details button
    • Start a Send flow, reach the confirmation screen
    • Verify the Show details / Hide details button has a dark solid background (~#151515), distinct from the surrounding cards
    • Verify pressing the button dims it (alpha feedback)
    • Verify the vertical gap between the button and the swipe-to-confirm control is fixed at ~62dp
Screen_recording_20260424_104619.webm
  1. Home activity count
    • Open Home with no transfer banner and widgets onboarding hint dismissed
      • Verify up to 4 recent activities on a large device (e.g. Pixel 6) and 3 on a small device (height < 700dp)
    • Trigger a transfer state so the banner is visible
      • Verify the activity list shrinks to 3 (2 on small devices)
    • With the banner visible AND widgets onboarding hint shown
      • Verify the activity list shrinks to 2 (1 on small devices)
small-device.webm
medium.device.webm
  1. Build & lint
    • ./gradlew compileDevDebugKotlin clean
    • ./gradlew testDevDebugUnitTest clean
    • ./gradlew detekt clean

@claude

This comment has been minimized.

@jvsena42 jvsena42 marked this pull request as draft April 23, 2026 15:00
@jvsena42 jvsena42 self-assigned this Apr 23, 2026
@jvsena42 jvsena42 marked this pull request as ready for review April 24, 2026 13:54
currentTabIndex = tabs.indexOf(selectedTab),
selectedColor = Colors.White,
onTabChange = { selectedTab = it },
modifier = Modifier.padding(horizontal = 16.dp),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CLAUDE.md violation: trailing comma on modifier = at a call site.

The project rule (CLAUDE.md) states:

NEVER add a trailing comma to modifier = ... at call sites

CustomTabRowWithSpacing(
tabs = tabs,
currentTabIndex = tabs.indexOf(selectedTab),
selectedColor = Colors.White,
onTabChange = { selectedTab = it },
modifier = Modifier.padding(horizontal = 16.dp),
)

Suggested change
modifier = Modifier.padding(horizontal = 16.dp),
CustomTabRowWithSpacing(
tabs = tabs,
currentTabIndex = tabs.indexOf(selectedTab),
selectedColor = Colors.White,
onTabChange = { selectedTab = it },
modifier = Modifier.padding(horizontal = 16.dp)
)

Comment thread app/src/main/java/to/bitkit/ui/screens/wallets/send/SendConfirmScreen.kt Outdated
@claude

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant