diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2011-09-27 21:30:02 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2011-09-27 22:35:31 +0200 |
| commit | 5ca67e96b5500792f69d4732e28b6b0978aa9a91 (patch) | |
| tree | 10e2aff1d906cbb0e2d62c8496d9f3e2a1eac599 /main | |
| parent | 2b8c492fbe9115347533da4050597aa785d7526c (diff) | |
| download | cgeo-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.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 62 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeotouch.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeovisit.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/GCConnector.java | 5 |
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)) { |
