forked from thijooree/android
44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# PayMV QR Screen
|
|
|
|
Generates a receive-payment PayMV / Favara QR code. **Generation only** — the send/scan side of PayMV lives in `TransferFragment` via `newInstanceWithAutoScan()` and the [QR scanner](25-qr-scanner.md).
|
|
|
|
---
|
|
|
|
## Fragment — `PayMvQrFragment`
|
|
|
|
A single screen (no tabs). Re-renders the QR live as the user edits the form.
|
|
|
|
### Fields
|
|
|
|
| Field | Source / behaviour |
|
|
|---|---|
|
|
| Source account dropdown | `viewModel.accounts`, filtered to non-card MVR accounts (MIB and BML USD currently excluded — both flagged as TODO in source). Defaults to `CredentialStore.getDefaultAccountNumber()` when set |
|
|
| Amount (`etAmount`) | Optional. Blank → open-amount QR |
|
|
| Reference (`etReference`) | Free-text purpose; defaults to `paymvqr_reference_default` if blank — written to tag 62→08 |
|
|
| Include phone (`switchIncludePhone`) | When on, writes the saved BML / Fahipay mobile to sub-tag 26→05 (auto-prefixed `+960` if 7-digit local) |
|
|
|
|
### Generation
|
|
|
|
`buildQrPayload()` assembles a decimal TLV payload per the [PayMV QR Format](18-paymv-qr-format.md):
|
|
|
|
1. Tag 26 container: GUI (`mv.favara.mpqr`), acquirer BIC, account number, optional mobile, `IPAY`
|
|
2. Acquirer BIC is derived from the source account's bank: `MALBMVMV` (BML) / `MADVMVMV` (MIB) / `FAHIMVMV` (Fahipay)
|
|
3. Tag 62 container: random 9-char reference + the purpose text
|
|
4. Tag 80 container: GUI + ISO timestamp
|
|
5. Appends `"6304"` and computes CRC-16/CCITT-FALSE over the full string
|
|
|
|
The rendered card image (bank-styled background plus QR) is shown in-place.
|
|
|
|
### Actions
|
|
|
|
- **Share** (`btnShare`) — exports the rendered card via `FileProvider` + `ACTION_SEND`
|
|
- **Save** (`btnSave`, `PayMvQrFragment.kt:78`) — writes the PNG to `MediaStore.Images` / `Pictures/`
|
|
|
|
---
|
|
|
|
|
|
|
|
---
|
|
|
|
[← OTP Screen](10-otp-screen.md) **Next →** [BML QR Pay](12-bml-qr-pay.md)
|