X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FGlobals.java;h=56a88ceca9fa70ef8d4f4de91f76c0a16df869eb;hp=ecbffda495c819d44c2edfed501de486dac8e2e3;hb=e58a4542d0054772b1939b3eeb1b97f1384c60e6;hpb=998dd32a089d199a2569069415755eb3169b35b0 diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java b/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java index ecbffda4..56a88cec 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java @@ -19,7 +19,6 @@ package net.ktnx.mobileledger.utils; import android.app.Activity; import android.content.Context; -import android.support.annotation.ColorInt; import android.view.View; import android.view.inputmethod.InputMethodManager; @@ -32,15 +31,22 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public final class Globals { - @ColorInt - public static int tableRowLightBG; - @ColorInt - public static int tableRowDarkBG; - @ColorInt - public static int primaryDark, defaultTextColor; + private static final ThreadLocal dateFormatter = + new ThreadLocal() { + @Override + protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("yyyy/MM/dd", Locale.US); + } + }; + private static final ThreadLocal isoDateFormatter = + new ThreadLocal() { + @Override + protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("yyyy-MM-dd", Locale.US); + } + }; public static String[] monthNames; - private static SimpleDateFormat ledgerDateFormatter = - new SimpleDateFormat("yyyy/MM/dd", Locale.US); + public static String developerEmail = "dam+mole-crash@ktnx.net"; private static Pattern reLedgerDate = Pattern.compile("^(?:(\\d+)/)??(?:(\\d\\d?)/)?(\\d\\d?)$"); public static void hideSoftKeyboard(Activity act) { @@ -54,7 +60,9 @@ public final class Globals { } public static Date parseLedgerDate(String dateString) throws ParseException { Matcher m = reLedgerDate.matcher(dateString); - if (!m.matches()) throw new ParseException(dateString, 0); + if (!m.matches()) throw new ParseException( + String.format("'%s' does not match expected pattern '%s'", dateString, + reLedgerDate.toString()), 0); String year = m.group(1); String month = m.group(2); @@ -72,10 +80,15 @@ public final class Globals { } else toParse = dateString; -// Log.d("globals", String.format("Parsing date '%s'", toParse)); - return ledgerDateFormatter.parse(toParse); + return dateFormatter.get().parse(toParse); + } + public static Date parseIsoDate(String dateString) throws ParseException { + return isoDateFormatter.get().parse(dateString); } public static String formatLedgerDate(Date date) { - return ledgerDateFormatter.format(date); + return dateFormatter.get().format(date); + } + public static String formatIsoDate(Date date) { + return isoDateFormatter.get().format(date); } } \ No newline at end of file