fix: present requests and keep controls visible - #1405
Conversation
|
Regtest APKDownload bitkit-dev-debug universal APK (expires in 30 days). |
There was a problem hiding this comment.
Advice: ✅ Approve
Review: diff 10 files.
synonymdev/bitkit-ios#858 adds the same automatic request presentation and shared journeys. The fixed confirmation controls and compact layout journey are Android-specific; iOS keeps its existing confirmation layout.
QA:
Tests running: 3 of 3 passed.
Reviewed by gpt-6.1-sol-high via gh-pr-review-loop skill
Commands: @ovi-reviewer review · test · retest (author)
piotr-iohk
left a comment
There was a problem hiding this comment.
QA review
Scope: Full review of the complete PR diff against its merge base, at 5985d70.
No new actionable code findings.
Eligible incoming Paykit requests now present from pending-list updates, including a request that arrives while another resolution is in flight and does not open a sheet. Existing guards still block presentation while a sheet, scan, or unauthenticated session is active. The confirmation amount and swipe control stay fixed; the requester summary and details scroll in the middle. The compact-summary clip on f36e353 (thread) is fixed at this head: that middle region always scrolls, and the compact test uses a requester profile with a 256-character note.
CI build and unit tests and lint passed on this head. Detekt passed in this run. This review did not re-run those tests or any device journey. Pay and delivery latency from #1404 stays out of scope. Presentation parity with bitkit-ios#858 was not re-reviewed here; confirmation-controls.xml is Android-only because that confirmation layout differs.
Device testing: not performed in this review.
Suggested additional test cases
- Android. Setup: an ordinary on-chain send confirmation, not a payment request. Action: tap Show details and scroll the middle content. Expected: the full amount and Swipe to Pay stay on screen, and the fee and destination stay reachable in the middle scroller.
- Android. Setup: the two-wallet payment-request fixture, with the first confirmation already open. Action: deliver a second request before closing the first. Expected: the open confirmation is not replaced; after it is closed, the second opens on its own and the first stays dismissed.
Ready for device testing.
There was a problem hiding this comment.
Verdict: ✅ Approve
Tests for the review: journeys J1, J2 and J3 passed.
QA:
Tested on two Android 15 emulators.
🟢 Tests J1, J2, J3
Test J1
Requests opened automatically, waited for Receive to close, and stayed dismissed.
J1.mp4 | J1-tail.mp4 |
![]() | ![]() | ![]() | ![]() |
Test J2
The amount and Swipe To Pay stayed fixed while the summary and long note scrolled at larger text size.
J2-tail.mp4 |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Test J3
From/For summaries and expanded notes matched the requests; an empty note showed “Not specified”.
J3.mp4 | J3-supplemental.mp4 |
![]() | ![]() | ![]() | ![]() | ![]() |
Note
The unresolved-name confirmation case remains unverified because the fixture used unsupported payment deadlines.
Reviewed by gpt-6.1-sol-high via gh-pr-review-loop skill
Commands: @ovi-reviewer review · test · retest (author)
















Closes #1404
Twin: synonymdev/bitkit-ios#858
This PR addresses the missing request popup and the clipped confirmation controls reported in #1404.
Description
Out of Scope
Design
Existing Confirm Send Onchain frame in Bitkit handoff, mapped by
docs/screens-map.md. The direct frame link has not been verified.Preview
QA Notes
Journeys
automatic-presentation.xml- Arrival opens confirmation, another sheet defers it, and reviewed requests stay dismissed.confirmation-controls.xml- Amount and payment slider remain visible on a compact screen with large text and a long note.request-summary.xml- Confirmation opens without the bell and preserves requester and note details.Two-wallet regtest checks exercised automatic presentation on both platforms, Receive deferral, dismissal, request summaries, and a successful 1,753-sat payment. Device QA applied #1399 and iOS #854 in separate scratch builds. A sampled Android popup started within 0.6 seconds of decoding the request; preceding delivery took about 11 seconds. This PR does not claim that latency is resolved.
Manual Tests
N/A
Automated Checks
AppViewModelSendFlowTest.kt- Adds arrival and overlapping-resolution regressions using the real presenter.SendConfirmScreenTest.kt- Verifies reachable requester summary and fixed amount/slider bounds at 360 x 400 dp and 1.3 font scale; preserves subscription confirmation coverage.MnemonicInputFieldTest.kt- Supplies the required focus argument so the existing instrumented test fixture compiles.Local compile, 3,058 unit tests, eight instrumented tests, detekt, and both APK builds passed. Detekt reports the same existing findings.