From 8b23a409ef3224cb8937b3d56fa4abef5544d236 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 19 Nov 2021 10:02:26 -0400 Subject: [PATCH] Fix custom amount parsing for languages that utilize , separator. --- .../settings/app/subscription/boost/BoostViewModel.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/boost/BoostViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/boost/BoostViewModel.kt index f137118d2..09ee3e973 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/boost/BoostViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/boost/BoostViewModel.kt @@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.util.InternetConnectionObserver import org.thoughtcrime.securesms.util.PlatformCurrencyUtil import org.thoughtcrime.securesms.util.livedata.Store import java.math.BigDecimal +import java.text.DecimalFormat import java.text.DecimalFormatSymbols import java.util.Currency @@ -192,10 +193,12 @@ class BoostViewModel( } fun setCustomAmount(amount: String) { - val bigDecimalAmount = if (amount.isEmpty() || amount == DecimalFormatSymbols.getInstance().decimalSeparator.toString()) { + val bigDecimalAmount: BigDecimal = if (amount.isEmpty() || amount == DecimalFormatSymbols.getInstance().decimalSeparator.toString()) { BigDecimal.ZERO } else { - BigDecimal(amount) + val decimalFormat = DecimalFormat.getInstance() as DecimalFormat + decimalFormat.isParseBigDecimal = true + decimalFormat.parse(amount) as BigDecimal } store.update { it.copy(customAmount = FiatMoney(bigDecimalAmount, it.customAmount.currency)) }