fallback to use transfer if user scanned a paymv qr after selecting a card
This commit is contained in:
@@ -87,7 +87,32 @@ class CardsFragment : Fragment() {
|
||||
R.id.nav_transfer, TransferFragment.newInstanceFromBmlQr(bmlUrl ?: raw, pendingQrAccountNumber)
|
||||
)
|
||||
} else {
|
||||
Toast.makeText(requireContext(), R.string.transfer_qr_invalid, Toast.LENGTH_SHORT).show()
|
||||
val qr = PaymvQrParser.parse(raw)
|
||||
if (qr?.accountNumber != null) {
|
||||
// PayMV QR — cards are not supported for this payment type.
|
||||
// Navigate to transfer with the recipient pre-filled; use default account if configured.
|
||||
Toast.makeText(requireContext(), R.string.card_qr_paymv_unsupported, Toast.LENGTH_SHORT).show()
|
||||
val defaultFromNumber = store.getDefaultAccountNumber()
|
||||
val fragment = if (defaultFromNumber != null) {
|
||||
TransferFragment.newInstanceFromQrWithFrom(
|
||||
accountNumber = qr.accountNumber,
|
||||
displayName = qr.merchantName ?: qr.accountNumber,
|
||||
amount = qr.amount,
|
||||
remarks = qr.purpose,
|
||||
fromAccountNumber = defaultFromNumber
|
||||
)
|
||||
} else {
|
||||
TransferFragment.newInstanceFromQr(
|
||||
accountNumber = qr.accountNumber,
|
||||
displayName = qr.merchantName ?: qr.accountNumber,
|
||||
amount = qr.amount,
|
||||
remarks = qr.purpose
|
||||
)
|
||||
}
|
||||
(requireActivity() as HomeActivity).navigateTo(R.id.nav_transfer, fragment)
|
||||
} else {
|
||||
Toast.makeText(requireContext(), R.string.transfer_qr_invalid, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
pendingQrAccountNumber = null
|
||||
}
|
||||
|
||||
@@ -202,6 +202,24 @@ class TransferFragment : Fragment() {
|
||||
if (remarks != null) putString(ARG_REMARKS_PREFILL, remarks)
|
||||
}
|
||||
}
|
||||
|
||||
fun newInstanceFromQrWithFrom(
|
||||
accountNumber: String,
|
||||
displayName: String,
|
||||
amount: String?,
|
||||
remarks: String?,
|
||||
fromAccountNumber: String
|
||||
) = TransferFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putString(ARG_ACCOUNT, accountNumber)
|
||||
putString(ARG_NAME, displayName)
|
||||
putString(ARG_SUBTITLE, accountNumber)
|
||||
putString(ARG_COLOR, "#607D8B")
|
||||
putString(ARG_FROM_ACCOUNT, fromAccountNumber)
|
||||
if (amount != null) putString(ARG_AMOUNT_PREFILL, amount)
|
||||
if (remarks != null) putString(ARG_REMARKS_PREFILL, remarks)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||
|
||||
@@ -241,6 +241,7 @@
|
||||
<string name="transfer_scan_qr">Scan to Pay</string>
|
||||
<string name="qr_pick_image">Pick image</string>
|
||||
<string name="transfer_qr_invalid">Invalid or unsupported QR code</string>
|
||||
<string name="card_qr_paymv_unsupported">PayMV QR is not supported for card payments — switching to transfer</string>
|
||||
<string name="qr_camera_permission_title">Camera permission required</string>
|
||||
<string name="qr_camera_permission_message">Camera access is needed to scan QR codes. Please grant the permission in Settings.</string>
|
||||
<string name="camera_permission_profile_message">Camera access is needed to take a photo. Please grant the permission in Settings.</string>
|
||||
|
||||
Reference in New Issue
Block a user