diff --git a/app/build.gradle b/app/build.gradle index 689e7c528..af8b22281 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -187,7 +187,7 @@ dependencies { exclude module: 'httpclient' } - compile('com.crashlytics.sdk.android:crashlytics:2.5.0@aar') { + compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') { transitive = true; } diff --git a/app/src/main/java/org/gnucash/android/model/Money.java b/app/src/main/java/org/gnucash/android/model/Money.java index 312a171b5..a30b5675b 100644 --- a/app/src/main/java/org/gnucash/android/model/Money.java +++ b/app/src/main/java/org/gnucash/android/model/Money.java @@ -84,7 +84,7 @@ public final class Money implements Comparable{ */ public static Money getZeroInstance(){ if (sDefaultZero == null) { - String currencyCode = Currency.getInstance(GnuCashApplication.getDefaultLocale()).getCurrencyCode(); + String currencyCode = GnuCashApplication.getDefaultCurrencyCode(); sDefaultZero = new Money(BigDecimal.ZERO, Commodity.getInstance(currencyCode)); } return sDefaultZero; @@ -211,9 +211,11 @@ public long getNumerator() { try { return mAmount.scaleByPowerOfTen(getScale()).longValueExact(); } catch (ArithmeticException e) { - Log.e(getClass().getName(), "Currency " + mCommodity.getCurrencyCode() + + String msg = "Currency " + mCommodity.getCurrencyCode() + " with scale " + getScale() + - " has amount " + mAmount.toString()); + " has amount " + mAmount.toString(); + Crashlytics.log(msg); + Log.e(getClass().getName(), msg); throw e; } } @@ -225,16 +227,14 @@ public long getNumerator() { */ public long getDenominator() { switch (getScale()) { - case 0: - return 1; - case 1: - return 10; - case 2: - return 100; - case 3: - return 1000; - case 4: - return 10000; + case 0: return 1; + case 1: return 10; + case 2: return 100; + case 3: return 1000; + case 4: return 10000; + case 5: return 100000; + case 6: return 1000000; //I think GnuCash XML can have gold and silver with this denom + } throw new RuntimeException("Unsupported number of fraction digits " + getScale()); } diff --git a/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java b/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java index c0ebf47eb..7d153a23b 100644 --- a/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java +++ b/app/src/main/java/org/gnucash/android/ui/util/widget/CalculatorEditText.java @@ -317,7 +317,7 @@ public boolean isInputModified(){ public BigDecimal getValue(){ evaluate(); String amountString = getCleanString(); - if (amountString.isEmpty()) + if (amountString.isEmpty() || !amountString.matches("\\d+")) //value should contain atleast one digit return null; return new BigDecimal(amountString); }