aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java4
-rw-r--r--main/src/cgeo/geocaching/connector/ec/ECConnector.java10
-rw-r--r--main/src/cgeo/geocaching/connector/ox/OXConnector.java11
3 files changed, 25 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index b48fc58..da3100c 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -207,6 +207,10 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
geocode = MapsWithMeCacheListApp.getCacheFromMapsWithMe(this, getIntent());
}
+ if (geocode == null && uri != null) {
+ geocode = ConnectorFactory.getGeocodeFromURL(uri.toString());
+ }
+
// try to get data from URI
if (geocode == null && guid == null && uri != null) {
final String uriHost = uri.getHost().toLowerCase(Locale.US);
diff --git a/main/src/cgeo/geocaching/connector/ec/ECConnector.java b/main/src/cgeo/geocaching/connector/ec/ECConnector.java
index 15c2dc2..68dbee7 100644
--- a/main/src/cgeo/geocaching/connector/ec/ECConnector.java
+++ b/main/src/cgeo/geocaching/connector/ec/ECConnector.java
@@ -234,4 +234,14 @@ public class ECConnector extends AbstractConnector implements ISearchByGeocode,
return R.string.pref_ecpassword;
}
+ @Override
+ @Nullable
+ public String getGeocodeFromUrl(@NonNull final String url) {
+ final String geocode = "EC" + StringUtils.substringAfter(url, "extremcaching.com/index.php/output-2/");
+ if (canHandle(geocode)) {
+ return geocode;
+ }
+ return super.getGeocodeFromUrl(url);
+ }
+
}
diff --git a/main/src/cgeo/geocaching/connector/ox/OXConnector.java b/main/src/cgeo/geocaching/connector/ox/OXConnector.java
index 41035d1..d1db301 100644
--- a/main/src/cgeo/geocaching/connector/ox/OXConnector.java
+++ b/main/src/cgeo/geocaching/connector/ox/OXConnector.java
@@ -14,6 +14,7 @@ import cgeo.geocaching.location.Viewport;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.CancellableHandler;
+import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
@@ -109,4 +110,14 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I
}
return new SearchResult(caches);
}
+
+ @Override
+ @Nullable
+ public String getGeocodeFromUrl(@NonNull final String url) {
+ final String geocode = StringUtils.substringAfter(url, "http://www.opencaching.com/de/#!geocache/");
+ if (canHandle(geocode)) {
+ return geocode;
+ }
+ return super.getGeocodeFromUrl(url);
+ }
}