Updated on 2026-08-14

This commit is contained in:
Tangem 2025-07-24 02:05:07 +05:00
parent 095c755362
commit 75e6da7cee
4 changed files with 24 additions and 4 deletions

View file

@ -216,6 +216,7 @@ sealed class CryptoCurrency {
private const val DERIVATION_PATH_DELIMITER = '\u2192' // →
private const val ID_PARTS_COUNT = 3
const val MAIN_NETWORK_TYPE_NAME = "MAIN"
/**
* Creates an [ID] from a string [value].

View file

@ -36,5 +36,6 @@ internal data class SwapChooseNetworkUM(
val subtitle: TextReference,
@DrawableRes val iconResId: Int,
val hasFixedRate: Boolean,
val isMainNetwork: Boolean,
val onNetworkClick: () -> Unit,
)

View file

@ -4,6 +4,7 @@ import com.tangem.core.ui.extensions.iconResId
import com.tangem.core.ui.extensions.stringReference
import com.tangem.domain.express.models.ExpressRateType
import com.tangem.domain.models.currency.CryptoCurrency
import com.tangem.domain.models.currency.CryptoCurrency.ID.Companion.MAIN_NETWORK_TYPE_NAME
import com.tangem.domain.swap.models.SwapCurrencies
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.entity.SwapChooseNetworkUM
import com.tangem.features.swap.v2.impl.choosetoken.fromSupported.entity.SwapChooseTokenNetworkContentUM
@ -21,10 +22,16 @@ internal class SwapChooseContentStateTransformer(
override fun transform(prevState: SwapChooseTokenNetworkUM): SwapChooseTokenNetworkUM {
val swapNetworks = pairs.fromGroup.available.map {
val network = it.currencyStatus.currency.network
val isMain = it.currencyStatus.currency is CryptoCurrency.Coin
SwapChooseNetworkUM(
title = stringReference(network.name),
subtitle = stringReference(network.standardType.name),
subtitle = if (isMain) {
stringReference(MAIN_NETWORK_TYPE_NAME)
} else {
stringReference(network.standardType.name)
},
iconResId = network.iconResId,
isMainNetwork = isMain,
hasFixedRate = it.providers.any { it.rateTypes.any { it == ExpressRateType.Fixed } },
onNetworkClick = { onNetworkClick(it.currencyStatus.currency) },
)

View file

@ -98,7 +98,7 @@ private fun SwapChooseTokenNetworkContentList(swapNetworks: ImmutableList<SwapCh
swapNetworks.fastForEach { network ->
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(12.dp),
horizontalArrangement = Arrangement.spacedBy(6.dp),
modifier = Modifier
.fillMaxWidth()
.clickable(
@ -117,14 +117,19 @@ private fun SwapChooseTokenNetworkContentList(swapNetworks: ImmutableList<SwapCh
contentDescription = null,
)
Text(
modifier = Modifier.padding(start = 6.dp),
text = network.title.resolveReference(),
style = TangemTheme.typography.subtitle2,
color = TangemTheme.colors.text.primary1,
)
Text(
text = network.subtitle.resolveReference(),
style = TangemTheme.typography.body2,
color = TangemTheme.colors.text.tertiary,
style = TangemTheme.typography.caption1,
color = if (network.isMainNetwork) {
TangemTheme.colors.text.accent
} else {
TangemTheme.colors.text.tertiary
},
)
if (network.hasFixedRate) {
SpacerWMax()
@ -218,6 +223,7 @@ private class PreviewProvider : PreviewParameterProvider<SwapChooseTokenNetworkC
iconResId = R.drawable.img_cardano_22,
hasFixedRate = false,
onNetworkClick = {},
isMainNetwork = true,
),
),
),
@ -243,6 +249,7 @@ private class PreviewProvider : PreviewParameterProvider<SwapChooseTokenNetworkC
iconResId = R.drawable.img_cardano_22,
hasFixedRate = false,
onNetworkClick = {},
isMainNetwork = true,
),
SwapChooseNetworkUM(
title = stringReference("BNB Smart Chain"),
@ -250,6 +257,7 @@ private class PreviewProvider : PreviewParameterProvider<SwapChooseTokenNetworkC
iconResId = R.drawable.img_bsc_22,
hasFixedRate = false,
onNetworkClick = {},
isMainNetwork = false,
),
SwapChooseNetworkUM(
title = stringReference("BNB Smart Chain"),
@ -257,6 +265,7 @@ private class PreviewProvider : PreviewParameterProvider<SwapChooseTokenNetworkC
iconResId = R.drawable.img_bsc_22,
hasFixedRate = true,
onNetworkClick = {},
isMainNetwork = false,
),
SwapChooseNetworkUM(
title = stringReference("BNB Smart Chain"),
@ -264,6 +273,7 @@ private class PreviewProvider : PreviewParameterProvider<SwapChooseTokenNetworkC
iconResId = R.drawable.img_bsc_22,
hasFixedRate = false,
onNetworkClick = {},
isMainNetwork = false,
),
),
),
@ -291,6 +301,7 @@ private class PreviewProvider : PreviewParameterProvider<SwapChooseTokenNetworkC
iconResId = R.drawable.img_cardano_22,
hasFixedRate = false,
onNetworkClick = {},
isMainNetwork = true,
),
)
}