diff options
Diffstat (limited to 'main')
20 files changed, 143 insertions, 60 deletions
diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml index 41f289e..e11f5c1 100644 --- a/main/res/values/preference_keys.xml +++ b/main/res/values/preference_keys.xml @@ -21,6 +21,7 @@ <string name="pref_ecusername">ecusername</string> <string name="pref_ecpassword">ecpassword</string> <string name="pref_connectorECActive">connectorECActive</string> + <string name="pref_connectorOXActive">connectorOXActive</string> <string name="pref_pass_vote">pass-vote</string> <string name="pref_twitter">twitter</string> <string name="pref_webDeviceName">webDeviceName</string> @@ -127,6 +128,7 @@ <string name="pref_fakekey_ocde_website">fakekey_ocde_website</string> <string name="pref_fakekey_ocpl_website">fakekey_ocpl_website</string> <string name="pref_fakekey_ec_website">fakekey_ec_website</string> + <string name="pref_fakekey_ox_website">fakekey_ox_website</string> <string name="pref_fakekey_gcvote_website">fakekey_gcvote_website</string> <string name="pref_fakekey_sendtocgeo_website">fakekey_sendtocgeo_website</string> <string name="pref_twitter_cache_message">twitter_cache_message</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 5110a73..5c6c8ae 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -394,8 +394,10 @@ <string name="settings_title_gc">Geocaching.com</string> <string name="settings_title_ec">Extremcaching.com</string> + <string name="settings_title_ox">Opencaching.com (Garmin)</string> <string name="settings_activate_gc">Activate</string> <string name="settings_activate_ec">Activate</string> + <string name="settings_activate_ox">Activate</string> <string name="settings_gc_legal_note">With using the service of geocaching.com, you accept the Groundspeak Terms of Use.</string> <string name="settings_info_facebook_login_title">Facebook Login</string> <string name="settings_info_facebook_login">You can\'t make c:geo login to geocaching.com with your Facebook account. But there is a simple workaround …</string> diff --git a/main/res/xml/preferences.xml b/main/res/xml/preferences.xml index 8c72ae0..b7fd880 100644 --- a/main/res/xml/preferences.xml +++ b/main/res/xml/preferences.xml @@ -161,6 +161,43 @@ </PreferenceCategory> </PreferenceScreen> + <PreferenceScreen android:title="@string/settings_title_ox" > + <PreferenceCategory android:title="@string/settings_settings" > + <CheckBoxPreference + android:defaultValue="false" + android:key="@string/pref_connectorOXActive" + android:title="@string/settings_activate_ox" /> +<!-- + <EditTextPreference + android:dependency="@string/pref_connectorECActive" + android:dialogTitle="@string/init_username" + android:hint="@string/init_username" + android:imeOptions="actionDone" + android:key="@string/pref_ecusername" + android:singleLine="true" + android:title="@string/init_username" /> + + <cgeo.geocaching.settings.EditPasswordPreference + android:dependency="@string/pref_connectorECActive" + android:dialogTitle="@string/init_password" + android:hint="@string/init_password" + android:imeOptions="actionDone" + android:inputType="textPassword" + android:key="@string/pref_ecpassword" + android:singleLine="true" + android:title="@string/init_password" /> + <cgeo.geocaching.settings.CheckECCredentialsPreference + android:dependency="@string/pref_connectorECActive" + android:title="@string/init_login" /> + --> + </PreferenceCategory> + <PreferenceCategory android:title="@string/settings_information" > + <Preference + android:key="@string/pref_fakekey_ox_website" + android:title="@string/settings_open_website" /> + </PreferenceCategory> + </PreferenceScreen> + <PreferenceScreen android:title="@string/init_gcvote" > <PreferenceCategory android:title="@string/settings_settings" > <cgeo.geocaching.settings.EditPasswordPreference diff --git a/main/src/cgeo/geocaching/connector/AbstractConnector.java b/main/src/cgeo/geocaching/connector/AbstractConnector.java index 5e102b9..4edb6d6 100644 --- a/main/src/cgeo/geocaching/connector/AbstractConnector.java +++ b/main/src/cgeo/geocaching/connector/AbstractConnector.java @@ -89,7 +89,7 @@ public abstract class AbstractConnector implements IConnector { } @Override - public String getLicenseText(final Geocache cache) { + public String getLicenseText(final @NonNull Geocache cache) { return null; } @@ -133,7 +133,7 @@ public abstract class AbstractConnector implements IConnector { abstract protected String getCacheUrlPrefix(); @Override - public String getLongCacheUrl(final Geocache cache) { + public String getLongCacheUrl(final @NonNull Geocache cache) { return getCacheUrl(cache); } @@ -141,7 +141,7 @@ public abstract class AbstractConnector implements IConnector { * {@link IConnector} */ @Override - public boolean isActivated() { + public boolean isActive() { return false; } diff --git a/main/src/cgeo/geocaching/connector/ConnectorFactory.java b/main/src/cgeo/geocaching/connector/ConnectorFactory.java index 5c5d9db..b11a731 100644 --- a/main/src/cgeo/geocaching/connector/ConnectorFactory.java +++ b/main/src/cgeo/geocaching/connector/ConnectorFactory.java @@ -109,7 +109,7 @@ public final class ConnectorFactory { public static ILogin[] getActiveLiveConnectors() { final List<ILogin> liveConns = new ArrayList<ILogin>(); for (final IConnector conn : CONNECTORS) { - if (conn instanceof ILogin && conn.isActivated()) { + if (conn instanceof ILogin && conn.isActive()) { liveConns.add((ILogin) conn); } } @@ -170,7 +170,7 @@ public final class ConnectorFactory { final SearchResult result = new SearchResult(); for (final ISearchByViewPort vpconn : searchByViewPortConns) { - if (vpconn.isActivated()) { + if (vpconn.isActive()) { result.addSearchResult(vpconn.searchByViewport(viewport, tokens)); } } diff --git a/main/src/cgeo/geocaching/connector/GeocachingAustraliaConnector.java b/main/src/cgeo/geocaching/connector/GeocachingAustraliaConnector.java index ac2fb37..3992013 100644 --- a/main/src/cgeo/geocaching/connector/GeocachingAustraliaConnector.java +++ b/main/src/cgeo/geocaching/connector/GeocachingAustraliaConnector.java @@ -4,6 +4,7 @@ import cgeo.geocaching.Geocache; import cgeo.geocaching.ICache; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.NonNull; public class GeocachingAustraliaConnector extends AbstractConnector { @@ -13,7 +14,7 @@ public class GeocachingAustraliaConnector extends AbstractConnector { } @Override - public String getCacheUrl(final Geocache cache) { + public String getCacheUrl(final @NonNull Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } @@ -28,7 +29,7 @@ public class GeocachingAustraliaConnector extends AbstractConnector { } @Override - public boolean canHandle(final String geocode) { + public boolean canHandle(final @NonNull String geocode) { return (StringUtils.startsWithIgnoreCase(geocode, "GA") || StringUtils.startsWithIgnoreCase(geocode, "TP")) && isNumericId(geocode.substring(2)); } diff --git a/main/src/cgeo/geocaching/connector/GeopeitusConnector.java b/main/src/cgeo/geocaching/connector/GeopeitusConnector.java index 500f752..aa08485 100644 --- a/main/src/cgeo/geocaching/connector/GeopeitusConnector.java +++ b/main/src/cgeo/geocaching/connector/GeopeitusConnector.java @@ -4,6 +4,7 @@ import cgeo.geocaching.Geocache; import cgeo.geocaching.ICache; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.NonNull; public class GeopeitusConnector extends AbstractConnector { @@ -13,7 +14,7 @@ public class GeopeitusConnector extends AbstractConnector { } @Override - public String getCacheUrl(final Geocache cache) { + public String getCacheUrl(final @NonNull Geocache cache) { return getCacheUrlPrefix() + StringUtils.stripStart(cache.getGeocode().substring(2), "0"); } @@ -28,7 +29,7 @@ public class GeopeitusConnector extends AbstractConnector { } @Override - public boolean canHandle(String geocode) { + public boolean canHandle(@NonNull String geocode) { return StringUtils.startsWith(geocode, "GE") && isNumericId(geocode.substring(2)); } diff --git a/main/src/cgeo/geocaching/connector/IConnector.java b/main/src/cgeo/geocaching/connector/IConnector.java index f5f70b0..a0deb5c 100644 --- a/main/src/cgeo/geocaching/connector/IConnector.java +++ b/main/src/cgeo/geocaching/connector/IConnector.java @@ -19,20 +19,21 @@ public interface IConnector { public String getName(); /** - * return true, if this connector is responsible for the given cache + * Check if this connector is responsible for the given geocode. * * @param geocode - * @return + * geocode of a cache + * @return return {@code true}, if this connector is responsible for the cache */ public boolean canHandle(final @NonNull String geocode); /** - * get browser URL for the given cache + * Get the browser URL for the given cache. * * @param cache * @return */ - public String getCacheUrl(final Geocache cache); + public String getCacheUrl(final @NonNull Geocache cache); /** * get long browser URL for the given cache @@ -40,7 +41,7 @@ public interface IConnector { * @param cache * @return */ - public String getLongCacheUrl(final Geocache cache); + public String getLongCacheUrl(final @NonNull Geocache cache); /** * enable/disable watchlist controls in cache details @@ -94,19 +95,19 @@ public interface IConnector { public ILoggingManager getLoggingManager(final LogCacheActivity activity, final Geocache cache); /** - * get host name of the connector server for dynamic loading of data + * Get host name of the connector server for dynamic loading of data. * * @return */ public String getHost(); /** - * get cache data license text + * Get cache data license text. This is displayed somewhere near the cache details. * * @param cache * @return */ - public String getLicenseText(final Geocache cache); + public String getLicenseText(final @NonNull Geocache cache); /** * enable/disable user actions in cache details @@ -180,13 +181,13 @@ public interface IConnector { public boolean uploadModifiedCoordinates(Geocache cache, Geopoint wpt); /** - * Return true if this connector is activated for online - * interaction (download details, do searches, ...) + * Return {@code true} if this connector is active for online interaction (download details, do searches, ...). If + * this is {@code false}, the connector will still be used for already stored offline caches. * * @return */ - public boolean isActivated(); + public boolean isActive(); /** * Check if the current user is the owner of the given cache. @@ -215,7 +216,7 @@ public interface IConnector { public int getCacheMapMarkerId(boolean disabled); /** - * Get the list of <b>potentially</b> possible log types for a cache. Those may still be filter further during the + * Get the list of <b>potentially</b> possible log types for a cache. Those may still be filtered further during the * actual logging activity. * * @param geocache @@ -224,8 +225,8 @@ public interface IConnector { public List<LogType> getPossibleLogTypes(Geocache geocache); /** - * Get the gpx id for a waypoint when exporting. For some connectors there is an inherent name logic, - * for others its just the 'prefix' + * Get the GPX id for a waypoint when exporting. For some connectors there is an inherent name logic, + * for others its just the 'prefix'. * * @param prefix * @return @@ -233,7 +234,7 @@ public interface IConnector { public String getWaypointGpxId(String prefix, String geocode); /** - * Get the 'prefix' (key) for a waypoint from the 'name' in the gpx file + * Get the 'prefix' (key) for a waypoint from the 'name' in the GPX file * * @param name * @return diff --git a/main/src/cgeo/geocaching/connector/UnknownConnector.java b/main/src/cgeo/geocaching/connector/UnknownConnector.java index e9fecb9..05593d7 100644 --- a/main/src/cgeo/geocaching/connector/UnknownConnector.java +++ b/main/src/cgeo/geocaching/connector/UnknownConnector.java @@ -4,6 +4,7 @@ import cgeo.geocaching.Geocache; import cgeo.geocaching.ICache; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.NonNull; public class UnknownConnector extends AbstractConnector { @@ -13,7 +14,7 @@ public class UnknownConnector extends AbstractConnector { } @Override - public String getCacheUrl(Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return null; // we have no url for these caches } @@ -28,7 +29,7 @@ public class UnknownConnector extends AbstractConnector { } @Override - public boolean canHandle(final String geocode) { + public boolean canHandle(final @NonNull String geocode) { return StringUtils.isNotBlank(geocode); } diff --git a/main/src/cgeo/geocaching/connector/WaymarkingConnector.java b/main/src/cgeo/geocaching/connector/WaymarkingConnector.java index f184f6e..282ee31 100644 --- a/main/src/cgeo/geocaching/connector/WaymarkingConnector.java +++ b/main/src/cgeo/geocaching/connector/WaymarkingConnector.java @@ -4,6 +4,7 @@ import cgeo.geocaching.Geocache; import cgeo.geocaching.ICache; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.NonNull; public class WaymarkingConnector extends AbstractConnector { @@ -13,7 +14,7 @@ public class WaymarkingConnector extends AbstractConnector { } @Override - public String getCacheUrl(Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } @@ -34,7 +35,7 @@ public class WaymarkingConnector extends AbstractConnector { } @Override - public boolean canHandle(String geocode) { + public boolean canHandle(@NonNull String geocode) { return StringUtils.startsWith(geocode, "WM"); } } diff --git a/main/src/cgeo/geocaching/connector/ec/ECConnector.java b/main/src/cgeo/geocaching/connector/ec/ECConnector.java index ee538a3..a270e4e 100644 --- a/main/src/cgeo/geocaching/connector/ec/ECConnector.java +++ b/main/src/cgeo/geocaching/connector/ec/ECConnector.java @@ -62,7 +62,7 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode, } @Override - public String getCacheUrl(Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return CACHE_URL + cache.getGeocode().replace("EC", ""); } @@ -117,7 +117,7 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode, } @Override - public boolean isActivated() { + public boolean isActive() { return Settings.isECConnectorActive(); } @@ -172,7 +172,7 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode, } @Override - public String getLicenseText(final Geocache cache) { + public String getLicenseText(final @NonNull Geocache cache) { // NOT TO BE TRANSLATED return "© " + cache.getOwnerDisplayName() + ", <a href=\"" + getCacheUrl(cache) + "\">" + getName() + "</a>, CC BY-NC-ND 3.0, alle Logeinträge © jeweiliger Autor"; } diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java index 3faebad..1bffb3a 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java @@ -23,6 +23,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 android.content.Context; import android.os.Handler; @@ -61,20 +62,17 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode, } @Override - public boolean canHandle(String geocode) { - if (geocode == null) { - return false; - } + public boolean canHandle(@NonNull String geocode) { return GCConnector.PATTERN_GC_CODE.matcher(geocode).matches(); } @Override - public String getLongCacheUrl(Geocache cache) { + public String getLongCacheUrl(@NonNull Geocache cache) { return CACHE_URL_LONG + cache.getGeocode(); } @Override - public String getCacheUrl(Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return CACHE_URL_SHORT + cache.getGeocode(); } @@ -282,7 +280,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode, } @Override - public boolean isActivated() { + public boolean isActive() { return Settings.isGCConnectorActive(); } diff --git a/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java b/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java index d43d06b..ddf674f 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java @@ -8,6 +8,7 @@ import cgeo.geocaching.utils.CancellableHandler; import cgeo.geocaching.utils.CryptUtils; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.NonNull; public class OCApiConnector extends OCConnector implements ISearchByGeocode { @@ -41,7 +42,7 @@ public class OCApiConnector extends OCConnector implements ISearchByGeocode { } @Override - public String getLicenseText(final Geocache cache) { + public String getLicenseText(final @NonNull Geocache cache) { // NOT TO BE TRANSLATED return "© " + cache.getOwnerDisplayName() + ", <a href=\"" + getCacheUrl(cache) + "\">" + getName() + "</a>, " + licenseString; } @@ -56,7 +57,7 @@ public class OCApiConnector extends OCConnector implements ISearchByGeocode { } @Override - public boolean isActivated() { + public boolean isActive() { // currently always active, but only for details download return true; } diff --git a/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java b/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java index b1b9088..63ae341 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java @@ -39,7 +39,7 @@ public class OCApiLiveConnector extends OCApiConnector implements ISearchByCente } @Override - public boolean isActivated() { + public boolean isActive() { return Settings.isOCConnectorActive(isActivePrefKeyId); } diff --git a/main/src/cgeo/geocaching/connector/oc/OCConnector.java b/main/src/cgeo/geocaching/connector/oc/OCConnector.java index b5c62ea..1ba88d5 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCConnector.java @@ -6,6 +6,8 @@ import cgeo.geocaching.R; import cgeo.geocaching.connector.AbstractConnector; import cgeo.geocaching.enumerations.LogType; +import org.eclipse.jdt.annotation.NonNull; + import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; @@ -27,10 +29,7 @@ public class OCConnector extends AbstractConnector { } @Override - public boolean canHandle(String geocode) { - if (geocode == null) { - return false; - } + public boolean canHandle(@NonNull String geocode) { return codePattern.matcher(geocode).matches(); } @@ -40,7 +39,7 @@ public class OCConnector extends AbstractConnector { } @Override - public String getCacheUrl(Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } diff --git a/main/src/cgeo/geocaching/connector/ox/OXConnector.java b/main/src/cgeo/geocaching/connector/ox/OXConnector.java index af33bb6..1653838 100644 --- a/main/src/cgeo/geocaching/connector/ox/OXConnector.java +++ b/main/src/cgeo/geocaching/connector/ox/OXConnector.java @@ -3,13 +3,17 @@ package cgeo.geocaching.connector.ox; import cgeo.geocaching.Geocache; import cgeo.geocaching.ICache; import cgeo.geocaching.SearchResult; -import cgeo.geocaching.settings.Settings; import cgeo.geocaching.connector.AbstractConnector; import cgeo.geocaching.connector.capability.ISearchByCenter; import cgeo.geocaching.connector.capability.ISearchByGeocode; +import cgeo.geocaching.connector.capability.ISearchByViewPort; import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.Viewport; +import cgeo.geocaching.settings.Settings; import cgeo.geocaching.utils.CancellableHandler; +import org.eclipse.jdt.annotation.NonNull; + import java.util.Collection; import java.util.regex.Pattern; @@ -17,17 +21,17 @@ import java.util.regex.Pattern; * connector for OpenCaching.com * */ -public class OXConnector extends AbstractConnector implements ISearchByCenter, ISearchByGeocode { +public class OXConnector extends AbstractConnector implements ISearchByCenter, ISearchByGeocode, ISearchByViewPort { private static final Pattern PATTERN_GEOCODE = Pattern.compile("OX[A-Z0-9]+", Pattern.CASE_INSENSITIVE); @Override - public boolean canHandle(String geocode) { + public boolean canHandle(@NonNull String geocode) { return PATTERN_GEOCODE.matcher(geocode).matches(); } @Override - public String getCacheUrl(Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } @@ -42,9 +46,9 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I } @Override - public String getLicenseText(Geocache cache) { + public String getLicenseText(@NonNull Geocache cache) { // NOT TO BE TRANSLATED - return "<a href=\"" + getCacheUrl(cache) + "\">" + getName() + "</a> data licensed under the Creative Commons BY-SA 3.0 License"; + return "<a href=\"" + getCacheUrl(cache) + "\">" + getName() + "</a> data licensed under the Creative Commons CC-BY-SA 3.0 License"; } @Override @@ -75,4 +79,18 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I protected String getCacheUrlPrefix() { return "http://www.opencaching.com/#!geocache/"; } + + @Override + public SearchResult searchByViewport(Viewport viewport, String[] tokens) { + Collection<Geocache> caches = OpenCachingApi.searchByBoundingBox(viewport); + if (caches == null) { + return null; + } + return new SearchResult(caches); + } + + @Override + public boolean isActive() { + return Settings.isOXConnectorActive(); + } } diff --git a/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java b/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java index 9d1dfc7..5e3d0a1 100644 --- a/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java +++ b/main/src/cgeo/geocaching/connector/ox/OpenCachingApi.java @@ -3,6 +3,7 @@ package cgeo.geocaching.connector.ox; import cgeo.geocaching.Geocache; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.geopoint.GeopointFormatter; +import cgeo.geocaching.geopoint.Viewport; import cgeo.geocaching.list.StoredList; import cgeo.geocaching.network.Network; import cgeo.geocaching.network.Parameters; @@ -18,13 +19,13 @@ import java.util.Collections; 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) { - final HttpResponse response = Network.getRequest("http://www.opencaching.com/api/geocache/" + geocode + ".gpx", + final HttpResponse response = getRequest("http://www.opencaching.com/api/geocache/" + geocode + ".gpx", new Parameters( - "Authorization", DEV_KEY, - "log_limit", "30", + "log_limit", "50", "hint", "true", "description", "html")); final Collection<Geocache> caches = importCachesFromResponse(response, true); @@ -34,6 +35,11 @@ public class OpenCachingApi { return null; } + private static HttpResponse getRequest(String string, Parameters parameters) { + parameters.add("Authorization", DEV_KEY); + return Network.getRequest(string, parameters); + } + private static Collection<Geocache> importCachesFromResponse(final HttpResponse response, final boolean isDetailed) { if (response == null) { return Collections.emptyList(); @@ -49,16 +55,27 @@ public class OpenCachingApi { } public static Collection<Geocache> searchByCenter(final Geopoint center) { - final HttpResponse response = Network.getRequest("http://www.opencaching.com/api/geocache/.gpx", + final HttpResponse response = getRequest(API_URL_CACHES_GPX, new Parameters( - "Authorization", DEV_KEY, "log_limit", "0", "hint", "false", "description", "none", - "limit", "10", + "limit", "20", "center", center.format(GeopointFormatter.Format.LAT_LON_DECDEGREE_COMMA))); return importCachesFromResponse(response, false); } + public static Collection<Geocache> searchByBoundingBox(final 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( + "log_limit", "0", + "hint", "false", + "description", "none", + "limit", "100", + "bbox", bbox)); + return importCachesFromResponse(response, false); + } + } diff --git a/main/src/cgeo/geocaching/loaders/CoordsGeocacheListLoader.java b/main/src/cgeo/geocaching/loaders/CoordsGeocacheListLoader.java index 34b3a61..d070d71 100644 --- a/main/src/cgeo/geocaching/loaders/CoordsGeocacheListLoader.java +++ b/main/src/cgeo/geocaching/loaders/CoordsGeocacheListLoader.java @@ -26,7 +26,7 @@ public class CoordsGeocacheListLoader extends AbstractSearchLoader { } for (ISearchByCenter centerConn : ConnectorFactory.getSearchByCenterConnectors()) { - if (centerConn.isActivated()) { + if (centerConn.isActive()) { search.addSearchResult(centerConn.searchByCenter(coords)); } } diff --git a/main/src/cgeo/geocaching/loaders/KeywordGeocacheListLoader.java b/main/src/cgeo/geocaching/loaders/KeywordGeocacheListLoader.java index c8132e7..0d8fcb1 100644 --- a/main/src/cgeo/geocaching/loaders/KeywordGeocacheListLoader.java +++ b/main/src/cgeo/geocaching/loaders/KeywordGeocacheListLoader.java @@ -25,7 +25,7 @@ public class KeywordGeocacheListLoader extends AbstractSearchLoader { } for (ISearchByKeyword connector : ConnectorFactory.getSearchByKeywordConnectors()) { - if (connector.isActivated()) { + if (connector.isActive()) { searchResult.addSearchResult(connector.searchByName(keyword)); } } diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java index 176e07d..ca2da78 100644 --- a/main/src/cgeo/geocaching/settings/Settings.java +++ b/main/src/cgeo/geocaching/settings/Settings.java @@ -315,6 +315,10 @@ public class Settings { return getBoolean(R.string.pref_connectorECActive, false); } + public static boolean isOXConnectorActive() { + return getBoolean(R.string.pref_connectorOXActive, false); + } + public static boolean isPremiumMember() { // Basic Member, Premium Member, ??? return GCConstants.MEMBER_STATUS_PM.equalsIgnoreCase(Settings.getMemberStatus()); |
