forked from shihaam/thijooree
improve share to scan to pay flow: fetching merchant details
This commit is contained in:
@@ -446,18 +446,20 @@ fun applyNavLabelVisibility() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun routeSharedQrText(text: String) {
|
private fun routeSharedQrText(text: String) {
|
||||||
|
val store = CredentialStore(this)
|
||||||
val bmlUrl = sh.sar.basedbank.util.PaymvQrParser.extractBmlGatewayUrl(text)
|
val bmlUrl = sh.sar.basedbank.util.PaymvQrParser.extractBmlGatewayUrl(text)
|
||||||
if (text.startsWith("https://ebanking.bankofmaldives.com.mv/qrpay/") || bmlUrl != null) {
|
if (text.startsWith("https://ebanking.bankofmaldives.com.mv/qrpay/") || bmlUrl != null) {
|
||||||
navigateTo(R.id.nav_transfer, TransferFragment.newInstanceFromBmlQr(bmlUrl ?: text))
|
navigateTo(R.id.nav_transfer, TransferFragment.newInstanceFromBmlQr(bmlUrl ?: text, store.getDefaultCardAccountNumber()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val qr = sh.sar.basedbank.util.PaymvQrParser.parse(text)
|
val qr = sh.sar.basedbank.util.PaymvQrParser.parse(text)
|
||||||
if (qr?.accountNumber != null) {
|
if (qr?.accountNumber != null) {
|
||||||
navigateTo(R.id.nav_transfer, TransferFragment.newInstanceFromQr(
|
navigateTo(R.id.nav_transfer, TransferFragment.newInstanceFromQr(
|
||||||
accountNumber = qr.accountNumber,
|
accountNumber = qr.accountNumber,
|
||||||
displayName = qr.merchantName ?: qr.accountNumber,
|
displayName = qr.merchantName ?: qr.accountNumber,
|
||||||
amount = qr.amount,
|
amount = qr.amount,
|
||||||
remarks = qr.purpose
|
remarks = qr.purpose,
|
||||||
|
fromAccountNumber = store.getDefaultAccountNumber()
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, R.string.transfer_qr_invalid, Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, R.string.transfer_qr_invalid, Toast.LENGTH_SHORT).show()
|
||||||
|
|||||||
@@ -422,6 +422,14 @@ class TransferFragment : Fragment() {
|
|||||||
updateTransferButton()
|
updateTransferButton()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// On a cold start (e.g. share intent), anyBmlSession() may be null when
|
||||||
|
// onViewCreated runs. Retry the lookup once sessions are available.
|
||||||
|
val pendingBmlQrUrl = arguments?.getString(ARG_BML_QR_URL)
|
||||||
|
if (pendingBmlQrUrl != null && bmlQrInfo == null && binding.tilTo.visibility == View.VISIBLE) {
|
||||||
|
val app = requireActivity().application as BasedBankApp
|
||||||
|
if (app.anyBmlSession() != null) lookupBmlQrMerchant(pendingBmlQrUrl)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user