From d24b6f442a370653a2f40b3c74376c38471bf110 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 14 Feb 2024 16:11:16 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../core/ui/utils/BigDecimalFormatter.kt | 18 ++++++++++++++---- .../com/tangem/feature/swap/ui/StateBuilder.kt | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt b/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt index c5fc3d7442..020cc01c45 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/utils/BigDecimalFormatter.kt @@ -14,12 +14,18 @@ object BigDecimalFormatter { private const val TEMP_CURRENCY_CODE = "USD" - fun formatCryptoAmount(cryptoAmount: BigDecimal?, cryptoCurrency: String, decimals: Int): String { + fun formatCryptoAmount( + cryptoAmount: BigDecimal?, + cryptoCurrency: String, + decimals: Int, + locale: Locale = Locale.getDefault(), + ): String { if (cryptoAmount == null) return EMPTY_BALANCE_SIGN - val formatter = NumberFormat.getNumberInstance().apply { + val formatter = NumberFormat.getNumberInstance(locale).apply { maximumFractionDigits = decimals.coerceAtMost(maximumValue = 8) minimumFractionDigits = 2 + isGroupingUsed = true roundingMode = RoundingMode.DOWN } @@ -32,8 +38,12 @@ object BigDecimalFormatter { } } - fun formatCryptoAmount(cryptoAmount: BigDecimal?, cryptoCurrency: CryptoCurrency): String { - return formatCryptoAmount(cryptoAmount, cryptoCurrency.symbol, cryptoCurrency.decimals) + fun formatCryptoAmount( + cryptoAmount: BigDecimal?, + cryptoCurrency: CryptoCurrency, + locale: Locale = Locale.getDefault(), + ): String { + return formatCryptoAmount(cryptoAmount, cryptoCurrency.symbol, cryptoCurrency.decimals, locale) } fun formatFiatAmount( diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt index 2ab118da47..446b40e5ae 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt @@ -1326,7 +1326,7 @@ internal class StateBuilder( } private fun SwapAmount.getFormattedCryptoAmount(token: CryptoCurrency): String { - return "${this.formatToUIRepresentation()} ${token.symbol}" + return BigDecimalFormatter.formatCryptoAmount(value, token.symbol, token.decimals) } private fun BigDecimal.calculateRate(to: BigDecimal, decimals: Int): BigDecimal {