From ce7be7283191fd31667a1ee82b1ecbf96b6c8575 Mon Sep 17 00:00:00 2001 From: Shiv Natani Date: Thu, 19 Jun 2025 17:18:28 +0530 Subject: [PATCH] NTP-74779 | Shiv Natani | empty vpa entity list fix (#16650) --- .../viewmodel/WebPaymentViewModel.kt | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/WebPaymentViewModel.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/WebPaymentViewModel.kt index cea955d32e..3445bc3112 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/WebPaymentViewModel.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/viewmodel/WebPaymentViewModel.kt @@ -52,7 +52,6 @@ import com.navi.payment.model.initiatesdk.PaymentPrefetchMethodRequest import com.navi.payment.nativepayment.NaviPaymentAnalyticScreenName import com.navi.payment.nativepayment.NaviPaymentAnalytics import com.navi.payment.nativepayment.activity.WebPaymentActivity -import com.navi.payment.nativepayment.dataprovider.PaymentDataProvider.Companion.TRANSACTION_REFERENCE_ID import com.navi.payment.nativepayment.dataprovider.PaymentDataProvider.Companion.UPI_LITE_MAX_PAYABLE_AMOUNT_PER_TRANSACTION import com.navi.payment.nativepayment.dataprovider.WebPaymentDataProvider import com.navi.payment.nativepayment.dataprovider.WebPaymentDataProvider.Companion.WEB_PAYMENT_SOURCE @@ -94,6 +93,7 @@ import com.navi.payment.utils.Constants import com.navi.payment.utils.Constants.EMPTY_TOKEN_ERROR import com.navi.payment.utils.Constants.PAYMENT_ORDER_REFERNCE_ID import com.navi.payment.utils.Constants.PSP_MANAGER_RESPONSE +import com.navi.payment.utils.Constants.TRANSACTION_REFERENCE_ID import com.navi.payment.utils.getErrorData import com.navi.payment.utils.getPMSMetricInfo import com.navi.paymentclients.model.thirdparty.UpiResultResponse @@ -819,21 +819,28 @@ constructor( activity: WebPaymentActivity, upiResultLauncher: ManagedActivityResultLauncher, ) { - val account = selectedBankAccount.value ?: return if (showPayNowLoader.value) return - naviPaymentAnalytics.onPayNowClicked(baseAttributes = getAnalyticsParams()) - if (account.isMPinSet.not()) { - naviPaymentAnalytics.onSetUpiPinBtnClick( - webPaymentAction = webPayAction ?: WebPaymentAction.WEB_SEND_MONEY, - webPaymentData = webPaymentData.toJsonObject(), - baseAttributes = getAnalyticsParams(), - ) - updateLastTriggeredActionBeforeOnboarding( - webPayAction ?: WebPaymentAction.WEB_SEND_MONEY - ) - handleMPinSetup(activity, upiResultLauncher) - } else { - makePayment(account) + viewModelScope.safeLaunch(Dispatchers.IO) { + val account = + getLinkedAccountEntityFromAccountId(selectedBankAccount.value?.accountId.orEmpty()) + ?: run { + finishWithError() + return@safeLaunch + } + naviPaymentAnalytics.onPayNowClicked(baseAttributes = getAnalyticsParams()) + if (account.isMPinSet.not()) { + naviPaymentAnalytics.onSetUpiPinBtnClick( + webPaymentAction = webPayAction ?: WebPaymentAction.WEB_SEND_MONEY, + webPaymentData = webPaymentData.toJsonObject(), + baseAttributes = getAnalyticsParams(), + ) + updateLastTriggeredActionBeforeOnboarding( + webPayAction ?: WebPaymentAction.WEB_SEND_MONEY + ) + handleMPinSetup(activity, upiResultLauncher) + } else { + makePayment(account) + } } }