Merge "Invalid active window if temporary disabling accessibility for test tools." into lmp-dev
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index b05d82b..be3fc47 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -759,7 +759,7 @@
}
int getActiveWindowId() {
- return mSecurityPolicy.mActiveWindowId;
+ return mSecurityPolicy.getActiveWindowId();
}
void onTouchInteractionStart() {
@@ -2823,7 +2823,7 @@
private int resolveAccessibilityWindowIdLocked(int accessibilityWindowId) {
if (accessibilityWindowId == AccessibilityNodeInfo.ACTIVE_WINDOW_ID) {
- return mSecurityPolicy.mActiveWindowId;
+ return mSecurityPolicy.getActiveWindowId();
}
return accessibilityWindowId;
}
@@ -3284,7 +3284,9 @@
public void clearWindowsLocked() {
List<AccessibilityWindowInfo> windows = Collections.emptyList();
+ final int activeWindowId = mActiveWindowId;
updateWindowsLocked(windows);
+ mActiveWindowId = activeWindowId;
mWindows = null;
}
@@ -3497,6 +3499,13 @@
}
}
+ public int getActiveWindowId() {
+ if (mActiveWindowId == INVALID_WINDOW_ID && !mTouchInteractionInProgress) {
+ mActiveWindowId = getFocusedWindowId();
+ }
+ return mActiveWindowId;
+ }
+
private void setActiveWindowLocked(int windowId) {
if (mActiveWindowId != windowId) {
mActiveWindowId = windowId;