From: Damyan Ivanov Date: Sun, 23 May 2021 14:27:21 +0000 (+0300) Subject: make decimal separator available globally X-Git-Tag: v0.19.1~4 X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=commitdiff_plain;h=410ac5bee1019afe708b4cb748b0806f53a63606 make decimal separator available globally updated with locale changes --- diff --git a/app/src/main/java/net/ktnx/mobileledger/model/Data.java b/app/src/main/java/net/ktnx/mobileledger/model/Data.java index e0fdfaf1..886f7b07 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/Data.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/Data.java @@ -30,6 +30,9 @@ import net.ktnx.mobileledger.db.Profile; import net.ktnx.mobileledger.utils.Locker; import net.ktnx.mobileledger.utils.Logger; +import org.jetbrains.annotations.NotNull; + +import java.text.DecimalFormatSymbols; import java.text.NumberFormat; import java.text.ParseException; import java.text.ParsePosition; @@ -60,15 +63,21 @@ public final class Data { public static final MutableLiveData lastTransactionsUpdateText = new MutableLiveData<>(); public static final MutableLiveData lastAccountsUpdateText = new MutableLiveData<>(); + public static final String decimalDot = "."; + private static final MutableLiveData profile = new MutableLiveData<>(); private static final AtomicInteger backgroundTaskCount = new AtomicInteger(0); private static final Locker profilesLocker = new Locker(); private static NumberFormat numberFormatter; + private static String decimalSeparator = ""; static { locale.setValue(Locale.getDefault()); } + public static String getDecimalSeparator() { + return decimalSeparator; + } @Nullable public static Profile getProfile() { return profile.getValue(); @@ -127,11 +136,16 @@ public final class Data { newNumberFormatter.setMinimumFractionDigits(2); numberFormatter = newNumberFormatter; + + decimalSeparator = String.valueOf(DecimalFormatSymbols.getInstance(locale) + .getMonetaryDecimalSeparator()); } + @NotNull public static String formatCurrency(float number) { NumberFormat formatter = NumberFormat.getCurrencyInstance(locale.getValue()); return formatter.format(number); } + @NotNull public static String formatNumber(float number) { return numberFormatter.format(number); }