aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/cgBase.java')
-rw-r--r--main/src/cgeo/geocaching/cgBase.java64
1 files changed, 24 insertions, 40 deletions
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index d048a44..ed6b9d5 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)) {
@@ -894,7 +893,7 @@ public class cgBase {
recaptchaText = thread.getText();
}
- if (cids.size() > 0 && (recaptchaChallenge == null || (recaptchaChallenge != null && StringUtils.isNotBlank(recaptchaText)))) {
+ if (cids.size() > 0 && (recaptchaChallenge == null || StringUtils.isNotBlank(recaptchaText))) {
Log.i(cgSettings.tag, "Trying to get .loc for " + cids.size() + " caches");
try {
@@ -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);
}