From 18cf55b1569b4e0a35b02162a982dac61f639ca5 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 19 Nov 2021 08:45:10 -0400 Subject: [PATCH] Fix error when trying to create payment in languages which use , instead of . --- .../java/org/signal/core/util/money/FiatMoney.java | 10 +++++++++- .../src/main/java/org/signal/donations/GooglePayApi.kt | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core-util/src/main/java/org/signal/core/util/money/FiatMoney.java b/core-util/src/main/java/org/signal/core/util/money/FiatMoney.java index d1cfc4ea5..a53df9d96 100644 --- a/core-util/src/main/java/org/signal/core/util/money/FiatMoney.java +++ b/core-util/src/main/java/org/signal/core/util/money/FiatMoney.java @@ -5,6 +5,7 @@ import androidx.annotation.NonNull; import java.math.BigDecimal; import java.text.NumberFormat; import java.util.Currency; +import java.util.Locale; public class FiatMoney { private final BigDecimal amount; @@ -37,7 +38,14 @@ public class FiatMoney { * @return amount, rounded to the default fractional amount. */ public @NonNull String getDefaultPrecisionString() { - NumberFormat formatter = NumberFormat.getInstance(); + return getDefaultPrecisionString(Locale.getDefault()); + } + + /** + * @return amount, rounded to the default fractional amount. + */ + public @NonNull String getDefaultPrecisionString(@NonNull Locale locale) { + NumberFormat formatter = NumberFormat.getInstance(locale); formatter.setMinimumFractionDigits(currency.getDefaultFractionDigits()); formatter.setGroupingUsed(false); diff --git a/donations/lib/src/main/java/org/signal/donations/GooglePayApi.kt b/donations/lib/src/main/java/org/signal/donations/GooglePayApi.kt index 077575b99..baba518f3 100644 --- a/donations/lib/src/main/java/org/signal/donations/GooglePayApi.kt +++ b/donations/lib/src/main/java/org/signal/donations/GooglePayApi.kt @@ -17,6 +17,7 @@ import org.json.JSONException import org.json.JSONObject import org.signal.core.util.logging.Log import org.signal.core.util.money.FiatMoney +import java.util.Locale /** * Entrypoint for Google Pay APIs @@ -124,7 +125,7 @@ class GooglePayApi( put("currencyCode", price.currency.currencyCode) put("countryCode", "US") put("totalPriceStatus", "FINAL") - put("totalPrice", price.defaultPrecisionString) + put("totalPrice", price.getDefaultPrecisionString(Locale.US)) put("totalPriceLabel", label) put("checkoutOption", "COMPLETE_IMMEDIATE_PURCHASE") }