Repository navigation
fix: use app dialog style for retry original payment - #1578
Conversation
[Medium impact] The PR appears safe to merge; no actionable regression was found. SummaryBoth retry-payment steps now use
No actionable issues found. Review was source-based; Android builds, tests, and visual checks were not run. Reviews (1) · Last reviewed commit: "fix: use app dialog style for retry orig..." · Reviewed by Greptile |
talosmachina
left a comment
There was a problem hiding this comment.
No findings. Both Retry original payment steps move to AppAlertDialog, which gains a confirmEnabled flag for the fee step. Reviewed 99cdd21, full tier.
What I checked, and 4 candidates I ruled out
Read in full: AppAlertDialog.kt, SendPendingScreen.kt (RecoveryAuthorization, RecoveryFeeDialog, RecoveryRecipient), SendPendingViewModel (answerRecoveryApproval), OnchainRecoveryFeeRate, rememberDebouncedClick
Call sites traced: every AppAlertDialog caller (the new parameter defaults to true), the reused strings wallet__send_to, wallet__send_fee_custom, wallet__send_fee_and_speed
CI: build, lint and e2e still running at review time
Ruled out
- Approval left unanswered:
properties = DialogProperties()keeps dismiss on Back and outside tap, andonDismissRequestdefaults toonDismiss, which answersfalse, as the oldAlertDialogdid. - Stale fee on confirm:
rememberDebouncedClickreads the latest lambda throughrememberUpdatedState, sofeeRate?.let(onAuthorize)sees the current input; a disabled button cannot fire it at all. - Double Authorize: the click is debounced, and a second
completeon the deferred is a no-op. - Dead imports:
PrimaryButton,SecondaryButtonandBodyMare still used elsewhere in the file.
Bitkit Android branches are not built on this reviewer's machine, so this review is reasoned from the code and CI, and the listed journey was not driven.
Merge confidence: 4/5, CI had not finished and the dialogs are covered only by the manual journey.
Regtest APKDownload bitkit-dev-debug universal APK (expires in 30 days). |
Pull request was converted to draft
99cdd21 to
781a40d
Compare
|
Greptile encountered an error while reviewing this PR. Please reach out to support@greptile.com for assistance and include this reference: |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
781a40d to
5df425c
Compare
pwltr
left a comment
There was a problem hiding this comment.
Approving this as an improvement over the dialogs introduced in #1384. Using the app’s dialog component, labelling the recipient and fee field, and showing validation feedback improves consistency and clarity.
Non-blocking UI recommendation: the overall recovery flow still needs refinement. Two successive dialogs repeat the recipient and amount, while the large balance component and lengthy explanation make the first dialog unnecessarily heavy.
I’d recommend adapting the existing Send fee-selection and confirmation layouts for recovery, keeping the original recipient, amount and inputs fixed, and preserving exact mining-fee approval, fee warnings and normal payment authentication.
|
Merged, as it was approved and green. |
Fixes #1544
This PR moves both steps of Retry original payment from plain Material3 dialogs to the app's
AppAlertDialog. The steps now have a title style, a labelled recipient, the usual amount block, and a fee field that shows its unit.Description
RecoveryFeeDialog):AppAlertDialogwith the Title style, the Gray5 surface and text buttons. It shows the description, then "To" above the address, thenBalanceHeaderViewwith its fiat line above the sats. The fee field is labelled "Set Custom Fee" and shows "₿ / vbyte" as a suffix inside it. An invalid rate shows the existing error under the field and greys out Continue.AppAlertDialog: addsconfirmEnabledto the overload that takes custom content, so the fee step can disable Continue. The default staystrue, so existing callers are unchanged.wallet__send_to,wallet__send_fee_custom,wallet__send_fee_and_speed,common__sat_vbyte.Rebased on master (review round 1): the only overlap was master's reformatting of the old fee
AlertDialogblock this PR replaces.Out of Scope
docs/screens-map.mdmapsSendPendingScreen.ktonly to "Transaction pending Lightning"). This PR reuses existing components and adds no new UI elements..alerts, as the issue notes.Design
N/A — no design available. The steps use the app's dialog component; the closest Figma reference is the Dialog master used across the handoff page. Android's
AppAlertDialogis the existing adaptation of that component, as already used by the Warning step on this screen.Preview
Gate_Throwaway emulator, dev regtest wallet. The broadcast was swallowed by a local copy of
scripts/electrum-bridge.pythat drops onlyblockchain.transaction.broadcast, so Payment Pending offered Retry original payment.Figma Dialog master for reference:
QA Notes
Journeys
retry-original-dialog-style.xml: both retry steps use the app dialog, with the labelled recipient, the amount block and the fee field with its unit; an invalid fee greys out ContinueManual Tests
N/A
Automated Checks
just compile,just testandjust linton this branch merged with the other 3.1.0 batch branches: all passed, and detekt reports no findings in the changed files