Updated on 2026-08-14

This commit is contained in:
Tangem 2023-10-20 10:43:01 +03:00
parent de8dde89f6
commit 69c3e4c409
4 changed files with 34 additions and 3 deletions

View file

@ -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<Boolean>,
) {
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(),
),
)
}

View file

@ -26,4 +26,5 @@ data class Network(
data class TokenBalanceData(
val amount: String?,
val amountEquivalent: String?,
val isBalanceHidden: Boolean,
)

View file

@ -24,7 +24,11 @@ import kotlinx.collections.immutable.toImmutableList
@Suppress("LargeClass")
internal class StateBuilder(val actions: UiActions, val isBalanceHiddenProvider: Provider<Boolean>) {
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,
)
}

View file

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