Loading core/java/android/widget/TextView.java +27 −55 Original line number Diff line number Diff line Loading @@ -3411,17 +3411,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** * Sets whether the movement method will automatically be set to {@link LinkMovementMethod} * after {@link #setText} or {@link #append} is called. The movement method is set if one of the * following is true: * <ul> * <li>{@link #setAutoLinkMask} has been set to nonzero and links are detected in * {@link #setText} or {@link #append}. * <li>The input for {@link #setText} or {@link #append} contains a {@link ClickableSpan}. * </ul> * * <p>This function does not have an immediate effect, movement method will be set only after a * call to {@link #setText} or {@link #append}. The default is true.</p> * Sets whether the movement method will automatically be set to * {@link LinkMovementMethod} if {@link #setAutoLinkMask} has been * set to nonzero and links are detected in {@link #setText}. * The default is true. * * @attr ref android.R.styleable#TextView_linksClickable */ Loading @@ -3431,14 +3424,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** * Returns whether the movement method will automatically be set to {@link LinkMovementMethod} * after {@link #setText} or {@link #append} is called. * * See {@link #setLinksClickable} for details. * * <p>The default is true.</p> * * @see #setLinksClickable * Returns whether the movement method will automatically be set to * {@link LinkMovementMethod} if {@link #setAutoLinkMask} has been * set to nonzero and links are detected in {@link #setText}. * The default is true. * * @attr ref android.R.styleable#TextView_linksClickable */ Loading Loading @@ -4032,21 +4021,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener ((Editable) mText).append(text, start, end); boolean hasClickableSpans = false; if (mAutoLinkMask != 0) { hasClickableSpans = Linkify.addLinks((Spannable) mText, mAutoLinkMask); } else if (mLinksClickable && text instanceof Spanned) { ClickableSpan[] clickableSpans = ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class); hasClickableSpans = clickableSpans != null && clickableSpans.length > 0; } // Do not change the movement method for text that supports text selection as it boolean linksWereAdded = Linkify.addLinks((Spannable) mText, mAutoLinkMask); // Do not change the movement method for text that support text selection as it // would prevent an arbitrary cursor displacement. if (hasClickableSpans && mLinksClickable && !textCanBeSelected()) { if (linksWereAdded && mLinksClickable && !textCanBeSelected()) { setMovementMethod(LinkMovementMethod.getInstance()); } } } private void updateTextColors() { boolean inval = false; Loading Loading @@ -4397,7 +4380,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener text = TextUtils.stringOrSpannedString(text); } boolean hasClickableSpans = false; if (mAutoLinkMask != 0) { Spannable s2; Loading @@ -4407,21 +4389,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener s2 = mSpannableFactory.newSpannable(text); } hasClickableSpans = Linkify.addLinks(s2, mAutoLinkMask); if (hasClickableSpans) { if (Linkify.addLinks(s2, mAutoLinkMask)) { text = s2; } } else if (mLinksClickable && text instanceof Spanned) { ClickableSpan[] clickableSpans = ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class); hasClickableSpans = clickableSpans != null && clickableSpans.length > 0; if (hasClickableSpans && !(text instanceof Spannable)) { text = mSpannableFactory.newSpannable(text); } } if (hasClickableSpans) { type = (type == BufferType.EDITABLE) ? BufferType.EDITABLE : BufferType.SPANNABLE; /* * We must go ahead and set the text before changing the * movement method, because setMovementMethod() may call Loading @@ -4429,12 +4400,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener */ mText = text; // Do not change the movement method for text that supports text selection as it // Do not change the movement method for text that support text selection as it // would prevent an arbitrary cursor displacement. if (mLinksClickable && !textCanBeSelected()) { setMovementMethod(LinkMovementMethod.getInstance()); } } } mBufferType = type; mText = text; Loading core/res/res/values/attrs.xml +1 −2 Original line number Diff line number Diff line Loading @@ -4384,8 +4384,7 @@ i <attr name="autoLink" /> <!-- If set to false, keeps the movement method from being set to the link movement method even if autoLink causes links to be found or the input text contains a {@link android.text.style.ClickableSpan ClickableSpan}. --> to be found. --> <attr name="linksClickable" format="boolean" /> <!-- If set, specifies that this TextView has a numeric input method. The default is false. Loading Loading
core/java/android/widget/TextView.java +27 −55 Original line number Diff line number Diff line Loading @@ -3411,17 +3411,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** * Sets whether the movement method will automatically be set to {@link LinkMovementMethod} * after {@link #setText} or {@link #append} is called. The movement method is set if one of the * following is true: * <ul> * <li>{@link #setAutoLinkMask} has been set to nonzero and links are detected in * {@link #setText} or {@link #append}. * <li>The input for {@link #setText} or {@link #append} contains a {@link ClickableSpan}. * </ul> * * <p>This function does not have an immediate effect, movement method will be set only after a * call to {@link #setText} or {@link #append}. The default is true.</p> * Sets whether the movement method will automatically be set to * {@link LinkMovementMethod} if {@link #setAutoLinkMask} has been * set to nonzero and links are detected in {@link #setText}. * The default is true. * * @attr ref android.R.styleable#TextView_linksClickable */ Loading @@ -3431,14 +3424,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** * Returns whether the movement method will automatically be set to {@link LinkMovementMethod} * after {@link #setText} or {@link #append} is called. * * See {@link #setLinksClickable} for details. * * <p>The default is true.</p> * * @see #setLinksClickable * Returns whether the movement method will automatically be set to * {@link LinkMovementMethod} if {@link #setAutoLinkMask} has been * set to nonzero and links are detected in {@link #setText}. * The default is true. * * @attr ref android.R.styleable#TextView_linksClickable */ Loading Loading @@ -4032,21 +4021,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener ((Editable) mText).append(text, start, end); boolean hasClickableSpans = false; if (mAutoLinkMask != 0) { hasClickableSpans = Linkify.addLinks((Spannable) mText, mAutoLinkMask); } else if (mLinksClickable && text instanceof Spanned) { ClickableSpan[] clickableSpans = ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class); hasClickableSpans = clickableSpans != null && clickableSpans.length > 0; } // Do not change the movement method for text that supports text selection as it boolean linksWereAdded = Linkify.addLinks((Spannable) mText, mAutoLinkMask); // Do not change the movement method for text that support text selection as it // would prevent an arbitrary cursor displacement. if (hasClickableSpans && mLinksClickable && !textCanBeSelected()) { if (linksWereAdded && mLinksClickable && !textCanBeSelected()) { setMovementMethod(LinkMovementMethod.getInstance()); } } } private void updateTextColors() { boolean inval = false; Loading Loading @@ -4397,7 +4380,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener text = TextUtils.stringOrSpannedString(text); } boolean hasClickableSpans = false; if (mAutoLinkMask != 0) { Spannable s2; Loading @@ -4407,21 +4389,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener s2 = mSpannableFactory.newSpannable(text); } hasClickableSpans = Linkify.addLinks(s2, mAutoLinkMask); if (hasClickableSpans) { if (Linkify.addLinks(s2, mAutoLinkMask)) { text = s2; } } else if (mLinksClickable && text instanceof Spanned) { ClickableSpan[] clickableSpans = ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class); hasClickableSpans = clickableSpans != null && clickableSpans.length > 0; if (hasClickableSpans && !(text instanceof Spannable)) { text = mSpannableFactory.newSpannable(text); } } if (hasClickableSpans) { type = (type == BufferType.EDITABLE) ? BufferType.EDITABLE : BufferType.SPANNABLE; /* * We must go ahead and set the text before changing the * movement method, because setMovementMethod() may call Loading @@ -4429,12 +4400,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener */ mText = text; // Do not change the movement method for text that supports text selection as it // Do not change the movement method for text that support text selection as it // would prevent an arbitrary cursor displacement. if (mLinksClickable && !textCanBeSelected()) { setMovementMethod(LinkMovementMethod.getInstance()); } } } mBufferType = type; mText = text; Loading
core/res/res/values/attrs.xml +1 −2 Original line number Diff line number Diff line Loading @@ -4384,8 +4384,7 @@ i <attr name="autoLink" /> <!-- If set to false, keeps the movement method from being set to the link movement method even if autoLink causes links to be found or the input text contains a {@link android.text.style.ClickableSpan ClickableSpan}. --> to be found. --> <attr name="linksClickable" format="boolean" /> <!-- If set, specifies that this TextView has a numeric input method. The default is false. Loading