From 6f3007f0e335b44c8ec9ad7a9319a8b5e6f645e6 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 29 Jun 2026 18:13:29 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/core/ui/ds/image/DeviceIcon.kt | 2 +- .../model/ChooseTokenPortfolioFullBlockUM.kt | 2 ++ .../model/PortfolioFullBlockDelegate.kt | 5 +++++ .../impl/choosetoken/ui/ChooseTokenScreen.kt | 21 +++++++++++++++++-- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/ds/image/DeviceIcon.kt b/core/ui/src/main/java/com/tangem/core/ui/ds/image/DeviceIcon.kt index 0ab1068bb0..87767f8fd1 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/ds/image/DeviceIcon.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/ds/image/DeviceIcon.kt @@ -18,7 +18,7 @@ import com.tangem.core.ui.res.TangemThemePreviewRedesign import com.tangem.core.ui.res.generated.icons.Icons import com.tangem.core.ui.res.generated.icons.ic_cloud_24_filled -private const val DEFAULT_DEVICE_ICON_COLOR = 0xFF2C2C2C +private const val DEFAULT_DEVICE_ICON_COLOR = 0xFF595963 private const val DEFAULT_BORDER_COLOR = 0x1A1E1E1E /** diff --git a/features/common-features/api/src/main/java/com/tangem/features/commonfeatures/api/choosetoken/model/ChooseTokenPortfolioFullBlockUM.kt b/features/common-features/api/src/main/java/com/tangem/features/commonfeatures/api/choosetoken/model/ChooseTokenPortfolioFullBlockUM.kt index 97a3274e8b..d5d9e35c13 100644 --- a/features/common-features/api/src/main/java/com/tangem/features/commonfeatures/api/choosetoken/model/ChooseTokenPortfolioFullBlockUM.kt +++ b/features/common-features/api/src/main/java/com/tangem/features/commonfeatures/api/choosetoken/model/ChooseTokenPortfolioFullBlockUM.kt @@ -2,6 +2,7 @@ package com.tangem.features.commonfeatures.api.choosetoken.model import androidx.compose.runtime.Immutable import com.tangem.core.ui.components.tokenlist.state.TokensListItemUM +import com.tangem.core.ui.ds.image.DeviceIconUM import com.tangem.core.ui.extensions.TextReference import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -22,6 +23,7 @@ data class WalletTabUM( val count: TextReference?, val isSelected: Boolean, val onClick: () -> Unit, + val deviceIcon: DeviceIconUM, ) @Immutable diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/model/PortfolioFullBlockDelegate.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/model/PortfolioFullBlockDelegate.kt index 1b7b276b63..4050295fce 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/model/PortfolioFullBlockDelegate.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/model/PortfolioFullBlockDelegate.kt @@ -1,5 +1,6 @@ package com.tangem.features.commonfeatures.impl.choosetoken.model +import com.tangem.common.ui.userwallet.converter.WalletIconUMConverter import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.stringReference import com.tangem.domain.models.wallet.UserWallet @@ -7,6 +8,7 @@ import com.tangem.domain.models.wallet.UserWalletId import com.tangem.domain.models.wallet.isMultiCurrency import com.tangem.domain.wallets.usecase.GetSelectedWalletUseCase import com.tangem.domain.wallets.usecase.GetUserWalletUseCase +import com.tangem.domain.wallets.usecase.GetWalletIconUseCase import com.tangem.domain.wallets.usecase.GetWalletsUseCase import com.tangem.features.commonfeatures.api.choosetoken.ChooseTokenBridge import com.tangem.features.commonfeatures.api.choosetoken.ChooseTokenBridgeInternal.SearchQuery @@ -30,6 +32,8 @@ internal class PortfolioFullBlockDelegate @AssistedInject constructor( private val settingContextUseCase: SettingContextUseCase, private val getWalletsUseCase: GetWalletsUseCase, private val getUserWalletUseCase: GetUserWalletUseCase, + private val getWalletIconUseCase: GetWalletIconUseCase, + private val walletIconUMConverter: WalletIconUMConverter, private val dispatchers: CoroutineDispatcherProvider, private val selectedWalletUseCase: GetSelectedWalletUseCase, @Assisted private val modelScope: CoroutineScope, @@ -87,6 +91,7 @@ internal class PortfolioFullBlockDelegate @AssistedInject constructor( onClick = { selectWalletTab(walletId) }, isSelected = selectedWalletId == walletId, count = searchResultCount, + deviceIcon = walletIconUMConverter.convert(getWalletIconUseCase(wallet)), ) } val walletListUM = if (walletsUM.size != 1) { diff --git a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt index 18fbcd8716..e455ef9b71 100644 --- a/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt +++ b/features/common-features/impl/src/main/java/com/tangem/features/commonfeatures/impl/choosetoken/ui/ChooseTokenScreen.kt @@ -12,6 +12,7 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag @@ -38,6 +39,8 @@ import com.tangem.core.ui.components.tokenlist.state.PortfolioItemContentUM import com.tangem.core.ui.components.tokenlist.state.PortfolioTokensListItemUM import com.tangem.core.ui.components.tokenlist.state.TokensListItemUM import com.tangem.core.ui.decorations.roundedShapeItemDecoration +import com.tangem.core.ui.ds.image.DeviceIconUM +import com.tangem.core.ui.ds.image.TangemDeviceIcon import com.tangem.core.ui.extensions.* import com.tangem.core.ui.res.LocalRedesignEnabled import com.tangem.core.ui.res.TangemTheme @@ -262,6 +265,13 @@ private fun WalletTabItem(state: WalletTabUM, modifier: Modifier = Modifier) { style = TangemTheme.typography2.bodySemibold16, ) + Spacer(modifier = Modifier.width(4.dp)) + + TangemDeviceIcon( + state = state.deviceIcon, + modifier = Modifier.size(20.dp), + ) + val count = state.count if (count != null) { Spacer(modifier = Modifier.width(8.dp)) @@ -464,24 +474,31 @@ private val wallets isSelected = true, onClick = {}, count = null, + deviceIcon = DeviceIconUM.Card( + mainColor = Color.DarkGray, + secondColor = null, + ), ), WalletTabUM( text = TextReference.Str(value = "Wallet 1"), isSelected = true, onClick = {}, - count = stringReference("3"), + count = null, + deviceIcon = DeviceIconUM.Mobile, ), WalletTabUM( text = TextReference.Str(value = "Wallet 2"), isSelected = false, onClick = {}, - count = stringReference("333"), + count = stringReference("3"), + deviceIcon = DeviceIconUM.Ring(), ), WalletTabUM( text = TextReference.Str(value = "Wallet 3"), isSelected = false, onClick = {}, count = null, + deviceIcon = DeviceIconUM.Mobile, ), )