From 3d06dcdbed9a51735cf544b05a7487dca63981dd Mon Sep 17 00:00:00 2001 From: vedant aggarwal Date: Thu, 6 Mar 2025 17:30:57 +0530 Subject: [PATCH] NTP-42615 | Vedant Aggarwal | PSP Manager integration in Setting SDK on Account Addition (#15296) --- .../pay/common/settingscreen/ui/UPISettingSDK.kt | 11 +++-------- .../settingscreen/viewmodel/SettingSDKViewmodel.kt | 13 +++++++++++++ .../management/common/utils/NaviPayPspManager.kt | 4 ++++ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/ui/UPISettingSDK.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/ui/UPISettingSDK.kt index 874b067e3b..469ae00dc1 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/ui/UPISettingSDK.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/ui/UPISettingSDK.kt @@ -39,7 +39,6 @@ import com.navi.pay.common.settingscreen.utils.shareQR import com.navi.pay.common.settingscreen.viewmodel.SettingSDKViewmodel import com.navi.pay.common.utils.NaviPayCommonUtils import com.navi.pay.common.utils.launchOnboardingSDK -import com.navi.pay.onboarding.common.NaviPayOnboardingActionsType import com.navi.pay.utils.ACCOUNT_ID import com.navi.pay.utils.ObserveAsEvents import com.navi.pay.utils.SAVINGS_ONLY_ENABLED_ACCOUNTS @@ -158,10 +157,8 @@ fun UPISettingSDK( naviSettingSDKAnalytics.onUpiIdCopyClicked() } is SettingAction.AddAccount -> { - activity.launchOnboardingSDK( - action = NaviPayOnboardingActionsType.ACCOUNT_ADDITION.name, - enabledAccountTypes = SAVINGS_ONLY_ENABLED_ACCOUNTS, - source = "SettingSDK", + settingSDKViewmodel.handleAccountAddition( + enabledAccountTypes = SAVINGS_ONLY_ENABLED_ACCOUNTS ) naviSettingSDKAnalytics.onAddAccountClicked() } @@ -170,12 +167,10 @@ fun UPISettingSDK( naviSettingSDKAnalytics.onShareQRClicked() } is SettingAction.Onboarding -> { - activity.launchOnboardingSDK( - action = NaviPayOnboardingActionsType.E2E_ONBOARDING.name, + settingSDKViewmodel.handleAccountAddition( enabledAccountTypes = SAVINGS_ONLY_ENABLED_ACCOUNTS, addAccountSuccessDescription = "QR code is now added for this bank account. To know about UPI guidelines, click here.", - source = "SettingSDK", ) naviSettingSDKAnalytics.onOnboardingClicked() } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/viewmodel/SettingSDKViewmodel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/viewmodel/SettingSDKViewmodel.kt index 2074b3337e..2cc418a791 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/viewmodel/SettingSDKViewmodel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/settingscreen/viewmodel/SettingSDKViewmodel.kt @@ -211,6 +211,19 @@ constructor( screenLifecycleState = state } + fun handleAccountAddition( + enabledAccountTypes: String, + addAccountSuccessDescription: String? = null, + ) { + viewModelScope.launch(Dispatchers.IO) { + naviPayPspManager.handleAccountAdditionFlow( + screenName = screenName, + enabledAccountTypes = enabledAccountTypes, + addAccountSuccessDescription = addAccountSuccessDescription, + ) + } + } + fun handleActionCta(actionData: ActionData, isUserDeviceBoundForAnyPsp: Boolean) { viewModelScope.launch(Dispatchers.IO) { naviSettingSDKAnalytics.onCtaClicked(actionData) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/utils/NaviPayPspManager.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/utils/NaviPayPspManager.kt index d651336f84..2c82817d5e 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/utils/NaviPayPspManager.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/utils/NaviPayPspManager.kt @@ -267,6 +267,7 @@ constructor( screenName: String, enabledAccountTypes: String? = null, preferredBankCode: String? = null, + addAccountSuccessDescription: String? = null, onOnboardingTriggered: suspend (NaviPayOnboardingActionsType) -> Unit = {}, onPspEvaluated: suspend (PspEvaluationResult) -> Unit = {}, ) { @@ -316,6 +317,7 @@ constructor( psp = selectedPsp, enabledAccountTypes = enabledAccountTypes, preferredBankCode = preferredBankCode, + addAccountSuccessDescription = addAccountSuccessDescription, onboardingAction = NaviPayOnboardingActionsType.ACCOUNT_ADDITION, screenName = screenName, ) @@ -337,6 +339,7 @@ constructor( psp: PspType, enabledAccountTypes: String? = null, preferredBankCode: String? = null, + addAccountSuccessDescription: String? = null, onboardingAction: NaviPayOnboardingActionsType, screenName: String, ): Boolean { @@ -346,6 +349,7 @@ constructor( action = onboardingAction.name, enabledAccountTypes = enabledAccountTypes, preferredBankCode = preferredBankCode, + addAccountSuccessDescription = addAccountSuccessDescription, source = screenName, pspType = psp, onOnboardingSuccess = { onboardingResult.complete(value = true) },