commit | e1d68cda9dde91f73c1c93ea8376fd2e14fbd5d7 | [log] [tgz] |
---|---|---|
author | Adrian Roos <roosa@google.com> | Wed Jan 17 12:54:50 2018 +0100 |
committer | Adrian Roos <roosa@google.com> | Wed Jan 17 12:55:34 2018 +0100 |
tree | 73b9821164216d09ed5fa28e119edb9b5a9954cb | |
parent | 7d0e1f8065cc618ed8931f070777cda366e65fd0 [diff] |
DisplayCutout: Reload displays when resource overlays change This allows the DisplayManager to pick up changes to the DisplayCutout resource, which is used to implement emulation of the overlay. Bug: x Test: adb shell overlay enable ...; verify cutout is picked up immediately and not only after toggling the display Change-Id: I0fa2d50366a17231f45990d2d3854321d48653f0
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java index 3f6dd2e..078958a 100644 --- a/core/java/android/hardware/display/DisplayManagerInternal.java +++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -179,6 +179,11 @@ public abstract void persistBrightnessSliderEvents(); /** + * Notifies the display manager that resource overlays have changed. + */ + public abstract void onOverlayChanged(); + + /** * Describes the requested power state of the display. * * This object is intended to describe the general characteristics of the
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 02e4fe0..a55fec5 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -2009,5 +2009,14 @@ mDisplayPowerController.persistBrightnessSliderEvents(); } } + + @Override + public void onOverlayChanged() { + synchronized (mSyncRoot) { + if (updateLogicalDisplaysLocked()) { + scheduleTraversalLocked(false); + } + } + } } }
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index d2ab9df..58673db 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -6600,6 +6600,7 @@ public void onOverlayChanged() { synchronized (mWindowMap) { mPolicy.onOverlayChangedLw(); + mDisplayManagerInternal.onOverlayChanged(); requestTraversal(); } }