diff options
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCLogin.java | 63 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCParser.java | 5 |
2 files changed, 7 insertions, 61 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCLogin.java b/main/src/cgeo/geocaching/connector/gc/GCLogin.java index 58e5c49..d16a3cc 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCLogin.java +++ b/main/src/cgeo/geocaching/connector/gc/GCLogin.java @@ -27,43 +27,15 @@ import android.graphics.drawable.Drawable; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Collections; import java.util.Date; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; +import java.util.GregorianCalendar; public class GCLogin extends AbstractLogin { - private static final String DEFAULT_CUSTOM_DATE_FORMAT = "MM/dd/yyyy"; - private final static String ENGLISH = "<a href=\"#\">English ▼</a>"; - private final static Map<String, SimpleDateFormat> GC_CUSTOM_DATE_FORMATS; public static final String LANGUAGE_CHANGE_URI = "http://www.geocaching.com/my/souvenirs.aspx"; - static { - final String[] formats = new String[] { - DEFAULT_CUSTOM_DATE_FORMAT, - "yyyy-MM-dd", - "yyyy/MM/dd", - "dd.MM.yyyy", - "dd/MMM/yyyy", - "dd.MMM.yyyy", - "MMM/dd/yyyy", - "dd MMM yy", - "dd/MM/yyyy" - }; - - final Map<String, SimpleDateFormat> map = new HashMap<>(); - - for (final String format : formats) { - map.put(format, new SimpleDateFormat(format, Locale.ENGLISH)); - } - - GC_CUSTOM_DATE_FORMATS = Collections.unmodifiableMap(map); - } - private GCLogin() { // singleton } @@ -293,7 +265,7 @@ public class GCLogin extends AbstractLogin { */ private static void detectGcCustomDate() { - final String result = Network.getResponseData(Network.getRequest("http://www.geocaching.com/account/ManagePreferences.aspx")); + final String result = Network.getResponseData(Network.getRequest("https://www.geocaching.com/myaccount/settings/preferences")); if (null == result) { Log.w("Login.detectGcCustomDate: result is null"); @@ -307,40 +279,15 @@ public class GCLogin extends AbstractLogin { } public static Date parseGcCustomDate(final String input, final String format) throws ParseException { - if (StringUtils.isBlank(input)) { - throw new ParseException("Input is null", 0); - } - - final String trimmed = input.trim(); - - if (GC_CUSTOM_DATE_FORMATS.containsKey(format)) { - try { - return GC_CUSTOM_DATE_FORMATS.get(format).parse(trimmed); - } catch (final ParseException e) { - } - } - - for (final SimpleDateFormat sdf : GC_CUSTOM_DATE_FORMATS.values()) { - try { - return sdf.parse(trimmed); - } catch (final ParseException e) { - } - } - - throw new ParseException("No matching pattern", 0); + return new SimpleDateFormat(format).parse(input.trim()); } public static Date parseGcCustomDate(final String input) throws ParseException { return parseGcCustomDate(input, Settings.getGcCustomDate()); } - public static SimpleDateFormat getCustomGcDateFormat() { - final String format = Settings.getGcCustomDate(); - if (GC_CUSTOM_DATE_FORMATS.containsKey(format)) { - return GC_CUSTOM_DATE_FORMATS.get(format); - } - - return GC_CUSTOM_DATE_FORMATS.get(DEFAULT_CUSTOM_DATE_FORMAT); + public static String formatGcCustomDate(int year, int month, int day) { + return new SimpleDateFormat(Settings.getGcCustomDate()).format(new GregorianCalendar(year, month - 1, day).getTime()); } /** diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java index c771049..7e98b40 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCParser.java +++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java @@ -66,7 +66,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.EnumSet; -import java.util.GregorianCalendar; import java.util.List; import java.util.Locale; import java.util.Set; @@ -1061,7 +1060,7 @@ public abstract class GCParser { "__EVENTARGUMENT", "", "__LASTFOCUS", "", "ctl00$ContentBody$LogBookPanel1$ddLogType", Integer.toString(logType.id), - "ctl00$ContentBody$LogBookPanel1$uxDateVisited", GCLogin.getCustomGcDateFormat().format(new GregorianCalendar(year, month - 1, day).getTime()), + "ctl00$ContentBody$LogBookPanel1$uxDateVisited", GCLogin.formatGcCustomDate(year, month, day), "ctl00$ContentBody$LogBookPanel1$uxDateVisited$Month", Integer.toString(month), "ctl00$ContentBody$LogBookPanel1$uxDateVisited$Day", Integer.toString(day), "ctl00$ContentBody$LogBookPanel1$uxDateVisited$Year", Integer.toString(year), @@ -1257,7 +1256,7 @@ public abstract class GCParser { params.put("ctl00$ContentBody$LogBookPanel1$uxDateVisited", ""); } else { params.put("ctl00$ContentBody$LogBookPanel1$DateTimeLogged", Integer.toString(month) + "/" + Integer.toString(day) + "/" + Integer.toString(year)); - params.put("ctl00$ContentBody$LogBookPanel1$uxDateVisited", GCLogin.getCustomGcDateFormat().format(new GregorianCalendar(year, month - 1, day).getTime())); + params.put("ctl00$ContentBody$LogBookPanel1$uxDateVisited", GCLogin.formatGcCustomDate(year, month, day)); } params.put( "ctl00$ContentBody$LogBookPanel1$DateTimeLogged$Day", Integer.toString(day), |
