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

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

Merge "Adding API for getting the root node info in the active window."

parents b7c30a84 0846e29d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1993,6 +1993,7 @@ package android.accessibilityservice {
  public abstract class AccessibilityService extends android.app.Service {
    ctor public AccessibilityService();
    method public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
    method public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
    method public abstract void onAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
    method public final android.os.IBinder onBind(android.content.Intent);
+15 −4
Original line number Diff line number Diff line
@@ -426,13 +426,11 @@ public abstract class AccessibilityService extends Service {
            throw new IllegalStateException("AccessibilityService not connected."
                    + " Did you receive a call of onServiceConnected()?");
        }
        AccessibilityNodeInfo root = AccessibilityInteractionClient.getInstance()
                .findAccessibilityNodeInfoByAccessibilityId(connectionId,
                        AccessibilityNodeInfo.ACTIVE_WINDOW_ID, AccessibilityNodeInfo.ROOT_NODE_ID,
                        AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS);
        AccessibilityNodeInfo root = getRootInActiveWindow();
        if (root == null) {
            return;
        }

        AccessibilityNodeInfo current = root.findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
        if (current == null) {
            current = root;
@@ -479,6 +477,19 @@ public abstract class AccessibilityService extends Service {
        }
    }

    /**
     * Gets the root node in the currently active window if this service
     * can retrieve window content.
     *
     * @return The root node if this service can retrieve window content.
     */
    public AccessibilityNodeInfo getRootInActiveWindow() {
        return AccessibilityInteractionClient.getInstance()
            .findAccessibilityNodeInfoByAccessibilityId(mConnectionId,
                AccessibilityNodeInfo.ACTIVE_WINDOW_ID, AccessibilityNodeInfo.ROOT_NODE_ID,
                AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS);
    }

    /**
     * Performs a global action. Such an action can be performed
     * at any moment regardless of the current application or user