diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt index 4582c81540..395b68dd3b 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayCardDetailsBlockModel.kt @@ -21,11 +21,14 @@ import com.tangem.features.tangempay.model.transformers.DetailsRevealedStateTran import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.JobHolder import com.tangem.utils.coroutines.saveIn +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.launch import javax.inject.Inject import com.tangem.utils.transformer.update as transformerUpdate +private const val SHOW_DETAILS_TIME = 30_000L + @Stable @ModelScoped internal class TangemPayCardDetailsBlockModel @Inject constructor( @@ -49,6 +52,7 @@ internal class TangemPayCardDetailsBlockModel @Inject constructor( field = MutableStateFlow(stateFactory.getInitialState()) private val revealCardDetailsJobHolder = JobHolder() + private val showCardDetailsTimerJobHolder = JobHolder() init { subscribeToCardFrozenState() @@ -82,6 +86,7 @@ internal class TangemPayCardDetailsBlockModel @Inject constructor( onClickHide = ::hideCardDetails, ), ) + launchShowDetailsTimer() } .onLeft { uiState.transformerUpdate(transformer = DetailsHiddenStateTransformer(stateFactory)) @@ -90,6 +95,13 @@ internal class TangemPayCardDetailsBlockModel @Inject constructor( }.saveIn(revealCardDetailsJobHolder) } + private fun launchShowDetailsTimer() { + modelScope.launch { + delay(SHOW_DETAILS_TIME) + hideCardDetails() + }.saveIn(showCardDetailsTimerJobHolder) + } + fun hideCardDetails() { modelScope.launch { revealCardDetailsJobHolder.cancel()