Updated on 2026-08-14
This commit is contained in:
parent
ac1768a026
commit
7fb32453ca
6 changed files with 41 additions and 8 deletions
|
|
@ -37,8 +37,8 @@ data class TangemPayTxHistoryResponse(
|
|||
@Json(name = "memo") val memo: String? = null,
|
||||
@Json(name = "receipt") val receipt: Boolean,
|
||||
@Json(name = "merchant_name") val merchantName: String,
|
||||
@Json(name = "merchant_category") val merchantCategory: String?,
|
||||
@Json(name = "merchant_category_code") val merchantCategoryCode: String,
|
||||
@Json(name = "merchant_category") val merchantCategory: String? = null,
|
||||
@Json(name = "merchant_category_code") val merchantCategoryCode: String? = null,
|
||||
@Json(name = "merchant_id") val merchantId: String? = null,
|
||||
@Json(name = "enriched_merchant_icon") val enrichedMerchantIcon: String? = null,
|
||||
@Json(name = "enriched_merchant_name") val enrichedMerchantName: String? = null,
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ internal class TangemPayTxHistoryItemConverter(moshi: Moshi) :
|
|||
enrichedMerchantName = spend.enrichedMerchantName,
|
||||
merchantName = spend.merchantName,
|
||||
enrichedMerchantCategory = spend.enrichedMerchantCategory,
|
||||
merchantCategoryCode = spend.merchantCategoryCode,
|
||||
merchantCategory = spend.merchantCategory,
|
||||
status = TangemPayTxHistoryItemStatusConverter.convert(spend.status),
|
||||
enrichedMerchantIconUrl = spend.enrichedMerchantIcon,
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ sealed class TangemPayTxHistoryItem {
|
|||
val enrichedMerchantName: String?,
|
||||
val merchantName: String,
|
||||
val enrichedMerchantCategory: String?,
|
||||
val merchantCategoryCode: String?,
|
||||
val merchantCategory: String?,
|
||||
val status: Status,
|
||||
val enrichedMerchantIconUrl: String?,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
package com.tangem.features.tangempay.model.transformers
|
||||
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.domain.visa.model.TangemPayTxHistoryItem
|
||||
import com.tangem.features.tangempay.details.impl.R
|
||||
import com.tangem.utils.converter.Converter
|
||||
|
||||
internal object PaySpendSubtitleConverter : Converter<TangemPayTxHistoryItem.Spend, TextReference> {
|
||||
|
||||
override fun convert(value: TangemPayTxHistoryItem.Spend): TextReference {
|
||||
val merchantCategory = value.merchantCategory
|
||||
val enrichedMerchantCategory = value.enrichedMerchantCategory
|
||||
val merchantCategoryCode = value.merchantCategoryCode
|
||||
return when {
|
||||
// if merchantCategory isNotEmpty use this
|
||||
!merchantCategory.isNullOrEmpty() -> stringReference(merchantCategory)
|
||||
|
||||
// If merchantCategory empty or null but enrichedMerchantCategory is not empty
|
||||
!enrichedMerchantCategory.isNullOrEmpty() -> stringReference(enrichedMerchantCategory)
|
||||
|
||||
// If both empty/null but merchantCategoryCode is not empty
|
||||
!merchantCategoryCode.isNullOrEmpty() -> stringReference(merchantCategoryCode)
|
||||
|
||||
// If all are empty/null, display "Other"
|
||||
else -> resourceReference(R.string.tangem_pay_other)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -23,6 +23,8 @@ internal object TangemPayTxHistoryDetailsConverter :
|
|||
Converter<TangemPayTxHistoryDetailsConverter.Input, TangemPayTxHistoryDetailsUM> {
|
||||
private val dateFormatter = DateTimeFormatters.getBestFormatterBySkeleton("dd MMMM")
|
||||
|
||||
private val paySpendSubtitleConverter = PaySpendSubtitleConverter
|
||||
|
||||
override fun convert(value: Input): TangemPayTxHistoryDetailsUM {
|
||||
val transaction = value.item
|
||||
return TangemPayTxHistoryDetailsUM(
|
||||
|
|
@ -79,10 +81,7 @@ internal object TangemPayTxHistoryDetailsConverter :
|
|||
is TangemPayTxHistoryItem.Fee -> resourceReference(R.string.tangem_pay_fee_subtitle)
|
||||
is TangemPayTxHistoryItem.Payment -> resourceReference(R.string.common_transfer)
|
||||
is TangemPayTxHistoryItem.Collateral -> resourceReference(R.string.common_transfer)
|
||||
is TangemPayTxHistoryItem.Spend -> {
|
||||
val subtitle = merchantCategory ?: enrichedMerchantCategory
|
||||
subtitle?.let(::stringReference) ?: resourceReference(R.string.tangem_pay_other)
|
||||
}
|
||||
is TangemPayTxHistoryItem.Spend -> paySpendSubtitleConverter.convert(this)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ import org.joda.time.DateTimeZone
|
|||
internal class TangemPayTxHistoryItemsConverter(
|
||||
private val txHistoryUiActions: TangemPayTxHistoryUiActions,
|
||||
) : Converter<TangemPayTxHistoryItem, TangemPayTransactionState.Content> {
|
||||
|
||||
private val paySpendSubtitleConverter = PaySpendSubtitleConverter
|
||||
|
||||
override fun convert(value: TangemPayTxHistoryItem): TangemPayTransactionState.Content {
|
||||
return when (value) {
|
||||
is TangemPayTxHistoryItem.Spend -> convertSpend(spend = value)
|
||||
|
|
@ -39,7 +42,6 @@ internal class TangemPayTxHistoryItemsConverter(
|
|||
val amount = amountPrefix + spend.amount.format {
|
||||
fiat(fiatCurrencyCode = spend.currency.currencyCode, fiatCurrencySymbol = spend.currency.symbol)
|
||||
}
|
||||
val subtitle = spend.merchantCategory ?: spend.enrichedMerchantCategory
|
||||
return TangemPayTransactionState.Content.Spend(
|
||||
id = spend.id,
|
||||
onClick = { txHistoryUiActions.onTransactionClick(spend) },
|
||||
|
|
@ -51,7 +53,7 @@ internal class TangemPayTxHistoryItemsConverter(
|
|||
}
|
||||
},
|
||||
title = stringReference(spend.enrichedMerchantName ?: spend.merchantName),
|
||||
subtitle = subtitle?.let(::stringReference) ?: resourceReference(R.string.tangem_pay_other),
|
||||
subtitle = paySpendSubtitleConverter.convert(spend),
|
||||
time = DateTimeFormatters.formatDate(localDate, DateTimeFormatters.timeFormatter),
|
||||
icon = spend.enrichedMerchantIconUrl?.let(ImageReference::Url)
|
||||
?: ImageReference.Res(R.drawable.ic_category_24),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue