Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7709c892 authored by Siyamed Sinir's avatar Siyamed Sinir Committed by android-build-merger
Browse files

Merge "Revert "TextView setText/append methods set movement method"" into nyc-dev

am: d225f87e

* commit 'd225f87e':
  Revert "TextView setText/append methods set movement method"

Change-Id: I29b1a0d197dc2df861d5e55eb91ba17410c42664
parents efc91808 d225f87e
Loading
Loading
Loading
Loading
+27 −55
Original line number Diff line number Diff line
@@ -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
     */
@@ -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
     */
@@ -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;
@@ -4397,7 +4380,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            text = TextUtils.stringOrSpannedString(text);
        }

        boolean hasClickableSpans = false;
        if (mAutoLinkMask != 0) {
            Spannable s2;

@@ -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
@@ -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;
+1 −2
Original line number Diff line number Diff line
@@ -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.