diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2013-02-13 17:15:08 +0100 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2013-02-13 17:15:08 +0100 |
commit | 0ca4a72628258d4b91c54e61f6e7e9c32a605bae (patch) | |
tree | e8742b53e24b811a16ba34592e118e8176e7ed21 | |
parent | 15fe10dee791e7383fa9be8a13461d02fb10790e (diff) | |
parent | e7424388bbbc3d944300abdd2d0fef9863cb1df4 (diff) | |
download | cgeo-0ca4a72628258d4b91c54e61f6e7e9c32a605bae.zip cgeo-0ca4a72628258d4b91c54e61f6e7e9c32a605bae.tar.gz cgeo-0ca4a72628258d4b91c54e61f6e7e9c32a605bae.tar.bz2 |
Merge branch 'release'
Conflicts:
main/res/values/strings.xml
main/src/cgeo/geocaching/CacheDetailActivity.java
main/src/cgeo/geocaching/cgeotrackable.java
-rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 3 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/ui/AnchorAwareLinkMovementMethod.java | 37 |
2 files changed, 39 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 3e95d72..f35d599 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -19,6 +19,7 @@ import cgeo.geocaching.network.HtmlImage; import cgeo.geocaching.network.Network; import cgeo.geocaching.network.Parameters; import cgeo.geocaching.ui.AbstractCachingPageViewCreator; +import cgeo.geocaching.ui.AnchorAwareLinkMovementMethod; import cgeo.geocaching.ui.CacheDetailsCreator; import cgeo.geocaching.ui.DecryptTextClickListener; import cgeo.geocaching.ui.Formatter; @@ -1958,7 +1959,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc if (description != null) { if (StringUtils.isNotBlank(descriptionString)) { descriptionView.setText(description, TextView.BufferType.SPANNABLE); - descriptionView.setMovementMethod(LinkMovementMethod.getInstance()); + descriptionView.setMovementMethod(AnchorAwareLinkMovementMethod.getInstance()); fixBlackTextColor(descriptionView, descriptionString); } diff --git a/main/src/cgeo/geocaching/ui/AnchorAwareLinkMovementMethod.java b/main/src/cgeo/geocaching/ui/AnchorAwareLinkMovementMethod.java new file mode 100644 index 0000000..db82e5c --- /dev/null +++ b/main/src/cgeo/geocaching/ui/AnchorAwareLinkMovementMethod.java @@ -0,0 +1,37 @@ +package cgeo.geocaching.ui; + +import android.text.Spannable; +import android.text.method.LinkMovementMethod; +import android.view.MotionEvent; +import android.widget.TextView; + +/** + * <code>LinkMovementMethod</code> with built-in suppression of errors for links, where the URL cannot be handled + * correctly by Android. + * + */ +public class AnchorAwareLinkMovementMethod extends LinkMovementMethod { + + private AnchorAwareLinkMovementMethod() { + // singleton + } + + private static final class Holder { + // initialization on demand holder + private static final AnchorAwareLinkMovementMethod INSTANCE = new AnchorAwareLinkMovementMethod(); + } + + public static AnchorAwareLinkMovementMethod getInstance() { + return Holder.INSTANCE; + } + + @Override + public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) { + try { + return super.onTouchEvent(widget, buffer, event); + } catch (Exception e) { + // local links to anchors don't work + } + return false; + } +} |