diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/NaviPaymentAnalytics.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/NaviPaymentAnalytics.kt index 3abda5bd74..7c38d5e4eb 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/NaviPaymentAnalytics.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/NaviPaymentAnalytics.kt @@ -1726,6 +1726,22 @@ class NaviPaymentAnalytics private constructor() { eventValues = eventAttributes, ) } + + fun onBankAccountsEligibilityStateUpdate( + tenantFlow: String, + blackListedMethods: List, + eligibilityStateMap: Map, + ) { + val eventAttributes = buildMap { + put("tenant_flow", tenantFlow) + put("blacklisted_methods", blackListedMethods.toString()) + put("eligibility_state_map", eligibilityStateMap.toString()) + } + NaviTrackEvent.trackEventOnClickStream( + eventName = "NaviPMT_OneClickCheckoutScreen_BankAccountStateUpdate", + eventValues = eventAttributes, + ) + } } inner class WebPaymentScreen { diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/sharedviewmodel/NaviCheckoutViewModelV2.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/sharedviewmodel/NaviCheckoutViewModelV2.kt index 8d848c0243..c652747a68 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/sharedviewmodel/NaviCheckoutViewModelV2.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/sharedviewmodel/NaviCheckoutViewModelV2.kt @@ -211,7 +211,7 @@ constructor( paymentAmountChangeListener() } - suspend fun setUpOneClickCheckout( + fun setUpOneClickCheckout( source: PaymentSource, category: String, tenantFlowName: String, @@ -221,6 +221,7 @@ constructor( this.category = category this.tenantFlowName = tenantFlowName this.blacklistedMethodList = blacklistedMethodList + pmsLinkedAccountUseCase.clear() viewModelScope.safeLaunch { if (isOneClickCheckoutExperienceEnabled()) { linkedAccountChangeObserver() @@ -543,6 +544,12 @@ constructor( linkedAccounts.associate { it.accountId to it.eligibilityState } ) } + naviPaymentAnalytics.onBankAccountsEligibilityStateUpdate( + tenantFlow = tenantFlowName, + blackListedMethods = blacklistedMethodList, + eligibilityStateMap = + state.value.accountEligibilityMap.mapValues { it.value.inEligibilityReason }, + ) postProcessLinkedAccounts(linkedAccounts) } @@ -1117,6 +1124,12 @@ constructor( linkedAccounts.associate { it.accountId to it.eligibilityState } ) } + naviPaymentAnalytics.onBankAccountsEligibilityStateUpdate( + tenantFlow = tenantFlowName, + blackListedMethods = blacklistedMethodList, + eligibilityStateMap = + state.value.accountEligibilityMap.mapValues { it.value.inEligibilityReason }, + ) postProcessLinkedAccounts(linkedAccounts) updateSelectedAccount() updatePaymentCtaState() diff --git a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/usecase/PmsSendMoneyUseCase.kt b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/usecase/PmsSendMoneyUseCase.kt index b9205413b3..87097f8af1 100644 --- a/android/navi-payment/src/main/java/com/navi/payment/nativepayment/usecase/PmsSendMoneyUseCase.kt +++ b/android/navi-payment/src/main/java/com/navi/payment/nativepayment/usecase/PmsSendMoneyUseCase.kt @@ -311,6 +311,12 @@ constructor( onInitialChecksFailure(errorConfig) return } + val customerOnboardingEntity = + naviPayCustomerStatusHandler.getCustomerOnboardingEntity(PspType.JUSPAY_AXIS) + if (customerOnboardingEntity == null) { + onInitialChecksFailure(getGenericErrorConfig()) + return + } naviUpiTransactionInfo.selectedBankAccount?.isArcProtected = naviUpiTransactionInfo.isArcProtected sendMoneyUseCase.executeSendMoney( @@ -334,9 +340,8 @@ constructor( }, onPaymentFailure = { sendMoneyResponse, _ -> onPaymentFailure(sendMoneyResponse) }, customerOnboardingEntity = - naviPayCustomerStatusHandler.getCustomerOnboardingEntity(PspType.JUSPAY_AXIS) - ?: return, // TODO: Multibank - Remove hardcoding here after PMS Multi bank - // changes are picked + customerOnboardingEntity, // TODO: Multibank - Remove hardcoding here after PMS Multi + // bank changes are picked ) } }