diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt index 82db22b95a..2454768e9c 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt @@ -165,6 +165,7 @@ internal class StakingModel @Inject constructor( } private var isInitialInfoAnalyticSent: Boolean = false + private var isBalanceUpdatedAfterStart: Boolean = false private val balanceUpdater by lazy(LazyThreadSafetyMode.NONE) { stakingBalanceUpdater.create( @@ -421,7 +422,7 @@ internal class StakingModel @Inject constructor( override fun onRefreshSwipe(isRefreshing: Boolean) { stateController.update(SetInitialLoadingStateTransformer(isRefreshing)) coroutineScope.launch { - balanceUpdater.updatePullToRefresh() + balanceUpdater.partialUpdate() }.invokeOnCompletion { stateController.update(SetInitialLoadingStateTransformer(false)) } @@ -1011,7 +1012,11 @@ internal class StakingModel @Inject constructor( when { isInitState() -> { updateInitialData(status) - balanceUpdater.updateAfterNavigationToInitial() + + if (!isBalanceUpdatedAfterStart) { + isBalanceUpdatedAfterStart = true + balanceUpdater.partialUpdate() + } } isAssentState() -> { getFee() diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt index 22e12b38e9..0bb0d545b7 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/helpers/StakingBalanceUpdater.kt @@ -51,7 +51,7 @@ internal class StakingBalanceUpdater @AssistedInject constructor( } } - suspend fun updatePullToRefresh() { + suspend fun partialUpdate() { coroutineScope { listOf( async { @@ -64,12 +64,6 @@ internal class StakingBalanceUpdater @AssistedInject constructor( } } - suspend fun updateAfterNavigationToInitial() { - coroutineScope { - async { updateStakingActions() }.await() - } - } - private suspend fun fetchCurrencyStatus(delayMillis: Long = 0L) { delay(delayMillis) fetchCurrencyStatusUseCase(