diff options
| author | Gilles Debunne <debunne@google.com> | 2010-12-21 12:53:58 -0800 |
|---|---|---|
| committer | Gilles Debunne <debunne@google.com> | 2010-12-21 13:37:05 -0800 |
| commit | f3895edf4b21e1083b58cdb36b93223ecaa98ca8 (patch) | |
| tree | 3c4297a1cc4dff9cfbf6b9ab620e867abb71a391 /core/java/android/widget | |
| parent | d69313da4cbee8ce9ada83dc75a9d334c88734bc (diff) | |
| download | frameworks_base-f3895edf4b21e1083b58cdb36b93223ecaa98ca8.zip frameworks_base-f3895edf4b21e1083b58cdb36b93223ecaa98ca8.tar.gz frameworks_base-f3895edf4b21e1083b58cdb36b93223ecaa98ca8.tar.bz2 | |
Links are clickable in TextView when textIsSelectable.
Bug 3299410
Change-Id: I921c9eecbfef1d81b0d0e2ad2129400c58f165a1
Diffstat (limited to 'core/java/android/widget')
| -rw-r--r-- | core/java/android/widget/TextView.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 052760f..0699ac2 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -81,6 +81,7 @@ import android.text.method.SingleLineTransformationMethod; import android.text.method.TextKeyListener; import android.text.method.TimeKeyListener; import android.text.method.TransformationMethod; +import android.text.style.ClickableSpan; import android.text.style.ParagraphStyle; import android.text.style.URLSpan; import android.text.style.UpdateAppearance; @@ -7238,6 +7239,19 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener handled |= mMovement.onTouchEvent(this, (Spannable) mText, event); } + if (mLinksClickable && mAutoLinkMask != 0 && mTextIsSelectable && + action == MotionEvent.ACTION_UP && !mIgnoreActionUpEvent && isFocused()) { + // The LinkMovementMethod which should handle taps on links has not been installed + // to support text selection. We reproduce its behavior here to open links. + ClickableSpan[] links = ((Spannable) mText).getSpans(getSelectionStart(), + getSelectionEnd(), ClickableSpan.class); + + if (links.length != 0) { + links[0].onClick(this); + handled = true; + } + } + if (isTextEditable() || mTextIsSelectable) { if (mScrollX != oldScrollX || mScrollY != oldScrollY) { // Hide insertion anchor while scrolling. Leave selection. |
