aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-12-31 14:17:38 +0100
committerSamuel Tardieu <sam@rfc1149.net>2013-12-31 14:20:26 +0100
commit51fed3a37cf966cea0157659e5d95404f6e9db1d (patch)
tree243bb30d6518f74687419784077ba79fade169ea
parent089cdc5ca17871312565b89561332aaa68f39e1f (diff)
downloadcgeo-51fed3a37cf966cea0157659e5d95404f6e9db1d.zip
cgeo-51fed3a37cf966cea0157659e5d95404f6e9db1d.tar.gz
cgeo-51fed3a37cf966cea0157659e5d95404f6e9db1d.tar.bz2
refactoring: cache singletons
-rw-r--r--main/src/cgeo/geocaching/connector/ec/ECApi.java11
-rw-r--r--main/src/cgeo/geocaching/connector/ec/ECConnector.java16
-rw-r--r--main/src/cgeo/geocaching/connector/ec/ECLogin.java7
3 files changed, 19 insertions, 15 deletions
diff --git a/main/src/cgeo/geocaching/connector/ec/ECApi.java b/main/src/cgeo/geocaching/connector/ec/ECApi.java
index d059813..03fce4d 100644
--- a/main/src/cgeo/geocaching/connector/ec/ECApi.java
+++ b/main/src/cgeo/geocaching/connector/ec/ECApi.java
@@ -38,6 +38,7 @@ public class ECApi {
private static final String API_HOST = "https://extremcaching.com/exports/";
+ private static final ECLogin ecLogin = ECLogin.getInstance();
private static final FastDateFormat LOG_DATE_FORMAT = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss.SSSZ", TimeZone.getTimeZone("UTC"), Locale.US);
public static String getIdFromGeocode(final String geocode) {
@@ -92,7 +93,7 @@ public class ECApi {
params.add("type", logType.type);
params.add("log", log);
params.add("date", LOG_DATE_FORMAT.format(date.getTime()));
- params.add("sid", ECLogin.getInstance().getSessionId());
+ params.add("sid", ecLogin.getSessionId());
final String uri = API_HOST + "log.php";
final HttpResponse response = Network.postRequest(uri, params);
@@ -101,7 +102,7 @@ public class ECApi {
return new LogResult(StatusCode.LOG_POST_ERROR_EC, "");
}
if (!isRetry && response.getStatusLine().getStatusCode() == 403) {
- if (ECLogin.getInstance().login() == StatusCode.NO_ERROR) {
+ if (ecLogin.login() == StatusCode.NO_ERROR) {
apiRequest(uri, params, true);
}
}
@@ -112,7 +113,7 @@ public class ECApi {
final String data = Network.getResponseDataAlways(response);
if (!StringUtils.isBlank(data) && StringUtils.contains(data, "success")) {
if (logType == LogType.FOUND_IT || logType == LogType.ATTENDED) {
- ECLogin.getInstance().setActualCachesFound(ECLogin.getInstance().getActualCachesFound() + 1);
+ ecLogin.setActualCachesFound(ecLogin.getActualCachesFound() + 1);
}
final String uid = StringUtils.remove(data, "success:");
return new LogResult(StatusCode.NO_ERROR, uid);
@@ -134,7 +135,7 @@ public class ECApi {
// add session and cgeo marker on every request
if (!isRetry) {
params.add("cgeo", "1");
- params.add("sid", ECLogin.getInstance().getSessionId());
+ params.add("sid", ecLogin.getSessionId());
}
final HttpResponse response = Network.getRequest(API_HOST + uri, params);
@@ -144,7 +145,7 @@ public class ECApi {
// retry at most one time
if (!isRetry && response.getStatusLine().getStatusCode() == 403) {
- if (ECLogin.getInstance().login() == StatusCode.NO_ERROR) {
+ if (ecLogin.login() == StatusCode.NO_ERROR) {
return apiRequest(uri, params, true);
}
}
diff --git a/main/src/cgeo/geocaching/connector/ec/ECConnector.java b/main/src/cgeo/geocaching/connector/ec/ECConnector.java
index 987b4f2..6da076b 100644
--- a/main/src/cgeo/geocaching/connector/ec/ECConnector.java
+++ b/main/src/cgeo/geocaching/connector/ec/ECConnector.java
@@ -43,6 +43,8 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
* Pattern for EC codes
*/
private final static Pattern PATTERN_EC_CODE = Pattern.compile("EC[0-9]+", Pattern.CASE_INSENSITIVE);
+ private final CgeoApplication app = CgeoApplication.getInstance();
+ private final ECLogin ecLogin = ECLogin.getInstance();
private ECConnector() {
// singleton
@@ -130,11 +132,11 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
@Override
public boolean login(Handler handler, Context fromActivity) {
// login
- final StatusCode status = ECLogin.getInstance().login();
+ final StatusCode status = ecLogin.login();
- if (CgeoApplication.getInstance().showLoginToast && handler != null) {
+ if (app.showLoginToast && handler != null) {
handler.sendMessage(handler.obtainMessage(0, status));
- CgeoApplication.getInstance().showLoginToast = false;
+ app.showLoginToast = false;
// invoke settings activity to insert login details
if (status == StatusCode.NO_LOGIN_INFO_STORED && fromActivity != null) {
@@ -146,22 +148,22 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
@Override
public String getUserName() {
- return ECLogin.getInstance().getActualUserName();
+ return ecLogin.getActualUserName();
}
@Override
public int getCachesFound() {
- return ECLogin.getInstance().getActualCachesFound();
+ return ecLogin.getActualCachesFound();
}
@Override
public String getLoginStatusString() {
- return ECLogin.getInstance().getActualStatus();
+ return ecLogin.getActualStatus();
}
@Override
public boolean isLoggedIn() {
- return ECLogin.getInstance().isActualLoginStatus();
+ return ecLogin.isActualLoginStatus();
}
@Override
diff --git a/main/src/cgeo/geocaching/connector/ec/ECLogin.java b/main/src/cgeo/geocaching/connector/ec/ECLogin.java
index 041c55e..52bd423 100644
--- a/main/src/cgeo/geocaching/connector/ec/ECLogin.java
+++ b/main/src/cgeo/geocaching/connector/ec/ECLogin.java
@@ -19,6 +19,7 @@ import org.json.JSONObject;
public class ECLogin extends AbstractLogin {
+ private final CgeoApplication app = CgeoApplication.getInstance();
protected String sessionId = null;
private ECLogin() {
@@ -43,7 +44,7 @@ public class ECLogin extends AbstractLogin {
return StatusCode.NO_LOGIN_INFO_STORED;
}
- setActualStatus(CgeoApplication.getInstance().getString(R.string.init_login_popup_working));
+ setActualStatus(app.getString(R.string.init_login_popup_working));
final Parameters params = new Parameters("user", login.left, "pass", login.right);
HttpResponse loginResponse = Network.postRequest("https://extremcaching.com/exports/apilogin.php", params);
@@ -90,7 +91,7 @@ public class ECLogin extends AbstractLogin {
}
assert data != null;
- setActualStatus(CgeoApplication.getInstance().getString(R.string.init_login_popup_ok));
+ setActualStatus(app.getString(R.string.init_login_popup_ok));
try {
final JSONObject json = new JSONObject(data);
@@ -108,7 +109,7 @@ public class ECLogin extends AbstractLogin {
Log.e("ECLogin.getLoginStatus", e);
}
- setActualStatus(CgeoApplication.getInstance().getString(R.string.init_login_popup_failed));
+ setActualStatus(app.getString(R.string.init_login_popup_failed));
return false;
}