aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authormucek4 <tomaz@gorenc.org>2011-10-19 07:42:46 +0200
committermucek4 <tomaz@gorenc.org>2011-10-19 07:42:46 +0200
commit3a7fa06dfe8956eae8c6fd05547c8fccd1699ce4 (patch)
tree4f8c703e5ea374de79db39e02d01d7613581f28d /main
parentbc610e7cfa71b871c5fb50bf4485bc5cdc81590c (diff)
downloadcgeo-3a7fa06dfe8956eae8c6fd05547c8fccd1699ce4.zip
cgeo-3a7fa06dfe8956eae8c6fd05547c8fccd1699ce4.tar.gz
cgeo-3a7fa06dfe8956eae8c6fd05547c8fccd1699ce4.tar.bz2
Don't change to English if it's already in English
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/cgBase.java34
1 files changed, 20 insertions, 14 deletions
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index ca82bb0..12e0651 100644
--- a/main/src/cgeo/geocaching/cgBase.java
+++ b/main/src/cgeo/geocaching/cgBase.java
@@ -458,7 +458,7 @@ public class cgBase {
if (checkLogin(loginData)) {
Log.i(Settings.tag, "Already logged in Geocaching.com as " + loginStart.left);
- switchToEnglish();
+ switchToEnglish(loginData);
return StatusCode.NO_ERROR; // logged in
}
@@ -493,7 +493,7 @@ public class cgBase {
if (checkLogin(loginData)) {
Log.i(Settings.tag, "Successfully logged in Geocaching.com as " + login.left);
- switchToEnglish();
+ switchToEnglish(loginData);
return StatusCode.NO_ERROR; // logged in
} else {
@@ -535,18 +535,24 @@ public class cgBase {
return false;
}
- public static void switchToEnglish() {
- final String page = getResponseData(request("http://www.geocaching.com/default.aspx", null, false));
- if (page == null) {
- Log.e(Settings.tag, "Failed to read viewstates to set geocaching.com language");
- }
- final Parameters params = new Parameters(
- "__EVENTTARGET", "ctl00$uxLocaleList$uxLocaleList$ctl00$uxLocaleItem", // switch to english
- "__EVENTARGUMENT", "");
- transferViewstates(page, params);
- final HttpResponse response = postRequest("http://www.geocaching.com/default.aspx", params);
- if (!isSuccess(response)) {
- Log.e(Settings.tag, "Failed to set geocaching.com language to English");
+ public static void switchToEnglish(String previousPage) {
+ final String ENGLISH = "English&#9660;";
+ if (previousPage != null && previousPage.indexOf(ENGLISH) > 0)
+ {
+ Log.i(Settings.tag, "Geocaching.com language already set to English");
+ } else {
+ final String page = getResponseData(request("http://www.geocaching.com/default.aspx", null, false));
+ if (page == null) {
+ Log.e(Settings.tag, "Failed to read viewstates to set geocaching.com language");
+ }
+ final Parameters params = new Parameters(
+ "__EVENTTARGET", "ctl00$uxLocaleList$uxLocaleList$ctl00$uxLocaleItem", // switch to english
+ "__EVENTARGUMENT", "");
+ transferViewstates(page, params);
+ final HttpResponse response = postRequest("http://www.geocaching.com/default.aspx", params);
+ if (!isSuccess(response)) {
+ Log.e(Settings.tag, "Failed to set geocaching.com language to English");
+ }
}
}