Skip to content

Commit 2c23a14

Browse files
sganovAndroid (Google) Code Review
authored andcommitted
Merge "Adding API for getting the root node info in the active window."
2 parents b7c30a8 + 0846e29 commit 2c23a14

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

api/current.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,7 @@ package android.accessibilityservice {
19931993

19941994
public abstract class AccessibilityService extends android.app.Service {
19951995
ctor public AccessibilityService();
1996+
method public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
19961997
method public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
19971998
method public abstract void onAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
19981999
method public final android.os.IBinder onBind(android.content.Intent);

core/java/android/accessibilityservice/AccessibilityService.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,13 +426,11 @@ protected void onGesture(int gestureId) {
426426
throw new IllegalStateException("AccessibilityService not connected."
427427
+ " Did you receive a call of onServiceConnected()?");
428428
}
429-
AccessibilityNodeInfo root = AccessibilityInteractionClient.getInstance()
430-
.findAccessibilityNodeInfoByAccessibilityId(connectionId,
431-
AccessibilityNodeInfo.ACTIVE_WINDOW_ID, AccessibilityNodeInfo.ROOT_NODE_ID,
432-
AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS);
429+
AccessibilityNodeInfo root = getRootInActiveWindow();
433430
if (root == null) {
434431
return;
435432
}
433+
436434
AccessibilityNodeInfo current = root.findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
437435
if (current == null) {
438436
current = root;
@@ -479,6 +477,19 @@ protected void onGesture(int gestureId) {
479477
}
480478
}
481479

480+
/**
481+
* Gets the root node in the currently active window if this service
482+
* can retrieve window content.
483+
*
484+
* @return The root node if this service can retrieve window content.
485+
*/
486+
public AccessibilityNodeInfo getRootInActiveWindow() {
487+
return AccessibilityInteractionClient.getInstance()
488+
.findAccessibilityNodeInfoByAccessibilityId(mConnectionId,
489+
AccessibilityNodeInfo.ACTIVE_WINDOW_ID, AccessibilityNodeInfo.ROOT_NODE_ID,
490+
AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS);
491+
}
492+
482493
/**
483494
* Performs a global action. Such an action can be performed
484495
* at any moment regardless of the current application or user

0 commit comments

Comments
 (0)