Skip to content

feat(ui): network switcher on Quick Receive (Transparent/Platform/Shielded)#841

Merged
QuantumExplorer merged 1 commit into
swift-sdk-integrationfrom
feat/quick-receive-networks
Jul 17, 2026
Merged

feat(ui): network switcher on Quick Receive (Transparent/Platform/Shielded)#841
QuantumExplorer merged 1 commit into
swift-sdk-integrationfrom
feat/quick-receive-networks

Conversation

@QuantumExplorer

Copy link
Copy Markdown
Member

What

The lock screen's Quick Receive now opens the SwiftUI receive surface with the Transparent / Platform / Shielded toggle, instead of the legacy transparent-only storyboard flow.

  • Presents PaymentsLandingHostingController narrowed to the Receive tab (visibleTabs: [.receive]) as a grabber sheet — the same surface the balance-row receive arrows use, so the QR, address, copy/share, and the three-network toggle all come for free and stay in one place.
  • Receive-only on purpose: no send or transfer surface is reachable while locked. Address derivation needs no unlock — the same security posture as the screen it replaces.
  • Legacy teardown rides along: DWQuickReceiveViewController + QuickReceive.storyboard deleted (pbxproj + bridging-header entries scrubbed), and the lock screen's receiveModel plumbing (factory param, property, root-controller wiring) removed — quick receive was its only consumer.

Test plan

  • dashpay arm64-sim build green (both targets); installed on QA-iPhone16 + iPhone 16 Pro
  • Lock screen → Quick Receive → sheet opens on Receive with the Core/Platform/Shielded toggle; each shows its QR + address pre-auth
  • Copy on each network copies the right address (base58 / tdash1… platform / tdash1… shielded)
  • Unlock still works normally after dismissing the sheet

🤖 Generated with Claude Code

…elded)

The lock screen's Quick Receive presented the legacy storyboard flow
embedding the transparent-only DWReceiveViewController. Replace it
with the SwiftUI payments landing narrowed to its Receive tab, whose
Core/Platform/Shielded toggle and address plumbing already exist —
receive-only on purpose (no send/transfer surface while locked), and
address derivation needs no unlock, same posture as the screen it
replaces.

Teardown of the orphaned legacy surface rides along:
DWQuickReceiveViewController (+ storyboard) deleted with their pbxproj
and bridging-header entries, and the lock screen's receiveModel
plumbing (factory param, property, root-controller wiring) removed —
quick receive was its only consumer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e05789a4-9725-4057-b35c-68ef3fe85dfe

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/quick-receive-networks

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@QuantumExplorer
QuantumExplorer merged commit 63f03a8 into swift-sdk-integration Jul 17, 2026
2 checks passed
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