diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2012-02-17 10:10:49 +0100 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2012-02-17 10:10:49 +0100 |
| commit | 87aca9bffc6bbcf5113ebdae3c81ad719d564654 (patch) | |
| tree | bf4b63a718ec403c7270ec50cc739051cfe9eafa /main/src/cgeo/geocaching | |
| parent | 16ff2d60664d129a356c8964d932f5bd8e093d0c (diff) | |
| download | cgeo-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.java | 44 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/DecryptTextClickListener.java | 31 |
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
+ }
+ }
+}
|
