aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2011-09-27 21:30:02 +0200
committerSamuel Tardieu <sam@rfc1149.net>2011-09-27 22:35:31 +0200
commit5ca67e96b5500792f69d4732e28b6b0978aa9a91 (patch)
tree10e2aff1d906cbb0e2d62c8496d9f3e2a1eac599 /main
parent2b8c492fbe9115347533da4050597aa785d7526c (diff)
downloadcgeo-5ca67e96b5500792f69d4732e28b6b0978aa9a91.zip
cgeo-5ca67e96b5500792f69d4732e28b6b0978aa9a91.tar.gz
cgeo-5ca67e96b5500792f69d4732e28b6b0978aa9a91.tar.bz2
Use Parameters instead of Map<String, String> for parameters
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/LogTemplateProvider.java5
-rw-r--r--main/src/cgeo/geocaching/cgBase.java62
-rw-r--r--main/src/cgeo/geocaching/cgeotouch.java4
-rw-r--r--main/src/cgeo/geocaching/cgeovisit.java5
-rw-r--r--main/src/cgeo/geocaching/connector/GCConnector.java5
5 files changed, 29 insertions, 52 deletions
diff --git a/main/src/cgeo/geocaching/LogTemplateProvider.java b/main/src/cgeo/geocaching/LogTemplateProvider.java
index db65ac7..4a11652 100644
--- a/main/src/cgeo/geocaching/LogTemplateProvider.java
+++ b/main/src/cgeo/geocaching/LogTemplateProvider.java
@@ -4,8 +4,6 @@ import org.apache.commons.lang3.StringUtils;
import android.util.Log;
-import java.util.HashMap;
-import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -87,8 +85,7 @@ public class LogTemplateProvider {
return "";
}
String findCount = "";
- final Map<String, String> params = new HashMap<String, String>();
- final String page = cgBase.getResponseData(base.request("http://www.geocaching.com/email/", params, false, false, false));
+ final String page = cgBase.getResponseData(base.request("http://www.geocaching.com/email/", null, false, false, false));
int current = parseFindCount(page);
if (current >= 0) {
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index d048a44..1ca6465 100644
--- a/main/src/cgeo/geocaching/cgBase.java
+++ b/main/src/cgeo/geocaching/cgBase.java
@@ -79,7 +79,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Set;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -499,7 +498,7 @@ public class cgBase {
return -3; // no login information stored
}
- loginResponse = request("https://www.geocaching.com/login/default.aspx", new HashMap<String, String>(), false, false, false);
+ loginResponse = request("https://www.geocaching.com/login/default.aspx", null, false, false, false);
loginData = getResponseData(loginResponse);
if (StringUtils.isNotBlank(loginData)) {
if (checkLogin(loginData)) {
@@ -1669,7 +1668,7 @@ public class cgBase {
}
final String userToken = userTokenMatcher.group(1);
- final HashMap<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
params.put("tkn", userToken);
params.put("idx", "1");
params.put("num", "35");
@@ -1875,7 +1874,7 @@ public class cgBase {
final Map<String, cgRating> ratings = new HashMap<String, cgRating>();
try {
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (settings.isLogin()) {
final Map<String, String> login = settings.getGCvoteLogin();
if (login != null) {
@@ -2646,7 +2645,7 @@ public class cgBase {
cacheType = null;
}
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (cacheType != null && cacheIDs.containsKey(cacheType)) {
params.put("tx", cacheIDs.get(cacheType));
} else {
@@ -2695,7 +2694,7 @@ public class cgBase {
cacheType = null;
}
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (cacheType != null && cacheIDs.containsKey(cacheType)) {
params.put("tx", cacheIDs.get(cacheType));
} else {
@@ -2743,7 +2742,7 @@ public class cgBase {
cacheType = null;
}
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (cacheType != null && cacheIDs.containsKey(cacheType)) {
params.put("tx", cacheIDs.get(cacheType));
} else {
@@ -2797,7 +2796,7 @@ public class cgBase {
cacheType = null;
}
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (cacheType != null && cacheIDs.containsKey(cacheType)) {
params.put("tx", cacheIDs.get(cacheType));
} else {
@@ -2994,7 +2993,7 @@ public class cgBase {
return null;
}
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (StringUtils.isNotBlank(geocode)) {
params.put("tracker", geocode);
} else if (StringUtils.isNotBlank(guid)) {
@@ -3402,48 +3401,33 @@ public class cgBase {
return encoded;
}
- public String prepareParameters(Map<String, String> params, boolean my, boolean addF) {
- String paramsDone = null;
-
- if (my != true && settings.excludeMine > 0) {
+ public String prepareParameters(final Parameters params, final boolean my, final boolean addF) {
+ if (my != true && settings.excludeMine > 0 && addF) {
if (params == null) {
- params = new HashMap<String, String>();
- }
- if (addF) {
- params.put("f", "1");
+ return "f=1";
}
-
+ params.put("f", "1");
Log.i(cgSettings.tag, "Skipping caches found or hidden by user.");
}
if (params != null) {
- Set<Map.Entry<String, String>> entrySet = params.entrySet();
- List<String> paramsEncoded = new ArrayList<String>();
+ final List<String> paramsEncoded = new ArrayList<String>(params.size());
- for (Map.Entry<String, String> entry : entrySet)
- {
- String key = entry.getKey();
- String value = entry.getValue();
+ for (final NameValuePair nameValue : params) {
+ final String key = nameValue.getName();
+ final String value = StringUtils.defaultString(nameValue.getValue());
- if (key.charAt(0) == '^') {
- key = "";
- }
- if (value == null) {
- value = "";
- }
-
- paramsEncoded.add(key + "=" + urlencode_rfc3986(value));
+ // TODO: Document the justification of the legacy test below
+ paramsEncoded.add((key.charAt(0) != '^' ? key : "") + "=" + urlencode_rfc3986(value));
}
- paramsDone = StringUtils.join(paramsEncoded.toArray(), '&');
+ return StringUtils.join(paramsEncoded.toArray(), '&');
} else {
- paramsDone = "";
+ return "";
}
-
- return paramsDone;
}
- public String[] requestViewstates(final String uri, Map<String, String> params, boolean xContentType, boolean my) {
+ public String[] requestViewstates(final String uri, final Parameters params, boolean xContentType, boolean my) {
final HttpResponse response = request(uri, params, xContentType, my, false);
return getViewstates(getResponseData(response));
@@ -3473,7 +3457,7 @@ public class cgBase {
return data;
}
- public String requestLogged(final String uri, Map<String, String> params, boolean xContentType, boolean my, boolean addF) {
+ public String requestLogged(final String uri, final Parameters params, boolean xContentType, boolean my, boolean addF) {
HttpResponse response = request(uri, params, xContentType, my, addF);
String data = getResponseData(response);
@@ -3490,7 +3474,7 @@ public class cgBase {
return data;
}
- public HttpResponse request(final String uri, Map<String, String> params, boolean xContentType, boolean my, boolean addF) {
+ public HttpResponse request(final String uri, final Parameters params, boolean xContentType, boolean my, boolean addF) {
final String paramsDone = prepareParameters(params, my, addF);
return request(uri, paramsDone, xContentType);
}
diff --git a/main/src/cgeo/geocaching/cgeotouch.java b/main/src/cgeo/geocaching/cgeotouch.java
index 827a765..baf085c 100644
--- a/main/src/cgeo/geocaching/cgeotouch.java
+++ b/main/src/cgeo/geocaching/cgeotouch.java
@@ -22,9 +22,7 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
public class cgeotouch extends cgLogForm {
private cgTrackable trackable = null;
@@ -372,7 +370,7 @@ public class cgeotouch extends cgLogForm {
@Override
public void run() {
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
showProgressHandler.sendEmptyMessage(0);
gettingViewstate = true;
diff --git a/main/src/cgeo/geocaching/cgeovisit.java b/main/src/cgeo/geocaching/cgeovisit.java
index e8104ab..e500adb 100644
--- a/main/src/cgeo/geocaching/cgeovisit.java
+++ b/main/src/cgeo/geocaching/cgeovisit.java
@@ -28,7 +28,6 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
-import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -374,7 +373,7 @@ public class cgeovisit extends cgLogForm {
return false;
}
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
params.put("userName", login.get("username"));
params.put("password", login.get("password"));
params.put("cacheId", guid);
@@ -699,7 +698,7 @@ public class cgeovisit extends cgLogForm {
@Override
public void run() {
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
showProgressHandler.sendEmptyMessage(0);
gettingViewstate = true;
diff --git a/main/src/cgeo/geocaching/connector/GCConnector.java b/main/src/cgeo/geocaching/connector/GCConnector.java
index 14d619e..e269c8b 100644
--- a/main/src/cgeo/geocaching/connector/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/GCConnector.java
@@ -1,5 +1,6 @@
package cgeo.geocaching.connector;
+import cgeo.geocaching.Parameters;
import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgCacheWrap;
@@ -12,9 +13,7 @@ import org.apache.commons.lang3.StringUtils;
import android.util.Log;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.UUID;
public class GCConnector extends AbstractConnector implements IConnector {
@@ -67,7 +66,7 @@ public class GCConnector extends AbstractConnector implements IConnector {
@Override
public UUID searchByGeocode(final cgBase base, String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int reason) {
- final Map<String, String> params = new HashMap<String, String>();
+ final Parameters params = new Parameters();
if (StringUtils.isNotBlank(geocode)) {
params.put("wp", geocode);
} else if (StringUtils.isNotBlank(guid)) {