From 0261ea8b710a9bc4e34a7ed4d23c0cee317fd15a Mon Sep 17 00:00:00 2001 From: Ujjwal Kumar Date: Sat, 25 Jan 2025 21:35:06 +0530 Subject: [PATCH] NTP-24754 | Added support for sync in arc home screen (#14676) --- .../common/arc/viewmodel/ArcHomeViewModel.kt | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/arc/viewmodel/ArcHomeViewModel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/arc/viewmodel/ArcHomeViewModel.kt index 2a97362916..7a0694ab1e 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/arc/viewmodel/ArcHomeViewModel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/arc/viewmodel/ArcHomeViewModel.kt @@ -12,6 +12,7 @@ import com.google.gson.Gson import com.navi.base.cache.repository.NaviCacheRepository import com.navi.common.constants.DBCacheConstants.ARC_NUDGE_RESPONSE_CACHE_KEY import com.navi.common.payments.arc.model.network.ArcNudgeResponse +import com.navi.common.payments.arc.usecase.ArcNudgeSyncUseCase import com.navi.common.payments.arc.util.getCoinDaysPairForBBPS import com.navi.common.payments.arc.util.getCoinDaysPairForUPI import com.navi.common.payments.arc.util.isArcProtectedEnabledForBbps @@ -38,6 +39,7 @@ constructor( private val naviCacheRepository: NaviCacheRepository, @NaviPayGsonBuilder private val gson: Gson, private val orderRepository: OrderRepository, + private val arcNudgeSyncUseCase: ArcNudgeSyncUseCase, ) : NaviPayBaseVM(), ArcHomeScreenContract { override val screenName: String @@ -50,7 +52,13 @@ constructor( override val effect = _effect.asSharedFlow() init { - viewModelScope.launch(Dispatchers.IO) { fetchAndUpdateArcHomeScreenData() } + viewModelScope.launch(Dispatchers.IO) { + fetchAndUpdateArcHomeScreenData() + arcNudgeSyncUseCase.execute(skipLastSyncedTimestampCheck = true) + + // ReUpdate screen with latest data + fetchAndUpdateArcHomeScreenData() + } } override fun onEvent(event: ArcHomeScreenContract.Event) { @@ -81,6 +89,16 @@ constructor( val localArcTransactionCounterFormatted = orderRepository.getLocalArcTransactionCounterFormatted() + updateStateWithArcNudgeResponse( + arcNudgeResponse = arcNudgeResponse, + localArcTransactionCounterFormatted = localArcTransactionCounterFormatted, + ) + } + + private fun updateStateWithArcNudgeResponse( + arcNudgeResponse: ArcNudgeResponse?, + localArcTransactionCounterFormatted: String, + ) { updateState( state.value.copy( localArcTransactionCountFormatted = localArcTransactionCounterFormatted,