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

Commit 72de2062 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android (Google) Code Review
Browse files

Merge "Adding support for traversing the content of a node info at granularity."

parents 4d7349bb aa780c11
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -23928,7 +23928,7 @@ package android.view {
    method public void onWindowSystemUiVisibilityChanged(int);
    method protected void onWindowVisibilityChanged(int);
    method protected boolean overScrollBy(int, int, int, int, int, int, int, int, boolean);
    method public boolean performAccessibilityAction(int);
    method public boolean performAccessibilityAction(int, android.os.Bundle);
    method public boolean performClick();
    method public boolean performHapticFeedback(int);
    method public boolean performHapticFeedback(int, int);
@@ -24997,6 +24997,7 @@ package android.view.accessibility {
    method public int getChildCount();
    method public java.lang.CharSequence getClassName();
    method public java.lang.CharSequence getContentDescription();
    method public java.lang.CharSequence[] getGranularities();
    method public java.lang.CharSequence getPackageName();
    method public android.view.accessibility.AccessibilityNodeInfo getParent();
    method public java.lang.CharSequence getText();
@@ -25017,6 +25018,7 @@ package android.view.accessibility {
    method public static android.view.accessibility.AccessibilityNodeInfo obtain();
    method public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.accessibility.AccessibilityNodeInfo);
    method public boolean performAction(int);
    method public boolean performAction(int, android.os.Bundle);
    method public void recycle();
    method public void setAccessibilityFocused(boolean);
    method public void setBoundsInParent(android.graphics.Rect);
@@ -25029,6 +25031,7 @@ package android.view.accessibility {
    method public void setEnabled(boolean);
    method public void setFocusable(boolean);
    method public void setFocused(boolean);
    method public void setGranularities(java.lang.CharSequence[]);
    method public void setLongClickable(boolean);
    method public void setPackageName(java.lang.CharSequence);
    method public void setParent(android.view.View);
@@ -25041,12 +25044,15 @@ package android.view.accessibility {
    method public void setText(java.lang.CharSequence);
    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_GRANULARITY = "ACTION_ARGUMENT_GRANULARITY";
    field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
    field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
    field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
    field public static final int ACTION_CLICK = 16; // 0x10
    field public static final int ACTION_FOCUS = 1; // 0x1
    field public static final int ACTION_LONG_CLICK = 32; // 0x20
    field public static final int ACTION_NEXT_AT_GRANULARITY = 256; // 0x100
    field public static final int ACTION_PREVIOUS_AT_GRANULARITY = 512; // 0x200
    field public static final int ACTION_SELECT = 4; // 0x4
    field public static final android.os.Parcelable.Creator CREATOR;
    field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
@@ -25059,7 +25065,7 @@ package android.view.accessibility {
    method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int);
    method public android.view.accessibility.AccessibilityNodeInfo findAccessibilitiyFocus(int);
    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String, int);
    method public boolean performAccessibilityAction(int, int);
    method public boolean performAction(int, int, android.os.Bundle);
  }
  public class AccessibilityRecord {
+4 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.accessibilityservice;

import android.os.Bundle;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.IAccessibilityInteractionConnectionCallback;
@@ -147,14 +148,15 @@ interface IAccessibilityServiceConnection {
     *     {@link android.view.accessibility.AccessibilityNodeInfo#ROOT_NODE_ID}
     *     to start from the root.
     * @param action The action to perform.
     * @param arguments Optional action arguments.
     * @param interactionId The id of the interaction for matching with the callback result.
     * @param callback Callback which to receive the result.
     * @param threadId The id of the calling thread.
     * @return Whether the action was performed.
     */
    boolean performAccessibilityAction(int accessibilityWindowId, long accessibilityNodeId,
        int action, int interactionId, IAccessibilityInteractionConnectionCallback callback,
        long threadId);
        int action, in Bundle arguments, int interactionId,
        IAccessibilityInteractionConnectionCallback callback, long threadId);

    /**
     * @return The associated accessibility service info.
+8 −4
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.accessibilityservice;
import android.accessibilityservice.AccessibilityService.Callbacks;
import android.accessibilityservice.AccessibilityService.IAccessibilityServiceClientWrapper;
import android.content.Context;
import android.os.Bundle;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.RemoteException;
@@ -444,10 +445,12 @@ public class UiTestAutomationBridge {
     *
     * @param accessibilityNodeId A unique node id (accessibility and virtual descendant id).
     * @param action The action to perform.
     * @param arguments Optional action arguments.
     * @return Whether the action was performed.
     */
    public boolean performAccessibilityActionInActiveWindow(long accessibilityNodeId, int action) {
        return performAccessibilityAction(ACTIVE_WINDOW_ID, accessibilityNodeId, action);
    public boolean performAccessibilityActionInActiveWindow(long accessibilityNodeId, int action,
            Bundle arguments) {
        return performAccessibilityAction(ACTIVE_WINDOW_ID, accessibilityNodeId, action, arguments);
    }

    /**
@@ -457,15 +460,16 @@ public class UiTestAutomationBridge {
     *     {@link #ACTIVE_WINDOW_ID} to query the currently active window.
     * @param accessibilityNodeId A unique node id (accessibility and virtual descendant id).
     * @param action The action to perform.
     * @param arguments Optional action arguments.
     * @return Whether the action was performed.
     */
    public boolean performAccessibilityAction(int accessibilityWindowId, long accessibilityNodeId,
            int action) {
            int action, Bundle arguments) {
        // Cache the id to avoid locking
        final int connectionId = mConnectionId;
        ensureValidConnection(connectionId);
        return AccessibilityInteractionClient.getInstance().performAccessibilityAction(connectionId,
                accessibilityWindowId, accessibilityNodeId, action);
                accessibilityWindowId, accessibilityNodeId, action, arguments);
    }

    /**
+9 −4
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.view;

import static android.view.accessibility.AccessibilityNodeInfo.INCLUDE_NOT_IMPORTANT_VIEWS;

import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -514,8 +515,9 @@ final class AccessibilityInteractionController {
    }

    public void performAccessibilityActionClientThread(long accessibilityNodeId, int action,
            int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
            int interogatingPid, long interrogatingTid) {
            Bundle arguments, int interactionId,
            IAccessibilityInteractionConnectionCallback callback, int flags, int interogatingPid,
            long interrogatingTid) {
        Message message = mHandler.obtainMessage();
        message.what = PrivateHandler.MSG_PERFORM_ACCESSIBILITY_ACTION;
        message.arg1 = flags;
@@ -525,6 +527,7 @@ final class AccessibilityInteractionController {
        args.argi2 = action;
        args.argi3 = interactionId;
        args.arg1 = callback;
        args.arg2 = arguments;
        message.obj = args;
        // If the interrogation is performed by the same thread as the main UI
        // thread in this process, set the message as a static reference so
@@ -547,6 +550,7 @@ final class AccessibilityInteractionController {
        final int interactionId = args.argi3;
        final IAccessibilityInteractionConnectionCallback callback =
            (IAccessibilityInteractionConnectionCallback) args.arg1;
        Bundle arguments = (Bundle) args.arg2;
        mPool.release(args);
        boolean succeeded = false;
        try {
@@ -564,9 +568,10 @@ final class AccessibilityInteractionController {
            if (target != null && target.isDisplayedOnScreen()) {
                AccessibilityNodeProvider provider = target.getAccessibilityNodeProvider();
                if (provider != null) {
                    succeeded = provider.performAccessibilityAction(action, virtualDescendantId);
                    succeeded = provider.performAction(virtualDescendantId, action,
                            arguments);
                } else if (virtualDescendantId == View.NO_ID) {
                    succeeded = target.performAccessibilityAction(action);
                    succeeded = target.performAccessibilityAction(action, arguments);
                }
            }
        } finally {
+2 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.graphics.Region;
import android.graphics.Shader;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Parcel;
@@ -6390,7 +6391,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
     * @param action The action to perform.
     * @return Whether the action was performed.
     */
    public boolean performAccessibilityAction(int action) {
    public boolean performAccessibilityAction(int action, Bundle args) {
        switch (action) {
            case AccessibilityNodeInfo.ACTION_CLICK: {
                if (isClickable()) {
Loading