diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2013-08-24 11:54:14 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2013-08-24 15:42:40 +0200 |
| commit | 077b3f0c0db45e7b17f48cd7f42889d7b44cd894 (patch) | |
| tree | 0986c0a38697b2fd38d25219aa32a433757350d2 | |
| parent | 23747c33e284a03380b7aed655d6a0d5fb78467c (diff) | |
| download | cgeo-077b3f0c0db45e7b17f48cd7f42889d7b44cd894.zip cgeo-077b3f0c0db45e7b17f48cd7f42889d7b44cd894.tar.gz cgeo-077b3f0c0db45e7b17f48cd7f42889d7b44cd894.tar.bz2 | |
fix #3182: new details URLs from geocaching
| -rw-r--r-- | main/AndroidManifest.xml | 11 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 28 |
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")) { |
