aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/CacheDetailActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/CacheDetailActivity.java')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java50
1 files changed, 29 insertions, 21 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 45a1dd2..e04f7ed 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -228,22 +228,26 @@ 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 (uriPath != null && uriPath.startsWith("/gc")) {
+ if (StringUtils.startsWith(uriPath, "/gc")) {
geocode = uriPath.substring(1).toUpperCase(Locale.US);
} else {
showToast(res.getString(R.string.err_detail_open));
@@ -251,7 +255,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return;
}
} else if (uriHost.contains("opencaching.de")) {
- if (uriPath != null && uriPath.startsWith("/oc")) {
+ if (StringUtils.startsWith(uriPath, "/oc")) {
geocode = uriPath.substring(1).toUpperCase(Locale.US);
} else {
geocode = uri.getQueryParameter("wp");
@@ -287,7 +291,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
title = geocode;
}
progress.show(this, title, res.getString(R.string.cache_dialog_loading_details), true, loadCacheHandler.cancelMessage());
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
// nothing, we lost the window
}
@@ -418,7 +422,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
break;
}
}
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
}
}
break;
@@ -434,7 +438,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
menu.setHeaderTitle(fieldTitle);
menu.add(viewId, MENU_FIELD_COPY, 0, res.getString(android.R.string.copy));
if (!copyOnly) {
- if (clickedItemText.length() > TranslationUtils.translationTextLengthToWarn) {
+ if (clickedItemText.length() > TranslationUtils.TRANSLATION_TEXT_LENGTH_WARN) {
showToast(res.getString(R.string.translate_length_warning));
}
menu.add(viewId, MENU_FIELD_TRANSLATE, 0, res.getString(R.string.translate_to_sys_lang, Locale.getDefault().getDisplayLanguage()));
@@ -1275,7 +1279,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
private Handler handler;
public DropCacheThread(Handler handler) {
- super();
this.handler = handler;
}
@@ -1611,7 +1614,8 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return;
}
- ((ImageView) view.findViewById(R.id.map_preview)).setImageDrawable(image);
+ final ImageView imageView = (ImageView) view.findViewById(R.id.map_preview);
+ imageView.setImageDrawable(image);
view.findViewById(R.id.map_preview_box).setVisibility(View.VISIBLE);
} catch (final Exception e) {
Log.e("CacheDetailActivity.PreviewMapTask", e);
@@ -1702,12 +1706,16 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
hintView.setVisibility(View.VISIBLE);
hintView.setClickable(true);
- hintView.setOnClickListener(new DecryptTextClickListener());
+ hintView.setOnClickListener(new DecryptTextClickListener(hintView));
+ hintBoxView.setOnClickListener(new DecryptTextClickListener(hintView));
+ hintBoxView.setClickable(true);
registerForContextMenu(hintView);
} else {
hintView.setVisibility(View.GONE);
hintView.setClickable(false);
hintView.setOnClickListener(null);
+ hintBoxView.setClickable(false);
+ hintBoxView.setOnClickListener(null);
}
final TextView spoilerlinkView = ((TextView) view.findViewById(R.id.hint_spoilerlink));
@@ -2448,7 +2456,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
protected void storeCache(final int listId, final StoreCacheHandler storeCacheHandler) {
- progress.show(CacheDetailActivity.this, res.getString(R.string.cache_dialog_offline_save_title), res.getString(R.string.cache_dialog_offline_save_message), true, storeCacheHandler.cancelMessage());
+ progress.show(this, res.getString(R.string.cache_dialog_offline_save_title), res.getString(R.string.cache_dialog_offline_save_message), true, storeCacheHandler.cancelMessage());
if (storeThread != null) {
storeThread.interrupt();