diff --git a/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayActivity.kt b/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayActivity.kt index d2441b4c5f..884d3ab621 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayActivity.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayActivity.kt @@ -134,6 +134,9 @@ class NaviPayActivity : BaseActivity() { ).apply { data = intent?.data }) + if (viewModel.isCustomerStatusDeviceBounded()) { + checkOnboardedUserMandatoryPermissions() + } } } diff --git a/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayViewModel.kt b/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayViewModel.kt index dfce93c2c8..20507ee95e 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayViewModel.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/entry/NaviPayViewModel.kt @@ -117,4 +117,8 @@ class NaviPayViewModel @Inject constructor( fun isUserOnboarded(): Boolean { return getCustomerStatus() == NaviPayCustomerStatus.LINKED_VPA } + + fun isCustomerStatusDeviceBounded(): Boolean { + return getCustomerStatus() == NaviPayCustomerStatus.DEVICE_BOUNDED + } } \ No newline at end of file diff --git a/navi-pay/src/main/kotlin/com/navi/pay/onboarding/binding/NaviPayOnboardingViewModel.kt b/navi-pay/src/main/kotlin/com/navi/pay/onboarding/binding/NaviPayOnboardingViewModel.kt index c7436853e9..eb860d50ad 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/onboarding/binding/NaviPayOnboardingViewModel.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/onboarding/binding/NaviPayOnboardingViewModel.kt @@ -500,28 +500,30 @@ class NaviPayOnboardingViewModel @Inject constructor( val customerAPIResponse = commonRepository.getCustomer(customerRequest = CustomerRequest(deviceData = deviceInfoProvider.getDeviceData())) + val customerStatus = customerAPIResponse.data?.customerStatus ?: "" + naviPayAnalytics.onGetCustomerCallAfterBindingEnd( deviceData = deviceInfoProvider.getDeviceData(), errors = customerAPIResponse.errors, - customerStatus = customerAPIResponse.data?.customerStatus ?: "" + customerStatus = customerStatus ) - if (customerAPIResponse.isError()) { + if (customerAPIResponse.isError() || customerStatus.isEmpty()) { onBindingError(customerAPIResponse) return@launch } - naviPayCustomerStatusHandler.updateCustomerStatus( - customerAPIResponse.data?.customerStatus ?: "" - ) + naviPayCustomerStatusHandler.updateCustomerStatus(customerStatus) - deferredApiCallList.add(viewModelScope.async { // Post verification linkedAccounts can be fetched - refreshLinkedAccountsUseCase.execute() - }) + if (customerStatus == NaviPayCustomerStatus.LINKED_VPA.name) { + deferredApiCallList.add(viewModelScope.async { // Post verification linkedAccounts can be fetched + refreshLinkedAccountsUseCase.execute() + }) + } deferredApiCallList.awaitAll() // wait for all API's to complete before navigating - when (customerAPIResponse.data?.customerStatus) { + when (customerStatus) { NaviPayCustomerStatus.LINKED_VPA.name -> showLinkedAccountState() NaviPayCustomerStatus.DEVICE_BOUNDED.name -> showDeviceBoundedState() else -> {