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

Commit 99017ede authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by android-build-merger
Browse files

Merge "Remove unusable a11y APIs for ClickableSpans." into nyc-dev am: f13f14ef

am: 30457a1d

* commit '30457a1d':
  Remove unusable a11y APIs for ClickableSpans.

Change-Id: I819d8bc38f6a7fe33fbb1a8550d4beacac7f2f30
parents ecf8cd8f 30457a1d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -44106,8 +44106,6 @@ package android.view.accessibility {
    method public void setVisibleToUser(boolean);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
    field public static final java.lang.String ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT = "android.view.accessibility.action.ARGUMENT_CLICK_CHARACTER_INDEX_INT";
    field public static final java.lang.String ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT = "android.view.accessibility.action.ARGUMENT_CLICK_SPAN_INDEX_INT";
    field public static final java.lang.String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
    field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
    field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+0 −2
Original line number Diff line number Diff line
@@ -46849,8 +46849,6 @@ package android.view.accessibility {
    method public void setVisibleToUser(boolean);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
    field public static final java.lang.String ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT = "android.view.accessibility.action.ARGUMENT_CLICK_CHARACTER_INDEX_INT";
    field public static final java.lang.String ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT = "android.view.accessibility.action.ARGUMENT_CLICK_SPAN_INDEX_INT";
    field public static final java.lang.String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
    field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
    field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+0 −2
Original line number Diff line number Diff line
@@ -44180,8 +44180,6 @@ package android.view.accessibility {
    method public void setVisibleToUser(boolean);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
    field public static final java.lang.String ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT = "android.view.accessibility.action.ARGUMENT_CLICK_CHARACTER_INDEX_INT";
    field public static final java.lang.String ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT = "android.view.accessibility.action.ARGUMENT_CLICK_SPAN_INDEX_INT";
    field public static final java.lang.String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
    field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
    field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+0 −57
Original line number Diff line number Diff line
@@ -327,36 +327,6 @@ public class AccessibilityNodeInfo implements Parcelable {

    // Action arguments

    /**
     * Argument for specifying index of {@link android.text.style.ClickableSpan} the click action is
     * related to.
     * <p>
     * <strong>Type:</strong> int<br>
     * <strong>Actions:</strong>
     * {@link AccessibilityAction#ACTION_CLICK}
     * </p>
     *
     * @see AccessibilityAction#ACTION_CLICK
     */
    public static final String ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT =
            "android.view.accessibility.action.ARGUMENT_CLICK_SPAN_INDEX_INT";

    /**
     * Argument for specifying index of character in the text which contains
     * {@link android.text.style.ClickableSpan} the click action is
     * related to. If there is more than one {@link android.text.style.ClickableSpan} assigned for
     * the range the character is in only the first span would be clicked.
     * <p>
     * <strong>Type:</strong> int<br>
     * <strong>Actions:</strong>
     * {@link AccessibilityAction#ACTION_CLICK}
     * </p>
     *
     * @see AccessibilityAction#ACTION_CLICK
     */
    public static final String ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT =
            "android.view.accessibility.action.ARGUMENT_CLICK_CHARACTER_INDEX_INT";

    /**
     * Argument for which movement granularity to be used when traversing the node text.
     * <p>
@@ -3391,33 +3361,6 @@ public class AccessibilityNodeInfo implements Parcelable {

        /**
         * Action that clicks on the node info.
         *
         * <p>
         * If a specific {@link android.text.style.ClickableSpan} within node's text content is
         * supposed to be clicked, then one of {@link #ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT} or
         * {@link #ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT} arguments should be specified.
         * If both arguments are set {@link #ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT} would
         * be ignored.<br>
         *
         * {@link #ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT} specifies index of corresponding
         * {@link android.text.style.ClickableSpan} in {@link android.text.SpannableString}.<br>
         *
         * {@link #ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT} specifies index of character
         * that could contain one or more spans.
         * </p>
         *
         * <p>
         * <strong>Optional arguments:</strong>
         * {@link #ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT},
         * {@link #ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT}<br>
         * <strong>Example:</strong> Perform click on 3rd {@link android.text.style.ClickableSpan}
         * inside {@link android.text.SpannableString} in node's text.
         * <code><pre><p>
         *   Bundle arguments = new Bundle();
         *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT, 3);
         *   info.performAction(AccessibilityAction.ACTION_CLICK.getId(), arguments);
         * </code></pre></p>
         * </p>
         */
        public static final AccessibilityAction ACTION_CLICK =
                new AccessibilityAction(
+1 −41
Original line number Diff line number Diff line
@@ -9210,52 +9210,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener

    private boolean performAccessibilityActionClick(Bundle arguments) {
        boolean handled = false;
        boolean processed = false;

        if (!isEnabled()) {
            return false;
        }

        if (arguments != null && arguments.containsKey(
                AccessibilityNodeInfo.ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT)) {
            int spanIndex = arguments.getInt(
                    AccessibilityNodeInfo.ACTION_ARGUMENT_CLICK_SPAN_INDEX_INT, -1);
            if (spanIndex >= 0 && hasSpannableText()) {
                ClickableSpan[] spans = ((Spannable) mText).getSpans(0,
                        mText.length(), ClickableSpan.class);
                if (spans != null && spans.length > spanIndex && spans[spanIndex] != null) {
                    // Simulate View.onTouchEvent for an ACTION_UP event
                    if (isFocusable() && !isFocused()) {
                        requestFocus();
                    }
                    spans[spanIndex].onClick(this);
                    handled = true;
                }
            }
            processed = true;
        }

        if (!processed && arguments != null &&  arguments.containsKey(
                AccessibilityNodeInfo.ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT)) {
            int characterIndex = arguments.getInt(
                    AccessibilityNodeInfo.ACTION_ARGUMENT_CLICK_CHARACTER_INDEX_INT, -1);
            if (characterIndex >= 0 && hasSpannableText()) {
                ClickableSpan[] spans = ((Spannable) mText).getSpans(characterIndex,
                        characterIndex, ClickableSpan.class);
                // click only on the first span to keep parity with onTouch() implementation
                if (spans != null && spans.length > 0 && spans[0] != null) {
                    // Simulate View.onTouchEvent for an ACTION_UP event
                    if (isFocusable() && !isFocused()) {
                        requestFocus();
                    }
                    spans[0].onClick(this);
                    handled = true;
                }
            }
            processed = true;
        }

        if (!processed && (isClickable() || isLongClickable())) {
        if (isClickable() || isLongClickable()) {
            // Simulate View.onTouchEvent for an ACTION_UP event
            if (isFocusable() && !isFocused()) {
                requestFocus();