diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt b/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt index c7386eb7f0..83f6b0e3aa 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt @@ -54,8 +54,6 @@ fun BigDecimal.toFormattedFiatValue(fiatCurrencyName: String): String { return "≈ ${fiatCurrencyName}  $this" } -fun CurrenciesResponse.Currency.toFormattedString(): String = "${this.name} (${this.code}) - ${this.unit}" - fun BigDecimal.stripZeroPlainString(): String = this.stripTrailingZeros().toPlainString() // 0.00 -> 0.00 @@ -89,4 +87,26 @@ fun BigDecimal.isGreaterThanOrEqual(value: BigDecimal): Boolean { fun BigDecimal.isLessThanOrEqual(value: BigDecimal): Boolean { val compareResult = this.compareTo(value) return compareResult == -1 || compareResult == 0 +} + +fun BigDecimal.formatAmountAsSpannedString( + currencySymbol: String, + integerPartSizeProportion: Float = 1.4f +): SpannedString { + val amount = this.scaleToFiat(applyPrecision = true) + .stripZeroPlainString() + val integer = amount.substringAfter('.') + val reminder = amount.substringBefore('.') + + return buildSpannedString { + append( + integer, + RelativeSizeSpan(integerPartSizeProportion), + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE + ) + append('.') + append(reminder) + append(' ') + append(currencySymbol) + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt index fc97a44777..996be5039a 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt @@ -5,6 +5,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.tangem.common.card.Card import com.tangem.domain.common.TapWorkarounds.derivationStyle import com.tangem.domain.common.TapWorkarounds.isTestCard +import com.tangem.tap.common.extensions.formatAmountAsSpannedString import com.tangem.tap.common.extensions.hide import com.tangem.tap.common.extensions.show import com.tangem.tap.common.redux.StateDialog @@ -134,11 +135,10 @@ class MultiWalletView : WalletView { binding: FragmentWalletBinding, totalBalance: TotalBalance, ) = with(binding.lCardTotalBalance) { - val fiatAmountFormatted = with(totalBalance) { - "${fiatAmount.stripTrailingZeros()} $fiatCurrencyName" - } - tvBalance.text = fiatAmountFormatted - tvCurrencyName.text = totalBalance.fiatCurrencyName + tvBalance.text = totalBalance.fiatAmount.formatAmountAsSpannedString( + currencySymbol = totalBalance.fiatCurrency.symbol + ) + tvCurrencyName.text = totalBalance.fiatCurrency.code tvCurrencyName.setOnClickListener { // TODO: Open app currency selector }