From 925e822dec76eed8d084fb9de64a2a80bd9e9215 Mon Sep 17 00:00:00 2001 From: RyanlwLin Date: Fri, 30 Aug 2019 15:08:48 +0800 Subject: [PATCH] Update Window List when the windowToken is moved When a window is moved from display A to display B. We don't have any callbacks to update window list of A and B. We update window list when the displaycont of windowtoken is changed. Bug: 140277818 Test: AccessibilityEndToEndTest Change-Id: I3f9cc34ec3f24178df33bcc632e6af33b6dc3e7c --- .../server/wm/AccessibilityController.java | 18 ++++++++++++------ .../com/android/server/wm/DisplayContent.java | 6 ++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index 30a3aef01fdb0..9cfa50e388df9 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -255,13 +255,19 @@ final class AccessibilityController { } } - public void onSomeWindowResizedOrMovedLocked(int displayId) { + /** + * Called when the location or the size of the window is changed. Moving the window to + * another display is also taken into consideration. + * @param displayIds the display ids of displays when the situation happens. + */ + public void onSomeWindowResizedOrMovedLocked(int... displayIds) { // Not relevant for the display magnifier. - - final WindowsForAccessibilityObserver windowsForA11yObserver = - mWindowsForAccessibilityObserver.get(displayId); - if (windowsForA11yObserver != null) { - windowsForA11yObserver.scheduleComputeChangedWindowsLocked(); + for (int i = 0; i < displayIds.length; i++) { + final WindowsForAccessibilityObserver windowsForA11yObserver = + mWindowsForAccessibilityObserver.get(displayIds[i]); + if (windowsForA11yObserver != null) { + windowsForA11yObserver.scheduleComputeChangedWindowsLocked(); + } } } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 71a0126d74f29..1cffce0aa266f 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1062,6 +1062,12 @@ class DisplayContent extends WindowContainer