diff options
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 28 |
1 files changed, 16 insertions, 12 deletions
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")) { |
