NTP-24754 | Added support for sync in arc home screen (#14676)

This commit is contained in:
Ujjwal Kumar
2025-01-25 21:35:06 +05:30
committed by GitHub
parent c8fdf0ebc2
commit 0261ea8b71

View File

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