aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/AndroidManifest.xml11
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java28
2 files changed, 27 insertions, 12 deletions
diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml
index ef0b781..2d01358 100644
--- a/main/AndroidManifest.xml
+++ b/main/AndroidManifest.xml
@@ -232,6 +232,17 @@
<category android:name="android.intent.category.BROWSABLE" />
<data
+ android:host="www.geocaching.com"
+ android:pathPrefix="/geocache/GC"
+ android:scheme="http" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+
+ <data
android:host="geocaching.com"
android:pathPrefix="/seek/cache_details.aspx"
android:scheme="http" />
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index f43de4e..4a9cc6e 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -228,19 +228,23 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
if (uriHost.contains("geocaching.com")) {
- geocode = uri.getQueryParameter("wp");
- guid = uri.getQueryParameter("guid");
-
- if (StringUtils.isNotBlank(geocode)) {
- geocode = geocode.toUpperCase(Locale.US);
- guid = null;
- } else if (StringUtils.isNotBlank(guid)) {
- geocode = null;
- guid = guid.toLowerCase(Locale.US);
+ if (StringUtils.startsWith(uriPath, "/geocache/gc")) {
+ geocode = StringUtils.substringBefore(uriPath.substring(10), "_").toUpperCase(Locale.US);
} else {
- showToast(res.getString(R.string.err_detail_open));
- finish();
- return;
+ geocode = uri.getQueryParameter("wp");
+ guid = uri.getQueryParameter("guid");
+
+ if (StringUtils.isNotBlank(geocode)) {
+ geocode = geocode.toUpperCase(Locale.US);
+ guid = null;
+ } else if (StringUtils.isNotBlank(guid)) {
+ geocode = null;
+ guid = guid.toLowerCase(Locale.US);
+ } else {
+ showToast(res.getString(R.string.err_detail_open));
+ finish();
+ return;
+ }
}
} else if (uriHost.contains("coord.info")) {
if (StringUtils.startsWith(uriPath, "/gc")) {