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=87730ca3e8ea7c2a6f52f32b63cdee98b99308ce;hp=b7fffadf4b0c150153dbaff3df711d707ae22923;hb=ea17ca9e3b03ca0090be03fdc0abbbbfd954be89;hpb=14873dbc3aa249dc5af735c8906be1a19b5f7dda 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 b7fffadf..87730ca3 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/Globals.java @@ -1,5 +1,5 @@ /* - * Copyright © 2018 Damyan Ivanov. + * Copyright © 2019 Damyan Ivanov. * This file is part of Mobile-Ledger. * Mobile-Ledger is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -17,14 +17,66 @@ package net.ktnx.mobileledger.utils; +import android.app.Activity; +import android.content.Context; import android.support.annotation.ColorInt; +import android.util.Log; +import android.view.View; +import android.view.inputmethod.InputMethodManager; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public final class Globals { @ColorInt - public static int table_row_even_bg; + public static int tableRowLightBG; @ColorInt - public static int table_row_odd_bg; + public static int tableRowDarkBG; @ColorInt public static int primaryDark, defaultTextColor; + public static String[] monthNames; + private static SimpleDateFormat ledgerDateFormatter = + new SimpleDateFormat("yyyy/MM/dd", Locale.US); + private static Pattern reLedgerDate = + Pattern.compile("^(?:(\\d+)/)??(?:(\\d\\d?)/)?(\\d\\d?)$"); + public static void hideSoftKeyboard(Activity act) { + // hide the keyboard + View v = act.getCurrentFocus(); + if (v != null) { + InputMethodManager imm = + (InputMethodManager) act.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(v.getWindowToken(), 0); + } + } + public static Date parseLedgerDate(String dateString) throws ParseException { + Matcher m = reLedgerDate.matcher(dateString); + if (!m.matches()) throw new ParseException(dateString, 0); + + String year = m.group(1); + String month = m.group(2); + String day = m.group(3); + + String toParse; + if (year == null) { + Calendar now = Calendar.getInstance(); + int thisYear = now.get(Calendar.YEAR); + if (month == null) { + int thisMonth = now.get(Calendar.MONTH) + 1; + toParse = String.format(Locale.US, "%04d/%02d/%s", thisYear, thisMonth, dateString); + } + else toParse = String.format(Locale.US, "%04d/%s", thisYear, dateString); + } + else toParse = dateString; + Log.d("globals", String.format("Parsing date '%s'", toParse)); + return ledgerDateFormatter.parse(toParse); + } + public static String formatLedgerDate(Date date) { + return ledgerDateFormatter.format(date); + } } \ No newline at end of file