diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt index 4b26019576..dbdd8d5ea9 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt @@ -31,6 +31,7 @@ import kotlinx.coroutines.flow.MutableStateFlow */ internal class WalletSkeletonStateConverter( private val currentStateProvider: Provider, + private val isBalanceHiddenProvider: Provider, private val clickIntents: WalletClickIntents, ) : Converter { @@ -55,7 +56,7 @@ internal class WalletSkeletonStateConverter( bottomSheetConfig = null, tokenActionsBottomSheet = null, onManageTokensClick = clickIntents::onManageTokensClick, - isBalanceHidden = true, + isBalanceHidden = isBalanceHiddenProvider(), ) } @@ -74,7 +75,7 @@ internal class WalletSkeletonStateConverter( value = TxHistoryState.getDefaultLoadingTransactions(clickIntents::onExploreClick), ), ), - isBalanceHidden = true, + isBalanceHidden = isBalanceHiddenProvider(), ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletStateFactory.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletStateFactory.kt index 1c13a73e30..d8ea0d3ff9 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletStateFactory.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletStateFactory.kt @@ -45,12 +45,19 @@ internal class WalletStateFactory( private val currentCardTypeResolverProvider: Provider, private val currentWalletProvider: Provider, private val appCurrencyProvider: Provider, + private val isBalanceHiddenProvider: Provider, private val clickIntents: WalletClickIntents, ) { private val tokenActionsProvider by lazy { TokenActionsProvider(clickIntents) } - private val skeletonConverter by lazy { WalletSkeletonStateConverter(currentStateProvider, clickIntents) } + private val skeletonConverter by lazy { + WalletSkeletonStateConverter( + currentStateProvider = currentStateProvider, + isBalanceHiddenProvider = isBalanceHiddenProvider, + clickIntents = clickIntents, + ) + } private val walletsUnlockStateConverter by lazy { WalletsUnlockStateConverter(currentStateProvider, clickIntents) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt index 7f14b96010..20d3f08f1a 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt @@ -139,6 +139,8 @@ internal class WalletViewModel @Inject constructor( clickIntents = this, ) + private var isBalanceHidden = true + private val stateFactory = WalletStateFactory( currentStateProvider = Provider { uiState }, currentCardTypeResolverProvider = Provider { @@ -150,6 +152,7 @@ internal class WalletViewModel @Inject constructor( wallets[requireNotNull(uiState as? WalletState.ContentState).walletsListConfig.selectedWalletIndex] }, appCurrencyProvider = Provider(selectedAppCurrencyFlow::value), + isBalanceHiddenProvider = Provider { isBalanceHidden }, clickIntents = this, ) @@ -199,6 +202,7 @@ internal class WalletViewModel @Inject constructor( isBalanceHiddenUseCase() .flowWithLifecycle(owner.lifecycle) .onEach { hidden -> + isBalanceHidden = hidden WalletStateCache.updateAll { copySealed(isBalanceHidden = hidden) } uiState = stateFactory.getHiddenBalanceState(isBalanceHidden = hidden) }