aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java6
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java5
-rw-r--r--main/src/cgeo/geocaching/cgeoinit.java3
-rw-r--r--main/src/cgeo/geocaching/network/Cookies.java47
-rw-r--r--main/src/cgeo/geocaching/network/Login.java6
-rw-r--r--main/src/cgeo/geocaching/network/Network.java42
6 files changed, 59 insertions, 50 deletions
diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java
index 8e8ad9d..8985955 100644
--- a/main/src/cgeo/geocaching/activity/AbstractActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -6,7 +6,7 @@ import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.compatibility.Compatibility;
-import cgeo.geocaching.network.Network;
+import cgeo.geocaching.network.Cookies;
import android.app.Activity;
import android.content.Context;
@@ -88,7 +88,7 @@ public abstract class AbstractActivity extends Activity implements IAbstractActi
cgBase.initialize(app);
// Restore cookie store if needed
- Network.restoreCookieStore(Settings.getCookieStore());
+ Cookies.restoreCookieStore(Settings.getCookieStore());
ActivityMixin.keepScreenOn(this, keepScreenOn);
}
@@ -131,7 +131,7 @@ public abstract class AbstractActivity extends Activity implements IAbstractActi
/**
* insert text into the EditText at the current cursor position
- *
+ *
* @param editText
* @param insertText
* @param moveCursor
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index e7005f1..184d254 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -17,6 +17,7 @@ import cgeo.geocaching.filter.FilterUserInterface;
import cgeo.geocaching.filter.IFilter;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.maps.CGeoMap;
+import cgeo.geocaching.network.Cookies;
import cgeo.geocaching.network.Network;
import cgeo.geocaching.network.Parameters;
import cgeo.geocaching.sorting.CacheComparator;
@@ -186,14 +187,14 @@ public class cgeocaches extends AbstractListActivity {
dialog.setNegativeButton(res.getString(R.string.license_dismiss), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- Network.clearCookies();
+ Cookies.clearCookies();
dialog.cancel();
}
});
dialog.setPositiveButton(res.getString(R.string.license_show), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- Network.clearCookies();
+ Cookies.clearCookies();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.geocaching.com/software/agreement.aspx?ID=0")));
}
});
diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java
index 3a37a50..fee7a53 100644
--- a/main/src/cgeo/geocaching/cgeoinit.java
+++ b/main/src/cgeo/geocaching/cgeoinit.java
@@ -7,6 +7,7 @@ import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.maps.MapProviderFactory;
+import cgeo.geocaching.network.Cookies;
import cgeo.geocaching.network.Login;
import cgeo.geocaching.network.Network;
import cgeo.geocaching.network.Parameters;
@@ -822,7 +823,7 @@ public class cgeoinit extends AbstractActivity {
loginDialog.setCancelable(false);
Settings.setLogin(username, password);
- Network.clearCookies();
+ Cookies.clearCookies();
(new Thread() {
diff --git a/main/src/cgeo/geocaching/network/Cookies.java b/main/src/cgeo/geocaching/network/Cookies.java
new file mode 100644
index 0000000..68310e6
--- /dev/null
+++ b/main/src/cgeo/geocaching/network/Cookies.java
@@ -0,0 +1,47 @@
+package cgeo.geocaching.network;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.client.CookieStore;
+import org.apache.http.cookie.Cookie;
+import org.apache.http.impl.client.BasicCookieStore;
+import org.apache.http.impl.cookie.BasicClientCookie;
+
+public abstract class Cookies {
+
+ private static boolean cookieStoreRestored = false;
+ final static CookieStore cookieStore = new BasicCookieStore();
+
+ public static void restoreCookieStore(final String oldCookies) {
+ if (!cookieStoreRestored) {
+ clearCookies();
+ if (oldCookies != null) {
+ for (final String cookie : StringUtils.split(oldCookies, ';')) {
+ final String[] split = StringUtils.split(cookie, "=", 3);
+ if (split.length == 3) {
+ final BasicClientCookie newCookie = new BasicClientCookie(split[0], split[1]);
+ newCookie.setDomain(split[2]);
+ cookieStore.addCookie(newCookie);
+ }
+ }
+ }
+ cookieStoreRestored = true;
+ }
+ }
+
+ public static String dumpCookieStore() {
+ StringBuilder cookies = new StringBuilder();
+ for (final Cookie cookie : cookieStore.getCookies()) {
+ cookies.append(cookie.getName());
+ cookies.append('=');
+ cookies.append(cookie.getValue());
+ cookies.append('=');
+ cookies.append(cookie.getDomain());
+ cookies.append(';');
+ }
+ return cookies.toString();
+ }
+
+ public static void clearCookies() {
+ cookieStore.clear();
+ }
+}
diff --git a/main/src/cgeo/geocaching/network/Login.java b/main/src/cgeo/geocaching/network/Login.java
index 827bf96..f2a4582 100644
--- a/main/src/cgeo/geocaching/network/Login.java
+++ b/main/src/cgeo/geocaching/network/Login.java
@@ -86,7 +86,7 @@ public abstract class Login {
return StatusCode.NO_ERROR; // logged in
}
- Network.clearCookies();
+ Cookies.clearCookies();
Settings.setCookieStore(null);
final Parameters params = new Parameters(
@@ -111,7 +111,7 @@ public abstract class Login {
Log.i("Successfully logged in Geocaching.com as " + login.left);
Login.switchToEnglish(loginData);
- Settings.setCookieStore(Network.dumpCookieStore());
+ Settings.setCookieStore(Cookies.dumpCookieStore());
return StatusCode.NO_ERROR; // logged in
} else {
@@ -137,7 +137,7 @@ public abstract class Login {
return StatusCode.MAINTENANCE;
}
- Network.clearCookies();
+ Cookies.clearCookies();
Settings.setCookieStore(null);
return StatusCode.NO_ERROR;
}
diff --git a/main/src/cgeo/geocaching/network/Network.java b/main/src/cgeo/geocaching/network/Network.java
index bcfa626..d330156 100644
--- a/main/src/cgeo/geocaching/network/Network.java
+++ b/main/src/cgeo/geocaching/network/Network.java
@@ -15,17 +15,13 @@ import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.NameValuePair;
-import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.cookie.Cookie;
import org.apache.http.entity.HttpEntityWrapper;
-import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.CoreProtocolPNames;
@@ -72,8 +68,6 @@ public abstract class Network {
private static final String PATTERN_PASSWORD = "(?<=[\\?&])[Pp]ass(w(or)?d)?=[^&#$]+";
private final static HttpParams clientParams = new BasicHttpParams();
- private static boolean cookieStoreRestored = false;
- private final static CookieStore cookieStore = new BasicCookieStore();
static {
Network.clientParams.setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, HTTP.UTF_8);
@@ -87,7 +81,7 @@ public abstract class Network {
private static HttpClient getHttpClient() {
final DefaultHttpClient client = new DefaultHttpClient();
- client.setCookieStore(cookieStore);
+ client.setCookieStore(Cookies.cookieStore);
client.setParams(clientParams);
client.addRequestInterceptor(new HttpRequestInterceptor() {
@@ -128,40 +122,6 @@ public abstract class Network {
return client;
}
- public static void restoreCookieStore(final String oldCookies) {
- if (!cookieStoreRestored) {
- Network.clearCookies();
- if (oldCookies != null) {
- for (final String cookie : StringUtils.split(oldCookies, ';')) {
- final String[] split = StringUtils.split(cookie, "=", 3);
- if (split.length == 3) {
- final BasicClientCookie newCookie = new BasicClientCookie(split[0], split[1]);
- newCookie.setDomain(split[2]);
- cookieStore.addCookie(newCookie);
- }
- }
- }
- cookieStoreRestored = true;
- }
- }
-
- public static String dumpCookieStore() {
- StringBuilder cookies = new StringBuilder();
- for (final Cookie cookie : cookieStore.getCookies()) {
- cookies.append(cookie.getName());
- cookies.append('=');
- cookies.append(cookie.getValue());
- cookies.append('=');
- cookies.append(cookie.getDomain());
- cookies.append(';');
- }
- return cookies.toString();
- }
-
- public static void clearCookies() {
- cookieStore.clear();
- }
-
/**
* POST HTTP request
*