aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2014-02-22 23:03:45 +0100
committerrsudev <rasch@munin-soft.de>2014-02-22 23:03:45 +0100
commitc841050d5797082b5531e0ef9dc8e2dd5cba7386 (patch)
treeaa07fdf891a3bc946341c7beada1871f0d018820 /main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java
parent0fef0fb52b537065cfe3561628c58ad74b5336b3 (diff)
downloadcgeo-c841050d5797082b5531e0ef9dc8e2dd5cba7386.zip
cgeo-c841050d5797082b5531e0ef9dc8e2dd5cba7386.tar.gz
cgeo-c841050d5797082b5531e0ef9dc8e2dd5cba7386.tar.bz2
Finally fixes #3267, Detect and report time-skew that prevents okapi access
Extended the OAuth process to allow specific additional error reporting
Diffstat (limited to 'main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java')
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java b/main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java
index c082bac..19f4447 100644
--- a/main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java
+++ b/main/src/cgeo/geocaching/connector/oc/OCAuthorizationActivity.java
@@ -2,9 +2,13 @@ package cgeo.geocaching.connector.oc;
import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.R;
+import cgeo.geocaching.connector.oc.OkapiError.OkapiErrors;
import cgeo.geocaching.network.OAuthAuthorizationActivity;
import cgeo.geocaching.settings.Settings;
+import ch.boye.httpclientandroidlib.HttpResponse;
+
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.eclipse.jdt.annotation.Nullable;
@@ -52,4 +56,16 @@ public abstract class OCAuthorizationActivity extends OAuthAuthorizationActivity
return res.getString(R.string.auth_dialog_completed_oc, getAuthTitle());
}
+ /**
+ * Return an extended error in case of an invalid time stamp
+ */
+ @Override
+ protected String getExtendedErrorMsg(HttpResponse response) {
+ OkapiError error = OkapiClient.decodeErrorResponse(response);
+ if (error.getResult() == OkapiErrors.INVALID_TIMESTAMP) {
+ return res.getString(R.string.init_login_popup_invalid_timestamp);
+ }
+ return StringUtils.EMPTY;
+ }
+
}