aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/gc
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/connector/gc')
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java6
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCLoggingManager.java7
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCMap.java4
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCParser.java22
-rw-r--r--main/src/cgeo/geocaching/connector/gc/Login.java5
-rw-r--r--main/src/cgeo/geocaching/connector/gc/SearchHandler.java2
6 files changed, 24 insertions, 22 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
index 835359a..9ac9c9d 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
@@ -2,6 +2,7 @@ package cgeo.geocaching.connector.gc;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.ICache;
+import cgeo.geocaching.LogCacheActivity;
import cgeo.geocaching.R;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgData;
@@ -15,15 +16,14 @@ import cgeo.geocaching.connector.capability.ISearchByViewPort;
import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Viewport;
-import cgeo.geocaching.settings.SettingsActivity;
import cgeo.geocaching.settings.Settings;
+import cgeo.geocaching.settings.SettingsActivity;
import cgeo.geocaching.utils.CancellableHandler;
import cgeo.geocaching.utils.Log;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
-import android.app.Activity;
import android.content.Context;
import android.os.Handler;
@@ -104,7 +104,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public ILoggingManager getLoggingManager(Activity activity, Geocache cache) {
+ public ILoggingManager getLoggingManager(final LogCacheActivity activity, final Geocache cache) {
return new GCLoggingManager(activity, cache);
}
diff --git a/main/src/cgeo/geocaching/connector/gc/GCLoggingManager.java b/main/src/cgeo/geocaching/connector/gc/GCLoggingManager.java
index 2aa5c75..dfb1f55 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCLoggingManager.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCLoggingManager.java
@@ -3,7 +3,6 @@ package cgeo.geocaching.connector.gc;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.LogCacheActivity;
import cgeo.geocaching.R;
-import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.TrackableLog;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.connector.ILoggingManager;
@@ -13,12 +12,12 @@ import cgeo.geocaching.enumerations.LogType;
import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.loaders.UrlLoader;
import cgeo.geocaching.network.Parameters;
+import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.Log;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
-import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
@@ -38,8 +37,8 @@ public class GCLoggingManager implements ILoggingManager, LoaderManager.LoaderCa
private List<LogType> possibleLogTypes;
private boolean hasLoaderError = true;
- public GCLoggingManager(Activity activity, Geocache cache) {
- this.activity = (LogCacheActivity) activity;
+ public GCLoggingManager(final LogCacheActivity activity, final Geocache cache) {
+ this.activity = activity;
this.cache = cache;
}
diff --git a/main/src/cgeo/geocaching/connector/gc/GCMap.java b/main/src/cgeo/geocaching/connector/gc/GCMap.java
index 4fdde56..27d8a77 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCMap.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCMap.java
@@ -236,7 +236,9 @@ public class GCMap {
}
Log.d("Retrieved " + searchResult.getCount() + " caches for tile " + tile.toString());
- } catch (Exception e) {
+ } catch (RuntimeException e) {
+ Log.e("GCMap.parseMapJSON", e);
+ } catch (JSONException e) {
Log.e("GCMap.parseMapJSON", e);
}
diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java
index 34e48ab..7eacb8e 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCParser.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java
@@ -147,7 +147,7 @@ public abstract class GCParser {
}
}
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse GUID and/or Disabled
Log.w("GCParser.parseSearch: Failed to parse GUID and/or Disabled data");
}
@@ -309,7 +309,7 @@ public abstract class GCParser {
final String coordinates = Network.getResponseData(Network.postRequest("http://www.geocaching.com/seek/nearest.aspx", params), false);
if (StringUtils.isNotBlank(coordinates)) {
- if (coordinates.contains("You have not agreed to the license agreement. The license agreement is required before you can start downloading GPX or LOC files from Geocaching.com")) {
+ if (coordinates != null && coordinates.contains("You have not agreed to the license agreement. The license agreement is required before you can start downloading GPX or LOC files from Geocaching.com")) {
Log.i("User has not agreed to the license agreement. Can\'t download .loc file.");
searchResult.setError(StatusCode.UNAPPROVED_LICENSE);
@@ -320,7 +320,7 @@ public abstract class GCParser {
LocParser.parseLoc(searchResult, coordinates);
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
Log.e("GCParser.parseSearch.CIDs", e);
}
}
@@ -569,7 +569,7 @@ public abstract class GCParser {
}
cache.setAttributes(attributes);
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse cache attributes
Log.w("GCParser.parseCache: Failed to parse cache attributes");
}
@@ -598,7 +598,7 @@ public abstract class GCParser {
}
cache.addSpoiler(new Image(url, title, description));
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse cache spoilers
Log.w("GCParser.parseCache: Failed to parse cache spoilers");
}
@@ -632,7 +632,7 @@ public abstract class GCParser {
}
}
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse cache inventory
Log.w("GCParser.parseCache: Failed to parse cache inventory (2)");
}
@@ -654,7 +654,7 @@ public abstract class GCParser {
}
}
}
- } catch (final Exception e) {
+ } catch (final NumberFormatException e) {
// failed to parse logs
Log.w("GCParser.parseCache: Failed to parse cache log count");
}
@@ -1083,7 +1083,7 @@ public abstract class GCParser {
page = Network.getResponseData(Network.postRequest(uri, params));
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
Log.e("GCParser.postLog.confim", e);
}
@@ -1396,7 +1396,7 @@ public abstract class GCParser {
trackable.setOwnerGuid(matcherOwner.group(1));
trackable.setOwner(matcherOwner.group(2).trim());
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse trackable owner name
Log.w("GCParser.parseTrackable: Failed to parse trackable owner name");
}
@@ -1427,7 +1427,7 @@ public abstract class GCParser {
if (TextUtils.matches(page, GCConstants.PATTERN_TRACKABLE_SPOTTEDOWNER)) {
trackable.setSpottedType(Trackable.SPOTTED_OWNER);
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse trackable last known place
Log.w("GCParser.parseTrackable: Failed to parse trackable last known place");
}
@@ -1476,7 +1476,7 @@ public abstract class GCParser {
trackable.setDetails(convertLinks(details));
}
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// failed to parse trackable details & image
Log.w("GCParser.parseTrackable: Failed to parse trackable details & image");
}
diff --git a/main/src/cgeo/geocaching/connector/gc/Login.java b/main/src/cgeo/geocaching/connector/gc/Login.java
index 0d8fb05..10ea18d 100644
--- a/main/src/cgeo/geocaching/connector/gc/Login.java
+++ b/main/src/cgeo/geocaching/connector/gc/Login.java
@@ -114,7 +114,7 @@ public abstract class Login {
loginResponse = Network.postRequest("https://www.geocaching.com/login/default.aspx", params);
loginData = Network.getResponseData(loginResponse);
- if (StringUtils.isBlank(loginData)) {
+ if (loginData == null || StringUtils.isBlank(loginData)) {
Log.e("Login.login: Failed to retrieve login page (2nd)");
// FIXME: should it be CONNECTION_FAILED to match the first attempt?
return StatusCode.COMMUNICATION_ERROR; // no login page
@@ -276,7 +276,8 @@ public abstract class Login {
public static BitmapDrawable downloadAvatarAndGetMemberStatus() {
try {
- final String profile = TextUtils.replaceWhitespace(Network.getResponseData(Network.getRequest("http://www.geocaching.com/my/")));
+ final String responseData = StringUtils.defaultString(Network.getResponseData(Network.getRequest("http://www.geocaching.com/my/")));
+ final String profile = TextUtils.replaceWhitespace(responseData);
Settings.setMemberStatus(TextUtils.getMatch(profile, GCConstants.PATTERN_MEMBER_STATUS, true, null));
if (profile.contains(GCConstants.MEMBER_STATUS_RENEW)) {
diff --git a/main/src/cgeo/geocaching/connector/gc/SearchHandler.java b/main/src/cgeo/geocaching/connector/gc/SearchHandler.java
index 4358399..795ed2f 100644
--- a/main/src/cgeo/geocaching/connector/gc/SearchHandler.java
+++ b/main/src/cgeo/geocaching/connector/gc/SearchHandler.java
@@ -91,7 +91,7 @@ public class SearchHandler extends Handler {
dlg.create().show();
}
- } catch (Exception e) {
+ } catch (MalformedURLException e) {
Log.e("Error in reCAPTCHA handler", e);
}
}