Updated on 2026-08-14

This commit is contained in:
Tangem 2026-04-27 13:44:10 +02:00
parent 2d0bc9d9e6
commit ac9a3d15c3
28 changed files with 1528 additions and 127 deletions

View file

@ -7,6 +7,7 @@ import com.tangem.common.ui.account.CryptoPortfolioIconConverter
import com.tangem.common.ui.account.toUM
import com.tangem.common.ui.markets.action.CryptoCurrencyData
import com.tangem.common.ui.markets.action.TokenActionsHandler
import com.tangem.core.ui.DesignFeatureToggles
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.domain.account.models.AccountStatusList
@ -53,6 +54,7 @@ internal class MarketsPortfolioDelegate @AssistedInject constructor(
private val getCryptoCurrencyActionsUseCase: GetCryptoCurrencyActionsUseCaseV2,
private val getUserWalletUseCase: GetUserWalletUseCase,
private val yieldSupplyGetAvailabilityUseCase: YieldSupplyGetAvailabilityUseCase,
private val designFeatureToggles: DesignFeatureToggles,
isAccountsModeEnabledUseCase: IsAccountsModeEnabledUseCase,
@Assisted private val scope: CoroutineScope,
@Assisted private val token: TokenMarketParams,
@ -229,6 +231,7 @@ internal class MarketsPortfolioDelegate @AssistedInject constructor(
isBalanceHidden = isBalanceHidden,
onTokenItemClick = { },
tokenActionsHandler = tokenActionsHandler,
isRedesignEnabled = designFeatureToggles.isRedesignEnabled,
)
portfolio.portfolios.forEach { portfolioItem ->
@ -253,6 +256,8 @@ internal class MarketsPortfolioDelegate @AssistedInject constructor(
userWallet = userWallet,
status = currencyStatus,
actions = actions,
isAccountMode = isAccountMode,
account = accountWithAdded.accountStatus,
)
val expandedKey = portfolioItem.userWallet.walletId to currencyStatus.currency.id
val isExpand = expanded.contains(expandedKey)

View file

@ -22,6 +22,7 @@ internal class PortfolioTokenUMConverter(
private val isBalanceHidden: Boolean,
private val onTokenItemClick: (CryptoCurrencyStatus) -> Unit,
private val tokenActionsHandler: TokenActionsHandler,
private val isRedesignEnabled: Boolean,
) : Converter<CryptoCurrencyData, PortfolioTokenUM> {
fun convertV2(
@ -38,7 +39,11 @@ internal class PortfolioTokenUMConverter(
walletId = value.userWallet.walletId,
isBalanceHidden = isBalanceHidden,
isQuickActionsShown = isQuickActionsShown,
quickActions = quickActions(cryptoData = value, tokenActionsHandler = tokenActionsHandler),
quickActions = quickActions(
cryptoData = value,
tokenActionsHandler = tokenActionsHandler,
isRedesignEnabled = isRedesignEnabled,
),
)
}
@ -57,7 +62,11 @@ internal class PortfolioTokenUMConverter(
walletId = value.userWallet.walletId,
isBalanceHidden = isBalanceHidden,
isQuickActionsShown = false,
quickActions = quickActions(cryptoData = value, tokenActionsHandler = tokenActionsHandler),
quickActions = quickActions(
cryptoData = value,
tokenActionsHandler = tokenActionsHandler,
isRedesignEnabled = isRedesignEnabled,
),
)
}
}

View file

@ -180,7 +180,7 @@ private fun AnimatedVisibilityScope.QuickActionIcon(state: QuickActionUM) {
)
.size(TangemTheme.dimens.size32)
.semantics {
contentDescription = if (state is QuickActionUM.Exchange && state.shouldShowBadge) {
contentDescription = if (state is QuickActionUM.V1.Exchange && state.shouldShowBadge) {
"Badge shown"
} else {
"Badge hidden"
@ -188,7 +188,7 @@ private fun AnimatedVisibilityScope.QuickActionIcon(state: QuickActionUM) {
}
.drawWithContent {
drawContent()
if (state is QuickActionUM.Exchange && state.shouldShowBadge) {
if (state is QuickActionUM.V1.Exchange && state.shouldShowBadge) {
drawBadge(containerColor = containerColor, offset = 4.dp)
}
},
@ -229,9 +229,9 @@ private fun Preview() {
) {
PortfolioQuickActions(
actions = persistentListOf(
QuickActionUM.Buy,
QuickActionUM.Exchange(shouldShowBadge = true),
QuickActionUM.Receive,
QuickActionUM.V1.Buy,
QuickActionUM.V1.Exchange(shouldShowBadge = true),
QuickActionUM.V1.Receive,
),
isVisible = isVisible,
onActionClick = {},
@ -250,9 +250,9 @@ private fun PreviewRtl() {
Box(modifier = Modifier.background(color = TangemTheme.colors.background.action)) {
PortfolioQuickActions(
actions = persistentListOf(
QuickActionUM.Buy,
QuickActionUM.Exchange(shouldShowBadge = true),
QuickActionUM.Receive,
QuickActionUM.V1.Buy,
QuickActionUM.V1.Exchange(shouldShowBadge = true),
QuickActionUM.V1.Receive,
),
isVisible = true,
onActionClick = {},

View file

@ -129,9 +129,9 @@ internal class PreviewMyPortfolioUMProvider : PreviewParameterProvider<MyPortfol
isQuickActionsShown = false,
quickActions = QuickActions(
actions = persistentListOf(
QuickActionUM.Buy,
QuickActionUM.Exchange(shouldShowBadge = true),
QuickActionUM.Receive,
QuickActionUM.V1.Buy,
QuickActionUM.V1.Exchange(shouldShowBadge = true),
QuickActionUM.V1.Receive,
),
onQuickActionClick = {},
onQuickActionLongClick = {},