Links are clickable in TextView when textIsSelectable.
Bug 3299410
Change-Id: I921c9eecbfef1d81b0d0e2ad2129400c58f165a1
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.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 @@
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.