Repository navigation
fix: usdt confirm details fit above swipe to pay - #1637
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
QA on an Android 16 emulator (1080×2400, 420 dpi), regtest debug build of this branch with a local-only hook that supplies the quote, contact and invoice note:
|
[Low impact] The change is limited to the expanded USDT send confirmation layout. The PR appears safe to merge, with a non-blocking gap in the journey’s overflow check. Findings
SummaryMoves the expanded USDT fee hint into the scrolling details while keeping Swipe To Pay outside that area.
Reviews (1) · Last reviewed commit: "fix: fit usdt confirm details above a pi..." · Reviewed by Greptile |
Regtest APKDownload bitkit-dev-debug universal APK (expires in 30 days). |
|
Pushed c6068a1: |
jvsena42
left a comment
There was a problem hiding this comment.
Code scan at c6068a1: no issues found.
- Layout: the fee note sits after a flexible spacer inside the min-height scroll column. When the details fit, it sits at the bottom; when they overflow, it follows Hide Details. Swipe to pay stays pinned outside the scroll.
- Show/Hide: each toggle scrolls back to the top, so the amount header is visible.
- Reachability: amount, Pay from, Network, Payment, Fee, Address, Contact and Note all stay reachable by scrolling. Nothing is clipped.
- Parity: same structure, journey text and changelog sentence as synonymdev/bitkit-ios#1062.
- Journeys:
usdt-send-review-and-details.xmlandpaykit-quoted-usdt.xmlupdated. The new Paykit step covers Greptile's resolved thread.
Device gate (partial): c6068a1 — not run yet. Pending: a Paykit USDT request with a contact and a wrapped note → Show Details → scroll and Hide Details, with no overlap and Swipe pinned. Then a plain send on a short screen with large text (iPhone SE with the largest Dynamic Type on iOS).
Device results will follow in a separate review.
jvsena42
left a comment
There was a problem hiding this comment.
Device gate (partial): c6068a1 — not run. The USDT fixture went down (Docker stopped on a full disk) before this PR's turn on the Android lane, and the pass is paused. Pending:
- Show Details overflow, with Swipe pinned and the header visible after each toggle;
- font scale 1.3 on a short display;
usdt-send-review-and-details.xmlandpaykit-quoted-usdt.xml.
The iOS twin's layout checks passed on synonymdev/bitkit-ios#1062.
coreyphillips
left a comment
There was a problem hiding this comment.
Two independent reviews.
needs changing before merge
- Paykit USDT review still draws Swipe To Pay under the navigation bar (app/src/main/java/to/bitkit/ui/screens/wallets/usdt/PaykitUsdtReview.kt:92). On the Paykit request route this PR targets, Swipe To Pay still sits under the navigation bar. That fails the issue's later requirement (stay pinned and clear of the navigation bar) and the new
paykit-quoted-usdt.xmlstep that asserts it. The route isSendSheetSendRoute.UsdtReview→PaykitUsdtReview→UsdtPaymentContent→UsdtConfirmation→SwipeToConfirm. None of these applies a bottom inset: -PaykitUsdtReview.kt:92is onlyModifier.sheetHeight().background(Colors.Gray7). -SheetHostis aBottomSheetScaffoldwith no inset, andSheetHeight.kt:23says the bottom safe area belongs in the sheet content. - The app is edge to edge (targetSdk 36,EdgeToEdge.kt). The direct USDT host does pad it, atUsdtWalletScreen.kt:234(navigationBarsPadding().imePadding().padding(bottom = 16.dp)). So doesSendConfirmScreen.kt:262. The Out of Scope note credits #1572, but that merge (4ec9966) only touchedForgotPinSheetand the unavailable state ofSubscriptionSheet. The 3.0.1 screenshot in #1628 is this route, opened over Subscriptions, and it shows the swipe under the gesture handle. The PR's after screenshots don't show this route. They sit over the USDT wallet screen with a 16dp gap above the handle, which matches the paddedUsdtWalletScreenhost. OnlyPaykitUsdtReviewpasses a contact and a note, so those shots came from the test hook running in the padded host. I confirmed this by tracing the code and git history. I did not run it on a device. Suggested fix: add.navigationBarsPadding()and the same 16dp bottom padding to the Column atPaykitUsdtReview.kt:92, matching the direct host.
worth doing, does not block
- New Paykit journey step needs a USDT quote the journey environment lacks (journeys/paykit-quoted-usdt.xml:21). The new step in
paykit-quoted-usdt.xmlhas to reach a successful USDT quote on a Paykit request. That conflicts with the journey's own description, which says funded Arbitrum review is a manual test in docs/usdt-qa.md and that a Bitcoin regtest balance does not fund USDT. The Capabilities table injourneys/README.mdlists controlled USDT quotes as absent from the standard environment and says to report such steps as blocked. The step doesn't name the local USDT fixture it needs, so a runner without it only reaches a quote failure.docs/usdt-qa.md(Paykit quoted reviews and history, line 109) already has the matching check: open an unpaid USDT request, continue to review, and verify Contact, address and invoice note in the details. Either move the overlap check there, or name the fixture in the step or the description. The iOS twin merged with identical prose, so any change has to land in both repos. - Expanded-details test still expects the fee hint to stay visible (app/src/main/java/to/bitkit/ui/screens/wallets/usdt/UsdtSendContent.kt:583). Running
bridgeAmountsAndNetworksAreInExpandedDetailscan now fail at the fee-note assertion inUsdtPaymentContentTest.kt:156. Its 360 by 600 dp fixture scrolls only toPolygon, leaving the relocated hint below the viewport. The assertion needs its ownperformScrollTo(). Device execution was unavailable, so I could not confirm the failure.
nits
- Changelog fragment reads circularly (changelog.d/next/1628.fixed.md:1). "The USDT payment details now fit the longest set of details" describes the details in terms of themselves. A user-facing sentence would name what changed. For example: "On the expanded USDT payment review, the fee note no longer crowds Hide Details, and long details scroll above a pinned Swipe To Pay." The iOS fragment has the same text, so keep the two in step.
|
@coreyphillips all four are in 3bfde44.
Right, #1572 never covered this route.
The step now starts "Using the local USDT fixture for quotes", which the Capabilities table lists. The iOS text is updated to match in synonymdev/bitkit-ios#1082.
It now reads "On the expanded USDT payment review, the fee note no longer crowds Hide Details, and long details scroll above Swipe To Pay, which stays clear of the navigation bar." The iOS fragment, without the navigation bar part, is in synonymdev/bitkit-ios#1082. |
|
Pushed fc46b47: the USDT-only contact's Amount step in |
coreyphillips
left a comment
There was a problem hiding this comment.
Rechecked after 2 new commits (3bfde44, fc46b47). Nothing blocking remains.
addressed
- Paykit USDT review still draws Swipe To Pay under the navigation bar (app/src/main/java/to/bitkit/ui/screens/wallets/usdt/PaykitUsdtReview.kt:92). Fixed:
PaykitUsdtReview.kt:93-95now chains.navigationBarsPadding().padding(bottom = 16.dp)aftersheetHeight(). That matches the direct host atUsdtWalletScreen.kt:233-235and the sibling SendSheet screens such asSendConfirmScreen.kt:262. I checked the inset can't be applied twice:SheetHost(aBottomSheetScaffold) and theSendSheetwrapper (sheetHeight()plusimePadding()only) apply no navigation-bar inset. I confirmed this from the code, not on a device. - New Paykit journey step needs a USDT quote the journey environment lacks (journeys/paykit-quoted-usdt.xml:21). Fixed:
paykit-quoted-usdt.xml:21now opens with "Using the local USDT fixture for quotes". That is the setup named in the Capabilities row atjourneys/README.md:127, which tells a runner without it to report the step as blocked. The iOS follow-up, bitkit-ios#1082, carries the same text: its diff shows the same post-image blob, c27e2b767. - Changelog fragment reads circularly (changelog.d/next/1628.fixed.md:1). Fixed:
changelog.d/next/1628.fixed.mdnow says the fee note no longer crowds Hide Details, and that long details scroll above a Swipe To Pay kept clear of the navigation bar. That is one user-facing sentence naming what changed. The iOS fragment in #1082 matches, minus the navigation-bar clause. - Expanded-details test still expects the fee hint to stay visible (app/src/main/java/to/bitkit/ui/screens/wallets/usdt/UsdtSendContent.kt:583). Fixed:
UsdtPaymentContentTest.kt:156now callsperformScrollTo()on the fee note beforeassertIsDisplayed(). The note sits inside theverticalScrollcolumn atUsdtSendContent.kt:581-584, so the scroll brings it into the viewport. The laterperformScrollTo()onUsdtReviewDetailsat line 159 still reaches the toggle. I read this but could not run it; instrumented tests need a device and the build needs GitHub Packages credentials.
Closes #1628
Twin: synonymdev/bitkit-ios#1062
This PR makes the expanded USDT confirm fit the longest set of details (contact, address and invoice note on a Paykit request): the fee hint now scrolls with the details under Hide Details, and Swipe To Pay stays pinned.
Description
usdt-send-review-and-details.xml, and a crowded-details step topaykit-quoted-usdt.xmlthat uses the local USDT fixture for quotes.Out of Scope
UsdtSendContent.ktcollapsed confirm, Amount and submitted states: unchanged.Design
Bitkit - Refactor v63 › Send (USDT) › Confirm Details USDT. The frame shows a direct send without the Contact and Invoice Note rows; this PR keeps its order (details, Hide Details, fee hint, Swipe To Pay) and makes it scroll when a Paykit request adds those rows.
Preview
Before, 3.0.1 (contact and address masked):
After, regtest with a local test hook supplying the quote, contact and invoice note, shown in the USDT wallet's send sheet (the Paykit request review shares this layout and, since 3bfde44, the same bottom padding): details open, then scrolled to the fee hint:
a1637-details-2x.mp4
After, a plain send whose details fit, next to the Figma frame: the hint stays at the bottom and a gentle drag moves nothing:
QA Notes
Journeys
usdt-send-review-and-details.xml— the fee hint sits below Hide Details and scrolls with the details, with Swipe To Pay pinnedpaykit-quoted-usdt.xml— a USDT request with contact and a long invoice note: details scroll past Hide Details to the fee note, with Swipe To Pay pinnedManual Tests
journeys/README.mdplus a USDT quote, which needs the local USDT fixtureAutomated Checks
N/A