NTP-3895 | success pn flow integrated (#12696)
This commit is contained in:
@@ -127,6 +127,8 @@ fun LinkUpiNumberScreen(
|
||||
val bankAccountsState by linkUpiNumberViewModel.bankAccountsState.collectAsStateWithLifecycle()
|
||||
val externalLinkedVpaState by
|
||||
linkUpiNumberViewModel.externalLinkedVpa.collectAsStateWithLifecycle()
|
||||
val isSuccessPNRedirection by
|
||||
linkUpiNumberViewModel.isSuccessPNRedirection.collectAsStateWithLifecycle()
|
||||
val isDelayedOnboardingExperimentEnabled = remember {
|
||||
isDelayedOnboardingExperimentEnabled(bundle = naviPayActivity.intent.extras)
|
||||
}
|
||||
@@ -181,7 +183,11 @@ fun LinkUpiNumberScreen(
|
||||
}
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
if (!linkUpiNumberViewModel.isUserOnboarded() && isDelayedOnboardingExperimentEnabled) {
|
||||
if (
|
||||
!linkUpiNumberViewModel.isUserOnboarded() &&
|
||||
isDelayedOnboardingExperimentEnabled &&
|
||||
!isSuccessPNRedirection
|
||||
) {
|
||||
naviPayActivity.launchOnboardingSDK(
|
||||
action = NaviPayOnboardingActionsV2Type.E2E_ONBOARDING.name,
|
||||
enabledAccountTypes = SAVINGS_ONLY_ENABLED_ACCOUNTS,
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.navi.pay.common.setup.model.NaviPayCustomerStatus
|
||||
import com.navi.pay.common.usecase.LinkedAccountsUseCase
|
||||
import com.navi.pay.common.utils.DeviceInfoProvider
|
||||
import com.navi.pay.common.viewmodel.NaviPayBaseVM
|
||||
import com.navi.pay.entry.NaviPayActivityDataProvider
|
||||
import com.navi.pay.management.common.sendmoney.model.view.BankAccountsState
|
||||
import com.navi.pay.management.upinumber.link.model.LinkUpiNumberScreenBottomSheetStateHolder
|
||||
import com.navi.pay.management.upinumber.list.model.network.CheckUpiNumberAvailabilityRequest
|
||||
@@ -33,6 +34,8 @@ import com.navi.pay.utils.DS_KEY_NAVI_PAY_CUSTOMER_STATUS
|
||||
import com.navi.pay.utils.ERROR_UPI_NUMBER_MAPPING_ALREADY_EXIST_1
|
||||
import com.navi.pay.utils.ERROR_UPI_NUMBER_MAPPING_ALREADY_EXIST_2
|
||||
import com.navi.pay.utils.EXTERNAL_VPA_FETCH_ERROR
|
||||
import com.navi.pay.utils.LINKED_SUCCESSFULLY_PN_ID
|
||||
import com.navi.pay.utils.NAVI_PAY_NOTIFICATION_ID
|
||||
import com.navi.pay.utils.UPI_NUMBER_STATUS_ACTIVE
|
||||
import com.navi.pay.utils.UPI_NUMBER_STATUS_NEW
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
@@ -54,7 +57,8 @@ constructor(
|
||||
private val linkedAccountsUseCase: LinkedAccountsUseCase,
|
||||
private val naviPayCustomerStatusHandler: Provider<NaviPayCustomerStatusHandler>,
|
||||
private val dataStoreInfoProvider: DataStoreInfoProvider,
|
||||
private val naviPayNetworkConnectivity: NaviPayNetworkConnectivity
|
||||
private val naviPayNetworkConnectivity: NaviPayNetworkConnectivity,
|
||||
private val naviPayActivityDataProvider: NaviPayActivityDataProvider,
|
||||
) : NaviPayBaseVM(NaviPayVmData(screenName = NAVI_PAY_LINK_UPI_NUMBER)) {
|
||||
|
||||
private val naviPayAnalytics: NaviPayAnalytics.NaviPayLinkUpiNumber =
|
||||
@@ -93,12 +97,29 @@ constructor(
|
||||
|
||||
val bottomSheetStateHolder = _bottomSheetStateHolder.asStateFlow()
|
||||
|
||||
private val _isSuccessPNRedirection = MutableStateFlow(false)
|
||||
val isSuccessPNRedirection = _isSuccessPNRedirection.asStateFlow()
|
||||
|
||||
private var naviPayCustomerStatus: String = ""
|
||||
|
||||
init {
|
||||
onUserLandedEvent()
|
||||
updatePhoneNumber()
|
||||
customerStatusListener()
|
||||
handleSuccessPNRedirectionOrListenCustomerStatus()
|
||||
}
|
||||
|
||||
private fun handleSuccessPNRedirectionOrListenCustomerStatus() {
|
||||
if (
|
||||
naviPayActivityDataProvider
|
||||
.getIntentData()
|
||||
?.getString(NAVI_PAY_NOTIFICATION_ID)
|
||||
?.equals(LINKED_SUCCESSFULLY_PN_ID) == true
|
||||
) {
|
||||
_isSuccessPNRedirection.update { true }
|
||||
updateScreenUIState(LinkUPiNumberUIState.LinkedSuccessfully)
|
||||
} else {
|
||||
customerStatusListener()
|
||||
}
|
||||
}
|
||||
|
||||
private fun updatePhoneNumber() {
|
||||
|
||||
@@ -347,6 +347,7 @@ const val UPI_NUMBER_LINK = "UPI_NUMBER_LINK"
|
||||
const val ADD_ACCOUNT_LINK = "ADD_ACCOUNT_LINK"
|
||||
const val ACCOUNT_TYPE = "ACCOUNT_TYPE"
|
||||
const val PORTED_OUT_PN_ID = "ported_out_pn"
|
||||
const val LINKED_SUCCESSFULLY_PN_ID = "link_success_pn"
|
||||
|
||||
// Vibration Constant
|
||||
const val NAVI_PAY_ANIMATION_VIBRATION_DURATION = 500L
|
||||
|
||||
Reference in New Issue
Block a user