aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/connector/ConnectorFactory.java2
-rw-r--r--main/src/cgeo/geocaching/connector/capability/ISearchByCenter.java4
-rw-r--r--main/src/cgeo/geocaching/connector/capability/ISearchByGeocode.java4
-rw-r--r--main/src/cgeo/geocaching/connector/capability/ISearchByKeyword.java4
-rw-r--r--main/src/cgeo/geocaching/connector/capability/ISearchByViewPort.java4
-rw-r--r--main/src/cgeo/geocaching/connector/ec/ECConnector.java7
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java7
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OCApiConnector.java3
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java7
-rw-r--r--main/src/cgeo/geocaching/connector/ox/OXConnector.java37
-rw-r--r--main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java18
11 files changed, 65 insertions, 32 deletions
diff --git a/main/src/cgeo/geocaching/connector/ConnectorFactory.java b/main/src/cgeo/geocaching/connector/ConnectorFactory.java
index b11a731..a07c2d8 100644
--- a/main/src/cgeo/geocaching/connector/ConnectorFactory.java
+++ b/main/src/cgeo/geocaching/connector/ConnectorFactory.java
@@ -166,7 +166,7 @@ public final class ConnectorFactory {
}
/** @see ISearchByViewPort#searchByViewport */
- public static SearchResult searchByViewport(final Viewport viewport, final String[] tokens) {
+ public static SearchResult searchByViewport(final @NonNull Viewport viewport, final String[] tokens) {
final SearchResult result = new SearchResult();
for (final ISearchByViewPort vpconn : searchByViewPortConns) {
diff --git a/main/src/cgeo/geocaching/connector/capability/ISearchByCenter.java b/main/src/cgeo/geocaching/connector/capability/ISearchByCenter.java
index 91dd094..94e31cd 100644
--- a/main/src/cgeo/geocaching/connector/capability/ISearchByCenter.java
+++ b/main/src/cgeo/geocaching/connector/capability/ISearchByCenter.java
@@ -4,10 +4,12 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.connector.IConnector;
import cgeo.geocaching.geopoint.Geopoint;
+import org.eclipse.jdt.annotation.NonNull;
+
/**
* connector capability for online searching caches around a center coordinate, sorted by distance
*
*/
public interface ISearchByCenter extends IConnector {
- public SearchResult searchByCenter(final Geopoint center);
+ public SearchResult searchByCenter(final @NonNull Geopoint center);
}
diff --git a/main/src/cgeo/geocaching/connector/capability/ISearchByGeocode.java b/main/src/cgeo/geocaching/connector/capability/ISearchByGeocode.java
index 4c16049..7abc235 100644
--- a/main/src/cgeo/geocaching/connector/capability/ISearchByGeocode.java
+++ b/main/src/cgeo/geocaching/connector/capability/ISearchByGeocode.java
@@ -4,10 +4,12 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.connector.IConnector;
import cgeo.geocaching.utils.CancellableHandler;
+import org.eclipse.jdt.annotation.Nullable;
+
/**
* connector capability of searching online for a cache by geocode
*
*/
public interface ISearchByGeocode extends IConnector {
- public SearchResult searchByGeocode(final String geocode, final String guid, final CancellableHandler handler);
+ public SearchResult searchByGeocode(final @Nullable String geocode, final @Nullable String guid, final CancellableHandler handler);
}
diff --git a/main/src/cgeo/geocaching/connector/capability/ISearchByKeyword.java b/main/src/cgeo/geocaching/connector/capability/ISearchByKeyword.java
index 09b2423..07cb7b3 100644
--- a/main/src/cgeo/geocaching/connector/capability/ISearchByKeyword.java
+++ b/main/src/cgeo/geocaching/connector/capability/ISearchByKeyword.java
@@ -3,10 +3,12 @@ package cgeo.geocaching.connector.capability;
import cgeo.geocaching.SearchResult;
import cgeo.geocaching.connector.IConnector;
+import org.eclipse.jdt.annotation.NonNull;
+
/**
* connector capability of searching online for a cache by name
*
*/
public interface ISearchByKeyword extends IConnector {
- public SearchResult searchByName(final String name);
+ public SearchResult searchByName(final @NonNull String name);
}
diff --git a/main/src/cgeo/geocaching/connector/capability/ISearchByViewPort.java b/main/src/cgeo/geocaching/connector/capability/ISearchByViewPort.java
index 4954017..c04e9ed 100644
--- a/main/src/cgeo/geocaching/connector/capability/ISearchByViewPort.java
+++ b/main/src/cgeo/geocaching/connector/capability/ISearchByViewPort.java
@@ -4,6 +4,8 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.connector.IConnector;
import cgeo.geocaching.geopoint.Viewport;
+import org.eclipse.jdt.annotation.NonNull;
+
public interface ISearchByViewPort extends IConnector {
- public SearchResult searchByViewport(final Viewport viewport, final String[] tokens);
+ public SearchResult searchByViewport(final @NonNull Viewport viewport, final String[] tokens);
}
diff --git a/main/src/cgeo/geocaching/connector/ec/ECConnector.java b/main/src/cgeo/geocaching/connector/ec/ECConnector.java
index a270e4e..2aff7e9 100644
--- a/main/src/cgeo/geocaching/connector/ec/ECConnector.java
+++ b/main/src/cgeo/geocaching/connector/ec/ECConnector.java
@@ -22,6 +22,7 @@ import cgeo.geocaching.utils.CancellableHandler;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import android.content.Context;
import android.os.Handler;
@@ -77,7 +78,7 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public SearchResult searchByGeocode(final String geocode, final String guid, final CancellableHandler handler) {
+ public SearchResult searchByGeocode(final @Nullable String geocode, final @Nullable String guid, final CancellableHandler handler) {
CancellableHandler.sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_loadpage);
@@ -87,7 +88,7 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public SearchResult searchByViewport(Viewport viewport, String[] tokens) {
+ public SearchResult searchByViewport(@NonNull Viewport viewport, String[] tokens) {
final Collection<Geocache> caches = ECApi.searchByBBox(viewport);
if (caches == null) {
return null;
@@ -97,7 +98,7 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public SearchResult searchByCenter(Geopoint center) {
+ public SearchResult searchByCenter(@NonNull Geopoint center) {
final Collection<Geocache> caches = ECApi.searchByCenter(center);
if (caches == null) {
return null;
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
index 1bffb3a..3dd16e5 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
@@ -24,6 +24,7 @@ import cgeo.geocaching.utils.Log;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import android.content.Context;
import android.os.Handler;
@@ -127,7 +128,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public SearchResult searchByGeocode(final String geocode, final String guid, final CancellableHandler handler) {
+ public SearchResult searchByGeocode(final @Nullable String geocode, final @Nullable String guid, final CancellableHandler handler) {
CancellableHandler.sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_loadpage);
@@ -164,7 +165,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public SearchResult searchByViewport(Viewport viewport, String[] tokens) {
+ public SearchResult searchByViewport(@NonNull Viewport viewport, String[] tokens) {
return GCMap.searchByViewport(viewport, tokens);
}
@@ -264,7 +265,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
}
@Override
- public SearchResult searchByCenter(Geopoint center) {
+ public SearchResult searchByCenter(@NonNull Geopoint center) {
// TODO make search by coordinate use this method. currently it is just a marker that this connector supports search by center
return null;
}
diff --git a/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java b/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java
index ddf674f..46e4c96 100644
--- a/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java
+++ b/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java
@@ -9,6 +9,7 @@ import cgeo.geocaching.utils.CryptUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
public class OCApiConnector extends OCConnector implements ISearchByGeocode {
@@ -48,7 +49,7 @@ public class OCApiConnector extends OCConnector implements ISearchByGeocode {
}
@Override
- public SearchResult searchByGeocode(final String geocode, final String guid, final CancellableHandler handler) {
+ public SearchResult searchByGeocode(final @Nullable String geocode, final @Nullable String guid, final CancellableHandler handler) {
final Geocache cache = OkapiClient.getCache(geocode);
if (cache == null) {
return null;
diff --git a/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java b/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java
index 63ae341..9ae1872 100644
--- a/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java
+++ b/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java
@@ -17,6 +17,7 @@ import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.CryptUtils;
import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jdt.annotation.NonNull;
import android.content.Context;
import android.os.Handler;
@@ -44,12 +45,12 @@ public class OCApiLiveConnector extends OCApiConnector implements ISearchByCente
}
@Override
- public SearchResult searchByViewport(Viewport viewport, String[] tokens) {
+ public SearchResult searchByViewport(@NonNull Viewport viewport, String[] tokens) {
return new SearchResult(OkapiClient.getCachesBBox(viewport, this));
}
@Override
- public SearchResult searchByCenter(Geopoint center) {
+ public SearchResult searchByCenter(@NonNull Geopoint center) {
return new SearchResult(OkapiClient.getCachesAround(center, this));
}
@@ -155,7 +156,7 @@ public class OCApiLiveConnector extends OCApiConnector implements ISearchByCente
}
@Override
- public SearchResult searchByName(final String name) {
+ public SearchResult searchByName(final @NonNull String name) {
final Geopoint currentPos = CgeoApplication.getInstance().currentGeo().getCoords();
return new SearchResult(OkapiClient.getCachesNamed(currentPos, name, this));
}
diff --git a/main/src/cgeo/geocaching/connector/ox/OXConnector.java b/main/src/cgeo/geocaching/connector/ox/OXConnector.java
index 1653838..0cd49c3 100644
--- a/main/src/cgeo/geocaching/connector/ox/OXConnector.java
+++ b/main/src/cgeo/geocaching/connector/ox/OXConnector.java
@@ -6,6 +6,7 @@ import cgeo.geocaching.SearchResult;
import cgeo.geocaching.connector.AbstractConnector;
import cgeo.geocaching.connector.capability.ISearchByCenter;
import cgeo.geocaching.connector.capability.ISearchByGeocode;
+import cgeo.geocaching.connector.capability.ISearchByKeyword;
import cgeo.geocaching.connector.capability.ISearchByViewPort;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Viewport;
@@ -13,6 +14,7 @@ import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.CancellableHandler;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import java.util.Collection;
import java.util.regex.Pattern;
@@ -21,7 +23,7 @@ import java.util.regex.Pattern;
* connector for OpenCaching.com
*
*/
-public class OXConnector extends AbstractConnector implements ISearchByCenter, ISearchByGeocode, ISearchByViewPort {
+public class OXConnector extends AbstractConnector implements ISearchByCenter, ISearchByGeocode, ISearchByViewPort, ISearchByKeyword {
private static final Pattern PATTERN_GEOCODE = Pattern.compile("OX[A-Z0-9]+", Pattern.CASE_INSENSITIVE);
@@ -57,7 +59,10 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I
}
@Override
- public SearchResult searchByGeocode(String geocode, String guid, CancellableHandler handler) {
+ public SearchResult searchByGeocode(final @Nullable String geocode, final @Nullable String guid, final CancellableHandler handler) {
+ if (geocode == null) {
+ return null;
+ }
final Geocache cache = OpenCachingApi.searchByGeoCode(geocode);
if (cache == null) {
return null;
@@ -67,12 +72,8 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I
}
@Override
- public SearchResult searchByCenter(Geopoint center) {
- Collection<Geocache> caches = OpenCachingApi.searchByCenter(center);
- if (caches == null) {
- return null;
- }
- return new SearchResult(caches);
+ public SearchResult searchByCenter(@NonNull Geopoint center) {
+ return createSearchResult(OpenCachingApi.searchByCenter(center));
}
@Override
@@ -81,16 +82,24 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I
}
@Override
- public SearchResult searchByViewport(Viewport viewport, String[] tokens) {
- Collection<Geocache> caches = OpenCachingApi.searchByBoundingBox(viewport);
- if (caches == null) {
- return null;
- }
- return new SearchResult(caches);
+ public SearchResult searchByViewport(@NonNull Viewport viewport, String[] tokens) {
+ return createSearchResult(OpenCachingApi.searchByBoundingBox(viewport));
}
@Override
public boolean isActive() {
return Settings.isOXConnectorActive();
}
+
+ @Override
+ public SearchResult searchByName(final @NonNull String name) {
+ return createSearchResult(OpenCachingApi.searchByKeyword(name));
+ }
+
+ private static SearchResult createSearchResult(Collection<Geocache> caches) {
+ if (caches == null) {
+ return null;
+ }
+ return new SearchResult(caches);
+ }
}
diff --git a/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java b/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java
index 7fb3ffa..2defc52 100644
--- a/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java
+++ b/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java
@@ -13,6 +13,7 @@ import cgeo.geocaching.utils.Log;
import ch.boye.httpclientandroidlib.HttpResponse;
import org.apache.commons.collections4.CollectionUtils;
+import org.eclipse.jdt.annotation.NonNull;
import java.util.Collection;
import java.util.Collections;
@@ -22,7 +23,7 @@ public class OpenCachingApi {
private static final String API_URL_CACHES_GPX = "http://www.opencaching.com/api/geocache.gpx";
private static final String DEV_KEY = CryptUtils.rot13("PtqQnHo9RUTht3Np");
- public static Geocache searchByGeoCode(final String geocode) {
+ public static Geocache searchByGeoCode(final @NonNull String geocode) {
final HttpResponse response = getRequest("http://www.opencaching.com/api/geocache/" + geocode + ".gpx",
new Parameters(
"log_limit", "50",
@@ -54,7 +55,7 @@ public class OpenCachingApi {
return caches;
}
- public static Collection<Geocache> searchByCenter(final Geopoint center) {
+ public static Collection<Geocache> searchByCenter(final @NonNull Geopoint center) {
final HttpResponse response = getRequest(API_URL_CACHES_GPX,
new Parameters(
"log_limit", "0",
@@ -66,7 +67,7 @@ public class OpenCachingApi {
}
- public static Collection<Geocache> searchByBoundingBox(final Viewport viewport) {
+ public static Collection<Geocache> searchByBoundingBox(final @NonNull Viewport viewport) {
final String bbox = viewport.bottomLeft.format(GeopointFormatter.Format.LAT_LON_DECDEGREE_COMMA) + "," + viewport.topRight.format(GeopointFormatter.Format.LAT_LON_DECDEGREE_COMMA);
final HttpResponse response = getRequest(API_URL_CACHES_GPX,
new Parameters(
@@ -78,4 +79,15 @@ public class OpenCachingApi {
return importCachesFromResponse(response, false);
}
+ public static Collection<Geocache> searchByKeyword(final @NonNull String name) {
+ final HttpResponse response = getRequest(API_URL_CACHES_GPX,
+ new Parameters(
+ "log_limit", "5",
+ "hint", "false",
+ "description", "none",
+ "limit", "100",
+ "name", name));
+ return importCachesFromResponse(response, false);
+ }
+
}