diff options
| author | 2017-05-08 23:35:10 +0000 | |
|---|---|---|
| committer | 2017-05-08 23:35:14 +0000 | |
| commit | 91f241b35c42ef8d9ee81d2f89944aed84e3dee0 (patch) | |
| tree | cc1a6138b031062e2061f091aa73bd79284e15c6 | |
| parent | f51b5f991c5f316c8f34d4cad01e910bce87660c (diff) | |
| parent | 399c869d25395cb5fb81fb2190c2d894bff3c50f (diff) | |
Merge "Revert "Only allow AM to update display orientation based on app containers"" into oc-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 22 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 29 |
2 files changed, 10 insertions, 41 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 92d26cbf92ec..3a90a3566e74 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1503,16 +1503,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo return mImeWindowsContainers.forAllWindows(callback, traverseTopToBottom); } - /** - * Returns the orientation that this display should be in factoring in its children containers. - * - * @param includeAppContainers True if then app containers (stacks, tasks, ...) should be - * factored in when determining the orientation. If false only - * non-app/system containers will be used to determine the returned - * orientation. - * @return The orientation the display should be in. - */ - int getOrientation(boolean includeAppContainers) { + @Override + int getOrientation() { final WindowManagerPolicy policy = mService.mPolicy; if (mService.mDisplayFrozen) { @@ -1541,14 +1533,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } } - // Top system windows are not requesting an orientation. Get orientation from app containers - // if allowed. Otherwise, return the last orientation. - return includeAppContainers ? mTaskStackContainers.getOrientation() : mLastOrientation; - } - - @Override - int getOrientation() { - return getOrientation(true /* includeAppContainers */); + // Top system windows are not requesting an orientation. Start searching from apps. + return mTaskStackContainers.getOrientation(); } void updateDisplayInfo() { diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index a48397b2a171..a7f6600b086c 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2373,7 +2373,7 @@ public class WindowManagerService extends IWindowManager.Stub try { synchronized(mWindowMap) { config = updateOrientationFromAppTokensLocked(currentConfig, freezeThisOneIfNeeded, - displayId, true /* includeAppContainers */); + displayId); } } finally { Binder.restoreCallingIdentity(ident); @@ -2383,13 +2383,13 @@ public class WindowManagerService extends IWindowManager.Stub } private Configuration updateOrientationFromAppTokensLocked(Configuration currentConfig, - IBinder freezeThisOneIfNeeded, int displayId, boolean includeAppContainers) { + IBinder freezeThisOneIfNeeded, int displayId) { if (!mDisplayReady) { return null; } Configuration config = null; - if (updateOrientationFromAppTokensLocked(false, displayId, includeAppContainers)) { + if (updateOrientationFromAppTokensLocked(false, displayId)) { // If we changed the orientation but mOrientationChangeComplete is already true, // we used seamless rotation, and we don't need to freeze the screen. if (freezeThisOneIfNeeded != null && !mRoot.mOrientationChangeComplete) { @@ -2427,11 +2427,6 @@ public class WindowManagerService extends IWindowManager.Stub return config; } - boolean updateOrientationFromAppTokensLocked(boolean inTransaction, int displayId) { - return updateOrientationFromAppTokensLocked(inTransaction, displayId, - false /* includeAppContainers */); - } - /** * Determine the new desired orientation of the display, returning a non-null new Configuration * if it has changed from the current orientation. IF TRUE IS RETURNED SOMEONE MUST CALL @@ -2442,25 +2437,13 @@ public class WindowManagerService extends IWindowManager.Stub * The orientation is computed from non-application windows first. If none of the * non-application windows specify orientation, the orientation is computed from application * tokens. - * - * @param inTransaction True if we are currently in a surface transaction. - * @param displayId Id of the display to update orientation for. - * @param includeAppContainers True if then app containers (stacks, tasks, ...) should be - * factored in when determining the orientation. If false only - * non-app/system containers will be used to determine the returned - * orientation. - * NOTE: Only call originating from activity manager are expected to - * set this to true as it needs to synchronize several app states - * like visibility with the update of display orientation. - * @return True if the display orientation was updated. * @see android.view.IWindowManager#updateOrientationFromAppTokens(Configuration, IBinder, int) */ - private boolean updateOrientationFromAppTokensLocked(boolean inTransaction, int displayId, - boolean includeAppContainers) { - final long ident = Binder.clearCallingIdentity(); + boolean updateOrientationFromAppTokensLocked(boolean inTransaction, int displayId) { + long ident = Binder.clearCallingIdentity(); try { final DisplayContent dc = mRoot.getDisplayContent(displayId); - final int req = dc.getOrientation(includeAppContainers); + final int req = dc.getOrientation(); if (req != dc.getLastOrientation()) { dc.setLastOrientation(req); //send a message to Policy indicating orientation change to take |