From 3c80a5325410adaa5450d7a3aac6fcf972ddfc2c Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 6 Nov 2025 18:50:08 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/common/ui/tokens/TokenItemStateConverter.kt | 10 +++++++--- .../com/tangem/core/ui/components/token/TokenItem.kt | 1 - .../core/ui/components/token/internal/TokenTitle.kt | 8 ++++---- .../core/ui/components/token/state/TokenItemState.kt | 1 + .../transformers/converter/TokenListStateConverter.kt | 2 +- .../yield/supply/impl/main/model/YieldSupplyModel.kt | 4 ++-- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/common/ui/src/main/java/com/tangem/common/ui/tokens/TokenItemStateConverter.kt b/common/ui/src/main/java/com/tangem/common/ui/tokens/TokenItemStateConverter.kt index 2376f947d8..2d3c6e516a 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/tokens/TokenItemStateConverter.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/tokens/TokenItemStateConverter.kt @@ -48,8 +48,11 @@ class TokenItemStateConverter( private val iconStateProvider: (CryptoCurrencyStatus) -> CurrencyIconState = { CryptoCurrencyToIconStateConverter().convert(it) }, + private val onApyLabelClick: ((CryptoCurrencyStatus) -> Unit)? = null, private val titleStateProvider: (CryptoCurrencyStatus) -> TokenItemState.TitleState = { - createTitleState(it, yieldModuleApyMap, stakingApyMap) + createTitleState(it, yieldModuleApyMap, stakingApyMap, { + onApyLabelClick?.invoke(it) + }) }, private val subtitleStateProvider: (CryptoCurrencyStatus) -> TokenItemState.SubtitleState? = { createSubtitleState(it, appCurrency) @@ -62,7 +65,6 @@ class TokenItemStateConverter( }, private val onItemClick: ((TokenItemState, CryptoCurrencyStatus) -> Unit)? = null, private val onItemLongClick: ((TokenItemState, CryptoCurrencyStatus) -> Unit)? = null, - private val onApyLabelClick: ((TokenItemState, CryptoCurrencyStatus) -> Unit)? = null, ) : Converter { override fun convert(value: CryptoCurrencyStatus): TokenItemState { @@ -104,7 +106,7 @@ class TokenItemStateConverter( { onItemLongClick(it, this) } }, onApyLabelClick = onApyLabelClick?.let { onApyLabelClick -> - { onApyLabelClick(it, this) } + { onApyLabelClick(this) } }, ) } @@ -164,6 +166,7 @@ class TokenItemStateConverter( currencyStatus: CryptoCurrencyStatus, yieldModuleApyMap: Map, stakingApyMap: Map>, + onApyLabelClick: () -> Unit, ): TokenItemState.TitleState { return when (val value = currencyStatus.value) { is CryptoCurrencyStatus.Loading, @@ -188,6 +191,7 @@ class TokenItemStateConverter( hasPending = value.hasCurrentNetworkTransactions, earnApy = earnApyText, earnApyIsActive = isActive, + onApyLabelClick = onApyLabelClick, ) } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/token/TokenItem.kt b/core/ui/src/main/java/com/tangem/core/ui/components/token/TokenItem.kt index c3401e3a9e..68212fff41 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/token/TokenItem.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/token/TokenItem.kt @@ -110,7 +110,6 @@ fun TokenItem( TokenTitle( state = state.titleState, - onApyClick = { state.onApyLabelClick?.invoke(state) }, modifier = Modifier .layoutId(layoutId = LayoutId.TITLE) .padding(end = TangemTheme.dimens.spacing8) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/token/internal/TokenTitle.kt b/core/ui/src/main/java/com/tangem/core/ui/components/token/internal/TokenTitle.kt index 113bd58668..ed61f2011d 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/token/internal/TokenTitle.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/token/internal/TokenTitle.kt @@ -21,10 +21,10 @@ import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.components.token.state.TokenItemState.TitleState as TokenTitleState @Composable -internal fun TokenTitle(state: TokenTitleState?, onApyClick: () -> Unit, modifier: Modifier = Modifier) { +internal fun TokenTitle(state: TokenTitleState?, modifier: Modifier = Modifier) { when (state) { is TokenTitleState.Content -> { - ContentTitle(state = state, modifier = modifier, onApyClick = onApyClick) + ContentTitle(state = state, modifier = modifier) } is TokenTitleState.Loading -> { RectangleShimmer(modifier = modifier.placeholderSize(), radius = TangemTheme.dimens.radius4) @@ -37,7 +37,7 @@ internal fun TokenTitle(state: TokenTitleState?, onApyClick: () -> Unit, modifie } @Composable -private fun ContentTitle(state: TokenTitleState.Content, onApyClick: () -> Unit, modifier: Modifier = Modifier) { +private fun ContentTitle(state: TokenTitleState.Content, modifier: Modifier = Modifier) { Row( modifier = modifier, horizontalArrangement = Arrangement.spacedBy(space = TangemTheme.dimens.spacing6), @@ -64,7 +64,7 @@ private fun ContentTitle(state: TokenTitleState.Content, onApyClick: () -> Unit, modifier = Modifier .align(alignment = Alignment.CenterVertically) .clickable { - onApyClick() + state.onApyLabelClick?.invoke() }, ) } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/token/state/TokenItemState.kt b/core/ui/src/main/java/com/tangem/core/ui/components/token/state/TokenItemState.kt index f9ae59685b..1f8a4ea2b6 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/token/state/TokenItemState.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/token/state/TokenItemState.kt @@ -179,6 +179,7 @@ sealed class TokenItemState { val isAvailable: Boolean = true, val earnApy: TextReference? = null, val earnApyIsActive: Boolean = false, + val onApyLabelClick: (() -> Unit)? = null, ) : TitleState() data object Loading : TitleState() diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TokenListStateConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TokenListStateConverter.kt index c11ff8c4b1..7e7fcc6351 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TokenListStateConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/transformers/converter/TokenListStateConverter.kt @@ -59,7 +59,7 @@ internal class TokenListStateConverter( stakingApyMap = stakingApyMap, onItemClick = { _, status -> onTokenClick(accountId, status) }, onItemLongClick = { _, status -> onTokenLongClick(accountId, status) }, - onApyLabelClick = { _, status -> onApyLabelClick(status) }, + onApyLabelClick = { status -> onApyLabelClick(status) }, ) override fun convert(value: WalletTokensListState): WalletTokensListState { diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt index 36d3f0f8b6..b7e828f6fd 100644 --- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt +++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt @@ -91,8 +91,8 @@ internal class YieldSupplyModel @Inject constructor( init { checkIfYieldSupplyIsAvailable() - if (params.handleNavigation != null) { - if (params.handleNavigation == true) { + params.handleNavigation?.let { handle -> + if (handle) { modelScope.launch { delay(timeMillis = 1000) bottomSheetNavigation.activate(Unit)