NTP-3895 | success pn flow integrated (#12696)

This commit is contained in:
Hardik Chaudhary
2024-09-24 14:31:20 +05:30
committed by GitHub
parent c88c6c93d4
commit 80e7999349
3 changed files with 31 additions and 3 deletions

View File

@@ -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,

View File

@@ -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() {

View File

@@ -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