aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching
diff options
context:
space:
mode:
authorBananeweizen <Bananeweizen@gmx.de>2012-02-17 10:10:49 +0100
committerBananeweizen <Bananeweizen@gmx.de>2012-02-17 10:10:49 +0100
commit87aca9bffc6bbcf5113ebdae3c81ad719d564654 (patch)
treebf4b63a718ec403c7270ec50cc739051cfe9eafa /main/src/cgeo/geocaching
parent16ff2d60664d129a356c8964d932f5bd8e093d0c (diff)
downloadcgeo-87aca9bffc6bbcf5113ebdae3c81ad719d564654.zip
cgeo-87aca9bffc6bbcf5113ebdae3c81ad719d564654.tar.gz
cgeo-87aca9bffc6bbcf5113ebdae3c81ad719d564654.tar.bz2
fix #1135: Hint can contain HTML
Diffstat (limited to 'main/src/cgeo/geocaching')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java44
-rw-r--r--main/src/cgeo/geocaching/ui/DecryptTextClickListener.java31
2 files changed, 41 insertions, 34 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 98e7112..aa36223 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -15,6 +15,7 @@ import cgeo.geocaching.enumerations.WaypointType;
import cgeo.geocaching.geopoint.GeopointFormatter;
import cgeo.geocaching.network.HtmlImage;
import cgeo.geocaching.network.Parameters;
+import cgeo.geocaching.ui.DecryptTextClickListener;
import cgeo.geocaching.utils.BaseUtils;
import cgeo.geocaching.utils.CancellableHandler;
import cgeo.geocaching.utils.ClipboardUtils;
@@ -1943,17 +1944,16 @@ public class CacheDetailActivity extends AbstractActivity {
if (StringUtils.isNotBlank(cache.getHint())) {
TextView hintView = ((TextView) view.findViewById(R.id.hint));
- hintView.setText(CryptUtils.rot13(cache.getHint().trim()));
+ if (BaseUtils.containsHtml(cache.getHint())) {
+ hintView.setText(Html.fromHtml(cache.getHint(), new HtmlImage(CacheDetailActivity.this, null, false, cache.getListId(), false), null), TextView.BufferType.SPANNABLE);
+ hintView.setText(CryptUtils.rot13((Spannable) hintView.getText()));
+ }
+ else {
+ hintView.setText(CryptUtils.rot13(cache.getHint().trim()));
+ }
hintView.setVisibility(View.VISIBLE);
hintView.setClickable(true);
- hintView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- // code hint
- TextView hintView = (TextView) view;
- hintView.setText(CryptUtils.rot13(hintView.getText().toString()));
- }
- });
+ hintView.setOnClickListener(new DecryptTextClickListener());
registerForContextMenu(hintView);
} else {
TextView hintView = ((TextView) view.findViewById(R.id.hint));
@@ -2268,7 +2268,7 @@ public class CacheDetailActivity extends AbstractActivity {
((TextView) rowView.findViewById(R.id.author)).setOnClickListener(new UserActionsClickListener());
TextView logView = (TextView) logLayout.findViewById(R.id.log);
logView.setMovementMethod(LinkMovementMethod.getInstance());
- logView.setOnClickListener(new DecryptLogClickListener());
+ logView.setOnClickListener(new DecryptTextClickListener());
registerForContextMenu(logView);
loglist.add(rowView);
@@ -2298,30 +2298,6 @@ public class CacheDetailActivity extends AbstractActivity {
loglistView.setVisibility(View.VISIBLE);
}
}
-
- private class DecryptLogClickListener implements View.OnClickListener {
-
- public void onClick(View view) {
- if (view == null) {
- return;
- }
-
- try {
- final TextView logView = (TextView) view;
- CharSequence text = logView.getText();
- if (text instanceof Spannable) {
- Spannable span = (Spannable) text;
- logView.setText(CryptUtils.rot13(span));
- }
- else {
- String string = (String) text;
- logView.setText(CryptUtils.rot13(string));
- }
- } catch (Exception e) {
- // nothing
- }
- }
- }
}
private class WaypointsViewCreator implements PageViewCreator {
diff --git a/main/src/cgeo/geocaching/ui/DecryptTextClickListener.java b/main/src/cgeo/geocaching/ui/DecryptTextClickListener.java
new file mode 100644
index 0000000..fd60553
--- /dev/null
+++ b/main/src/cgeo/geocaching/ui/DecryptTextClickListener.java
@@ -0,0 +1,31 @@
+package cgeo.geocaching.ui;
+
+import cgeo.geocaching.utils.CryptUtils;
+
+import android.text.Spannable;
+import android.view.View;
+import android.widget.TextView;
+
+public class DecryptTextClickListener implements View.OnClickListener {
+
+ public void onClick(View view) {
+ if (view == null) {
+ return;
+ }
+
+ try {
+ final TextView logView = (TextView) view;
+ CharSequence text = logView.getText();
+ if (text instanceof Spannable) {
+ Spannable span = (Spannable) text;
+ logView.setText(CryptUtils.rot13(span));
+ }
+ else {
+ String string = (String) text;
+ logView.setText(CryptUtils.rot13(string));
+ }
+ } catch (Exception e) {
+ // nothing
+ }
+ }
+}