diff --git a/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/BillerListUseCase.kt b/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/BillerListUseCase.kt index 7f961c0fb1..e8cd76c532 100644 --- a/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/BillerListUseCase.kt +++ b/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/BillerListUseCase.kt @@ -8,7 +8,6 @@ package com.navi.bbps.common.usecase import com.navi.base.utils.retry -import com.navi.bbps.common.BILLER_LIST_REFRESH_TIMESTAMP import com.navi.bbps.common.BbpsSharedPreferences import com.navi.bbps.common.DEFAULT_RETRY_COUNT import com.navi.bbps.common.KEY_BBPS_MY_BILLS_DB_LAST_REFRESHED_TIMESTAMP @@ -16,6 +15,7 @@ import com.navi.bbps.common.RETRY_INTERVAL_IN_SECONDS import com.navi.bbps.common.repository.BbpsCommonRepository import com.navi.bbps.feature.billerlist.BillerItemResponseToEntityMapper import com.navi.bbps.feature.billerlist.model.view.BillerItemEntity +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.common.network.models.isSuccessWithData import javax.inject.Inject import org.joda.time.DateTime @@ -35,7 +35,10 @@ constructor( ) val shouldFetchBillerList = - (DateTime.now().millis - lastFetchBillerListTimeStamp > BILLER_LIST_REFRESH_TIMESTAMP) + (DateTime.now().millis - lastFetchBillerListTimeStamp > + FirebaseRemoteConfigHelper.getLong( + FirebaseRemoteConfigHelper.NAVI_BBPS_BILLER_LIST_CACHE_MILLIS + )) if (shouldFetchBillerList) { val billerListResponse = diff --git a/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PhoneSeriesToOperatorCircleMappingUseCase.kt b/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PhoneSeriesToOperatorCircleMappingUseCase.kt index c315e4e73e..88f334b5b4 100644 --- a/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PhoneSeriesToOperatorCircleMappingUseCase.kt +++ b/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PhoneSeriesToOperatorCircleMappingUseCase.kt @@ -7,12 +7,12 @@ package com.navi.bbps.common.usecase -import com.navi.bbps.common.ALL_PHONE_SERIES_MAPPING_REFRESH_TIMESTAMP import com.navi.bbps.common.BbpsSharedPreferences import com.navi.bbps.common.KEY_BBPS_PHONE_SERIES_MAPPING_REFRESHED_TIMESTAMP import com.navi.bbps.common.repository.BbpsCommonRepository import com.navi.bbps.feature.prepaidrecharge.model.view.OperatorCircleSeriesMappingItemEntity import com.navi.bbps.parallelMap +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.common.network.models.isSuccessWithData import javax.inject.Inject import org.joda.time.DateTime @@ -25,15 +25,17 @@ constructor( ) { suspend fun execute() { - val lastFetchBillerListTimeStamp = + val lastPhoneSeriesToOperatorCircleMappingFetchedTimeStamp = bbpsSharedPreferences.getLong( key = KEY_BBPS_PHONE_SERIES_MAPPING_REFRESHED_TIMESTAMP, defValue = -1L ) val shouldFetchPhoneSeriesMapping = - (DateTime.now().millis - lastFetchBillerListTimeStamp > - ALL_PHONE_SERIES_MAPPING_REFRESH_TIMESTAMP) + (DateTime.now().millis - lastPhoneSeriesToOperatorCircleMappingFetchedTimeStamp > + FirebaseRemoteConfigHelper.getLong( + FirebaseRemoteConfigHelper.NAVI_BBPS_PHONE_SERIES_MAPPING_CACHE_MILLIS + )) if (shouldFetchPhoneSeriesMapping) { val mappingResponse = bbpsCommonRepository.fetchOperatorCircleMappingFromPhoneSeries() @@ -55,6 +57,11 @@ constructor( ) } } + + bbpsSharedPreferences.saveLong( + key = KEY_BBPS_PHONE_SERIES_MAPPING_REFRESHED_TIMESTAMP, + value = System.currentTimeMillis() + ) } private suspend fun savedMapping(mapping: List) { diff --git a/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PrepaidPlansUseCase.kt b/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PrepaidPlansUseCase.kt index 6150c81e4c..fc590770c4 100644 --- a/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PrepaidPlansUseCase.kt +++ b/android/navi-bbps/src/main/kotlin/com/navi/bbps/common/usecase/PrepaidPlansUseCase.kt @@ -8,7 +8,6 @@ package com.navi.bbps.common.usecase import com.navi.base.utils.retry -import com.navi.bbps.common.ALL_PREPAID_PLANS_REFRESH_TIMESTAMP import com.navi.bbps.common.BbpsSharedPreferences import com.navi.bbps.common.DEFAULT_RETRY_COUNT import com.navi.bbps.common.KEY_BBPS_ALL_PREPAID_PLANS_LAST_REFRESHED_TIMESTAMP @@ -16,6 +15,7 @@ import com.navi.bbps.common.RETRY_INTERVAL_IN_SECONDS import com.navi.bbps.common.repository.BbpsCommonRepository import com.navi.bbps.feature.prepaidrecharge.model.network.MapListOfPrepaidPlansResponseToEntity import com.navi.bbps.feature.prepaidrecharge.model.view.PrepaidRechargeEntity +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.common.network.models.isSuccessWithData import javax.inject.Inject import org.joda.time.DateTime @@ -28,15 +28,17 @@ constructor( private val mapListOfPrepaidPlansResponseToEntity: MapListOfPrepaidPlansResponseToEntity ) { suspend fun execute() { - val lastFetchBillerListTimeStamp = + val lastPrepaidPlansFetchedTimeStamp = bbpsSharedPreferences.getLong( key = KEY_BBPS_ALL_PREPAID_PLANS_LAST_REFRESHED_TIMESTAMP, defValue = -1L ) val shouldFetchAllPrepaidPlans = - (DateTime.now().millis - lastFetchBillerListTimeStamp > - ALL_PREPAID_PLANS_REFRESH_TIMESTAMP) + (DateTime.now().millis - lastPrepaidPlansFetchedTimeStamp > + FirebaseRemoteConfigHelper.getLong( + FirebaseRemoteConfigHelper.NAVI_BBPS_PREPAID_PLANS_CACHE_MILLIS + )) if (shouldFetchAllPrepaidPlans) { val allPlansResponse = diff --git a/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/transactiondetailsv2/BbpsTransactionDetailsViewModelV2.kt b/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/transactiondetailsv2/BbpsTransactionDetailsViewModelV2.kt index 1054a596c0..353a775846 100644 --- a/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/transactiondetailsv2/BbpsTransactionDetailsViewModelV2.kt +++ b/android/navi-bbps/src/main/kotlin/com/navi/bbps/feature/transactiondetailsv2/BbpsTransactionDetailsViewModelV2.kt @@ -323,7 +323,13 @@ constructor( } private suspend fun startTransactionStatusPolling() { + // If transaction status is pending, then start transaction status polling + // If not, check if bill acknowledgment status is pending, then start bill acknowledgment + // status if (!isTransactionStatusPending()) { + if (isBillAcknowledgmentStatusPending()) { + startBillAcknowledgmentStatusPolling() + } return } diff --git a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt index a501e692ed..1c14d2abf2 100644 --- a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt +++ b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt @@ -149,7 +149,10 @@ object FirebaseRemoteConfigHelper { const val NAVI_BBPS_CATEGORIES_CACHE_MILLIS = "NAVI_BBPS_CATEGORIES_CACHE_MILLIS" const val NAVI_BBPS_PREPAID_OPERATOR_CIRCLE_CACHE_KEY = "NAVI_BBPS_PREPAID_OPERATOR_CIRCLE_CACHE_KEY" - const val NAVI_BBPS_PREPAID_PLANS_CACHE_KEY = "NAVI_BBPS_PREPAID_PLANS_CACHE_KEY" + const val NAVI_BBPS_PREPAID_PLANS_CACHE_MILLIS = "NAVI_BBPS_PREPAID_PLANS_CACHE_MILLIS" + const val NAVI_BBPS_BILLER_LIST_CACHE_MILLIS = "NAVI_BBPS_BILLER_LIST_CACHE_MILLIS" + const val NAVI_BBPS_PHONE_SERIES_MAPPING_CACHE_MILLIS = + "NAVI_BBPS_PHONE_SERIES_MAPPING_CACHE_MILLIS" const val NAVI_LOCATION_DECIMAL_PRECISION = "NAVI_LOCATION_DECIMAL_PRECISION" const val NAVI_BBPS_AB_TESTING_EXPERIMENTS_CACHE_KEY = "NAVI_BBPS_AB_TESTING_EXPERIMENTS_CACHE_KEY"