TP-67223 | added internet and sim checks in lite disable flow (#10923)

This commit is contained in:
Shaurya Rehan
2024-05-19 23:40:31 +05:30
committed by GitHub
parent 2be7802c17
commit 2b8d9fc4e9
2 changed files with 50 additions and 46 deletions

View File

@@ -2315,6 +2315,12 @@ constructor(
fun onDisableUpiLiteClicked() {
viewModelScope.launch(coroutineDispatcherProvider.io) {
if (!checkIsInternetAvailableOrShowError()) return@launch
if (checkIsAirplaneModeOnOrShowError()) return@launch
val currentSimInfoList = naviPayNetworkConnectivity.getCurrentSimInfoList()
if (!validateSimInfoOrShowError(currentSimInfoList)) return@launch
showLoadingBottomSheet(
headerResId = R.string.disabling_upi_lite,
descriptionResId = R.string.disabling_upi_lite_desc

View File

@@ -22,6 +22,7 @@ import com.navi.pay.analytics.NaviPayAnalytics
import com.navi.pay.common.connectivity.NaviPayNetworkConnectivity
import com.navi.pay.common.model.view.DisableUpiLiteAction
import com.navi.pay.common.model.view.NaviPayVmData
import com.navi.pay.common.model.view.SimInfo
import com.navi.pay.common.repository.CommonRepository
import com.navi.pay.common.repository.SharedPreferenceRepository
import com.navi.pay.common.usecase.DisableUpiLiteUseCase
@@ -230,10 +231,7 @@ constructor(
fun makeAccountPrimary() {
viewModelScope.launch(Dispatchers.IO) {
if (!naviPayNetworkConnectivity.isInternetConnected()) {
notifyError(getNoInternetErrorConfig())
return@launch
}
if (!checkIsInternetAvailableOrShowError()) return@launch
var linkedAccountEntity: LinkedAccountEntity? = null
@@ -281,10 +279,7 @@ constructor(
fun deleteAccount() {
apiCallJob =
viewModelScope.launch(Dispatchers.IO) {
if (!naviPayNetworkConnectivity.isInternetConnected()) {
notifyError(getNoInternetErrorConfig())
return@launch
}
if (!checkIsInternetAvailableOrShowError()) return@launch
var linkedAccountEntity: LinkedAccountEntity? = null
@@ -356,27 +351,11 @@ constructor(
fun changePin() {
viewModelScope.launch(Dispatchers.IO) {
if (!naviPayNetworkConnectivity.isInternetConnected()) {
notifyError(getNoInternetErrorConfig())
return@launch
}
if (naviPayNetworkConnectivity.isAirplaneModeOn()) {
notifyError(getAirplaneModeOnErrorConfig())
return@launch
}
if (!checkIsInternetAvailableOrShowError()) return@launch
if (checkIsAirplaneModeOnOrShowError()) return@launch
val currentSimInfoList = naviPayNetworkConnectivity.getCurrentSimInfoList()
val simInfoValidationResult =
NaviPayCommonUtils.validateSimInfo(
currentSimInfoList = currentSimInfoList,
deviceInfoProvider = deviceInfoProvider
)
if (!simInfoValidationResult) {
notifyError(getSimFailureErrorConfig(isNoSimPresent = currentSimInfoList.isEmpty()))
return@launch
}
if (!validateSimInfoOrShowError(currentSimInfoList)) return@launch
updateShowLoaderState(showLoader = true)
@@ -467,27 +446,11 @@ constructor(
fun checkBalance() {
viewModelScope.launch(Dispatchers.IO) {
if (!naviPayNetworkConnectivity.isInternetConnected()) {
notifyError(getNoInternetErrorConfig())
return@launch
}
if (naviPayNetworkConnectivity.isAirplaneModeOn()) {
notifyError(getAirplaneModeOnErrorConfig())
return@launch
}
if (!checkIsInternetAvailableOrShowError()) return@launch
if (checkIsAirplaneModeOnOrShowError()) return@launch
val currentSimInfoList = naviPayNetworkConnectivity.getCurrentSimInfoList()
val simInfoValidationResult =
NaviPayCommonUtils.validateSimInfo(
currentSimInfoList = currentSimInfoList,
deviceInfoProvider = deviceInfoProvider
)
if (!simInfoValidationResult) {
notifyError(getSimFailureErrorConfig(isNoSimPresent = currentSimInfoList.isEmpty()))
return@launch
}
if (!validateSimInfoOrShowError(currentSimInfoList)) return@launch
updateShowLoaderState(showLoader = true)
@@ -575,6 +538,12 @@ constructor(
fun onDisableUpiLiteClicked() {
viewModelScope.launch(Dispatchers.IO) {
if (!checkIsInternetAvailableOrShowError()) return@launch
if (checkIsAirplaneModeOnOrShowError()) return@launch
val currentSimInfoList = naviPayNetworkConnectivity.getCurrentSimInfoList()
if (!validateSimInfoOrShowError(currentSimInfoList)) return@launch
showLoadingBottomSheet(
headerResId = R.string.disabling_upi_lite,
descriptionResId = R.string.disabling_upi_lite_desc
@@ -738,6 +707,35 @@ constructor(
apiCallJob?.cancel()
updateShowLoaderState(showLoader = false)
}
private fun checkIsInternetAvailableOrShowError(): Boolean {
if (!naviPayNetworkConnectivity.isInternetConnected()) {
notifyError(getNoInternetErrorConfig())
return false
}
return true
}
private fun checkIsAirplaneModeOnOrShowError(): Boolean {
if (naviPayNetworkConnectivity.isAirplaneModeOn()) {
notifyError(getAirplaneModeOnErrorConfig())
return true
}
return false
}
private suspend fun validateSimInfoOrShowError(currentSimInfoList: List<SimInfo>): Boolean {
val simInfoValidationResult =
NaviPayCommonUtils.validateSimInfo(
currentSimInfoList = currentSimInfoList,
deviceInfoProvider = deviceInfoProvider
)
if (!simInfoValidationResult) {
notifyError(getSimFailureErrorConfig(isNoSimPresent = currentSimInfoList.isEmpty()))
return false
}
return true
}
}
sealed class LinkedAccountDetailScreenUIState {