diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2013-12-31 14:17:38 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2013-12-31 14:20:26 +0100 |
| commit | 51fed3a37cf966cea0157659e5d95404f6e9db1d (patch) | |
| tree | 243bb30d6518f74687419784077ba79fade169ea | |
| parent | 089cdc5ca17871312565b89561332aaa68f39e1f (diff) | |
| download | cgeo-51fed3a37cf966cea0157659e5d95404f6e9db1d.zip cgeo-51fed3a37cf966cea0157659e5d95404f6e9db1d.tar.gz cgeo-51fed3a37cf966cea0157659e5d95404f6e9db1d.tar.bz2 | |
refactoring: cache singletons
| -rw-r--r-- | main/src/cgeo/geocaching/connector/ec/ECApi.java | 11 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/ec/ECConnector.java | 16 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/ec/ECLogin.java | 7 |
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; } |
