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

Commit e0a34bf1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Avoid adding node itself as child node."

parents c4384670 0b5ca24a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.text.style.AccessibilityURLSpan;
import android.text.style.ClickableSpan;
import android.text.style.URLSpan;
import android.util.ArraySet;
import android.util.Log;
import android.util.LongArray;
import android.util.Pools.SynchronizedPool;
import android.view.View;
@@ -85,6 +86,8 @@ public class AccessibilityNodeInfo implements Parcelable {

    private static final boolean DEBUG = false;

    private static final String TAG = "AccessibilityNodeInfo";

    /** @hide */
    public static final int UNDEFINED_CONNECTION_ID = -1;

@@ -990,6 +993,7 @@ public class AccessibilityNodeInfo implements Parcelable {
     * <strong>Note:</strong> Cannot be called from an
     * {@link android.accessibilityservice.AccessibilityService}.
     * This class is made immutable before being delivered to an AccessibilityService.
     * Note that a view cannot be made its own child.
     * </p>
     *
     * @param child The child.
@@ -1037,6 +1041,7 @@ public class AccessibilityNodeInfo implements Parcelable {
     * hierarchy for accessibility purposes. This enables custom views that draw complex
     * content to report them selves as a tree of virtual views, thus conveying their
     * logical structure.
     * Note that a view cannot be made its own child.
     * </p>
     *
     * @param root The root of the virtual subtree.
@@ -1054,6 +1059,11 @@ public class AccessibilityNodeInfo implements Parcelable {
        final int rootAccessibilityViewId =
            (root != null) ? root.getAccessibilityViewId() : UNDEFINED_ITEM_ID;
        final long childNodeId = makeNodeId(rootAccessibilityViewId, virtualDescendantId);
        if (childNodeId == mSourceNodeId) {
            Log.e(TAG, "Rejecting attempt to make a View its own child");
            return;
        }

        // If we're checking uniqueness and the ID already exists, abort.
        if (checked && mChildNodeIds.indexOf(childNodeId) >= 0) {
            return;