From 69c3e4c409cf38ef4956a1298bde878b245b3524 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 20 Oct 2023 10:43:01 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../swap/converters/TokensDataConverter.kt | 3 +++ .../swap/models/SwapSelectTokenStateHolder.kt | 1 + .../com/tangem/feature/swap/ui/StateBuilder.kt | 15 ++++++++++++++- .../feature/swap/ui/SwapSelectTokenScreen.kt | 18 ++++++++++++++++-- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt index 7491904442..cee76edbb1 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/converters/TokensDataConverter.kt @@ -1,5 +1,6 @@ package com.tangem.feature.swap.converters +import com.tangem.common.Provider import com.tangem.feature.swap.domain.models.domain.Currency import com.tangem.feature.swap.domain.models.domain.NetworkInfo import com.tangem.feature.swap.domain.models.ui.FoundTokensState @@ -12,6 +13,7 @@ import com.tangem.feature.swap.models.TokenToSelect class TokensDataConverter( private val onSearchEntered: (String) -> Unit, private val onTokenSelected: (String) -> Unit, + private val isBalanceHiddenProvider: Provider, ) { fun convertWithNetwork(value: FoundTokensState, network: NetworkInfo): SwapSelectTokenStateHolder { @@ -34,6 +36,7 @@ class TokensDataConverter( addedTokenBalanceData = TokenBalanceData( amount = tokenWithBalance.tokenBalanceData?.amount, amountEquivalent = tokenWithBalance.tokenBalanceData?.amountEquivalent, + isBalanceHidden = isBalanceHiddenProvider.invoke(), ), ) } diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapSelectTokenStateHolder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapSelectTokenStateHolder.kt index b51831dedb..2e48e108cc 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapSelectTokenStateHolder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/models/SwapSelectTokenStateHolder.kt @@ -26,4 +26,5 @@ data class Network( data class TokenBalanceData( val amount: String?, val amountEquivalent: String?, + val isBalanceHidden: Boolean, ) \ No newline at end of file diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt index abe4083ee3..5034c69a3f 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt @@ -24,7 +24,11 @@ import kotlinx.collections.immutable.toImmutableList @Suppress("LargeClass") internal class StateBuilder(val actions: UiActions, val isBalanceHiddenProvider: Provider) { - private val tokensDataConverter = TokensDataConverter(actions.onSearchEntered, actions.onTokenSelected) + private val tokensDataConverter = TokensDataConverter( + onSearchEntered = actions.onSearchEntered, + onTokenSelected = actions.onTokenSelected, + isBalanceHiddenProvider = isBalanceHiddenProvider, + ) fun createInitialLoadingState(initialCurrency: Currency, networkInfo: NetworkInfo): SwapStateHolder { return SwapStateHolder( @@ -269,9 +273,18 @@ internal class StateBuilder(val actions: UiActions, val isBalanceHiddenProvider: val patchedReceiveCardData = uiState.receiveCardData.copy( isBalanceHidden = isBalanceHidden, ) + val selectTokenState = uiState.selectTokenState?.copy( + addedTokens = uiState.selectTokenState.addedTokens.map { + it.copy( + addedTokenBalanceData = it.addedTokenBalanceData?.copy(isBalanceHidden = isBalanceHidden), + ) + }, + ) + return uiState.copy( sendCardData = patchedSendCardData, receiveCardData = patchedReceiveCardData, + selectTokenState = selectTokenState, ) } diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt index 497e3f2335..566447924f 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import coil.compose.SubcomposeAsyncImage import coil.request.ImageRequest +import com.tangem.common.Strings import com.tangem.core.ui.components.CircleShimmer import com.tangem.core.ui.components.CurrencyPlaceholderIcon import com.tangem.core.ui.components.SpacerW2 @@ -185,13 +186,25 @@ private fun TokenItem(token: TokenToSelect, network: Network, screenBackgroundCo modifier = Modifier.padding(start = TangemTheme.dimens.spacing8), ) { Text( - text = token.addedTokenBalanceData.amountEquivalent.orEmpty(), + text = if (token.addedTokenBalanceData.isBalanceHidden && + !token.addedTokenBalanceData.amountEquivalent.isNullOrEmpty() + ) { + Strings.STARS + } else { + token.addedTokenBalanceData.amountEquivalent.orEmpty() + }, style = TangemTheme.typography.subtitle1, color = TangemTheme.colors.text.primary1, ) SpacerW2() Text( - text = token.addedTokenBalanceData.amount.orEmpty(), + text = if (token.addedTokenBalanceData.isBalanceHidden && + !token.addedTokenBalanceData.amount.isNullOrEmpty() + ) { + Strings.STARS + } else { + token.addedTokenBalanceData.amount.orEmpty() + }, style = TangemTheme.typography.caption2, color = TangemTheme.colors.text.tertiary, ) @@ -264,6 +277,7 @@ private val token = TokenToSelect( amount = "15 000 $", amountEquivalent = "15 000 " + "USDT", + isBalanceHidden = false, ), )