From cd7a23cbd6c3c5c7f7303c4cd8da83941fb357ec Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 5 Mar 2026 17:03:29 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../visa/utils/TangemPayTxHistoryItemConverter.kt | 2 ++ .../domain/visa/model/TangemPayTxHistoryItem.kt | 1 + .../TangemPayTxHistoryDetailsConverter.kt | 8 ++++++-- .../transformers/TangemPayTxHistoryItemsConverter.kt | 8 ++++++-- .../common/preview/WalletScreenPreviewDataLegacy.kt | 11 ++++++++--- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt index 23187867a8..be1d69448d 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/TangemPayTxHistoryItemConverter.kt @@ -6,6 +6,7 @@ import com.tangem.domain.visa.model.TangemPayTxHistoryItem import com.tangem.utils.converter.Converter import com.tangem.utils.extensions.isPositive import com.tangem.utils.extensions.isZero +import com.tangem.utils.extensions.orZero import org.joda.time.DateTime import org.joda.time.DateTimeZone import timber.log.Timber @@ -37,6 +38,7 @@ internal class TangemPayTxHistoryItemConverter(moshi: Moshi) : date = spend.authorizedAt.withLocalZone(), amount = spend.amount, currency = Currency.getInstance(spend.currency), + authorizedAmount = spend.authorizedAmount.orZero(), localAmount = spend.localAmount, localCurrency = spend.localCurrency?.let(Currency::getInstance), enrichedMerchantName = spend.enrichedMerchantName, diff --git a/domain/visa/models/src/main/kotlin/com/tangem/domain/visa/model/TangemPayTxHistoryItem.kt b/domain/visa/models/src/main/kotlin/com/tangem/domain/visa/model/TangemPayTxHistoryItem.kt index 33289fa8f7..8f2196bef9 100644 --- a/domain/visa/models/src/main/kotlin/com/tangem/domain/visa/model/TangemPayTxHistoryItem.kt +++ b/domain/visa/models/src/main/kotlin/com/tangem/domain/visa/model/TangemPayTxHistoryItem.kt @@ -20,6 +20,7 @@ sealed class TangemPayTxHistoryItem { override val date: SerializedDateTime, override val amount: SerializedBigDecimal, override val currency: SerializedCurrency, + val authorizedAmount: SerializedBigDecimal, val localAmount: SerializedBigDecimal?, val localCurrency: SerializedCurrency?, val enrichedMerchantName: String?, diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt index 4a1de8ef38..5c7945309d 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt @@ -115,13 +115,17 @@ internal object TangemPayTxHistoryDetailsConverter : this.amount.isPositive() -> StringsSigns.MINUS else -> StringsSigns.PLUS } - val amount = this.amount.abs().format { + val amount = when (this.status) { + TangemPayTxHistoryItem.Status.DECLINED -> this.authorizedAmount + else -> this.amount + } + val formattedAmount = amount.abs().format { fiat( fiatCurrencyCode = this@extractAmount.currency.currencyCode, fiatCurrencySymbol = this@extractAmount.currency.symbol, ) } - amountPrefix + amount + amountPrefix + formattedAmount } is TangemPayTxHistoryItem.Collateral -> { val amountPrefix = when { diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt index e868de30a5..7ce0c8be84 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryItemsConverter.kt @@ -41,13 +41,17 @@ internal class TangemPayTxHistoryItemsConverter( spend.status == TangemPayTxHistoryItem.Status.DECLINED || spend.amount.isPositive() -> StringsSigns.MINUS else -> StringsSigns.PLUS } - val amount = amountPrefix + spend.amount.abs().format { + val amount = when (spend.status) { + TangemPayTxHistoryItem.Status.DECLINED -> spend.authorizedAmount + else -> spend.amount + } + val formattedAmount = amountPrefix + amount.abs().format { fiat(fiatCurrencyCode = spend.currency.currencyCode, fiatCurrencySymbol = spend.currency.symbol) } return TangemPayTransactionState.Content.Spend( id = spend.id, onClick = { txHistoryUiActions.onTransactionClick(spend) }, - amount = amount, + amount = formattedAmount, amountColor = themedColor { when { spend.status == TangemPayTxHistoryItem.Status.DECLINED -> TangemTheme.colors.text.warning diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewDataLegacy.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewDataLegacy.kt index be54495064..3f4ca9070d 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewDataLegacy.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/preview/WalletScreenPreviewDataLegacy.kt @@ -50,9 +50,9 @@ internal object WalletScreenPreviewDataLegacy { private val textContentTokensState = WalletTokensListState.ContentState.Content( items = persistentListOf( - TokensListItemUM.GroupTitle(id = 1, text = stringReference("Network Bitcoin")), + TokensListItemUM.GroupTitle(id = 111, text = stringReference("Network Bitcoin")), TokensListItemUM.Token(state = tokenItemState), - TokensListItemUM.GroupTitle(id = 2, text = stringReference("Network Ethereum")), + TokensListItemUM.GroupTitle(id = 222, text = stringReference("Network Ethereum")), TokensListItemUM.Token( state = tokenItemState.copy( id = "2", @@ -210,7 +210,12 @@ internal object WalletScreenPreviewDataLegacy { isFlickering = false, onItemClick = { }, ), - tangemPayState = TangemPayState.Empty, + tangemPayState = TangemPayState.Card( + lastFourDigits = stringReference("*1234"), + balanceText = stringReference("$10"), + balanceSymbol = stringReference("USDC"), + onClick = {}, + ), type = WalletType.Cold, ) }