diff options
Diffstat (limited to 'main/src/cgeo/geocaching/ui/AnchorAwareLinkMovementMethod.java')
| -rw-r--r-- | main/src/cgeo/geocaching/ui/AnchorAwareLinkMovementMethod.java | 37 |
1 files changed, 37 insertions, 0 deletions
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; + } +} |
