diff options
6 files changed, 38 insertions, 38 deletions
diff --git a/core/java/android/view/WindowManagerInternal.java b/core/java/android/view/WindowManagerInternal.java index 98f8dc8e3a6d..97dff6a860b9 100644 --- a/core/java/android/view/WindowManagerInternal.java +++ b/core/java/android/view/WindowManagerInternal.java @@ -225,9 +225,6 @@ public abstract class WindowManagerInternal { */ public abstract boolean isKeyguardLocked(); - /** @return {@code true} if the keyguard is going away. */ - public abstract boolean isKeyguardGoingAway(); - /** * @return Whether the keyguard is showing and not occluded. */ diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index b2bbf199bfc1..4d98f19f79b9 100644 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -2249,26 +2249,6 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo mTmpConfig.unset(); computeBounds(mTmpBounds); if (mTmpBounds.equals(mBounds)) { - final ActivityStack stack = getStack(); - if (!mBounds.isEmpty() || task == null || stack == null || !task.mFullscreen) { - // We don't want to influence the override configuration here if our task is in - // multi-window mode or there is a bounds specified to calculate the override - // config. In both of this cases the app should be compatible with whatever the - // current configuration is or will be. - return; - } - - // Currently limited to the top activity for now to avoid situations where non-top - // visible activity and top might have conflicting requests putting the non-top activity - // windows in an odd state. - final ActivityRecord top = mStackSupervisor.topRunningActivityLocked(); - final Configuration parentConfig = getParent().getConfiguration(); - if (top != this || isConfigurationCompatible(parentConfig)) { - onOverrideConfigurationChanged(mTmpConfig); - } else if (isConfigurationCompatible( - mLastReportedConfiguration.getMergedConfiguration())) { - onOverrideConfigurationChanged(mLastReportedConfiguration.getMergedConfiguration()); - } return; } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index f79f0e86b765..da14c360f16a 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -1152,14 +1152,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { + ", mOrientationSensorEnabled=" + mOrientationSensorEnabled + ", mKeyguardDrawComplete=" + mKeyguardDrawComplete + ", mWindowManagerDrawComplete=" + mWindowManagerDrawComplete); - final boolean keyguardGoingAway = mWindowManagerInternal.isKeyguardGoingAway(); boolean disable = true; // Note: We postpone the rotating of the screen until the keyguard as well as the // window manager have reported a draw complete or the keyguard is going away in dismiss // mode. - if (mScreenOnEarly && mAwake && ((mKeyguardDrawComplete && mWindowManagerDrawComplete) - || keyguardGoingAway)) { + if (mScreenOnEarly && mAwake && ((mKeyguardDrawComplete && mWindowManagerDrawComplete))) { if (needSensorRunningLp()) { disable = false; //enable listener if not already enabled @@ -1170,7 +1168,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { // the sensor reading was cleared which can cause it to relaunch the app that // will show in the wrong orientation first before correcting leading to app // launch delays. - mOrientationListener.enable(!keyguardGoingAway /* clearCurrentRotation */); + mOrientationListener.enable(true /* clearCurrentRotation */); if(localLOGV) Slog.v(TAG, "Enabling listeners"); mOrientationSensorEnabled = true; } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index c8cbcd811de8..0abc84745f0e 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2994,10 +2994,9 @@ public class WindowManagerService extends IWindowManager.Stub } public void setKeyguardGoingAway(boolean keyguardGoingAway) { -// TODO: Use of this can be removed. Revert ag/I8369723d6a77f2c602f1ef080371fa7cd9ee094e -// synchronized (mWindowMap) { -// mKeyguardGoingAway = keyguardGoingAway; -// } + synchronized (mWindowMap) { + mKeyguardGoingAway = keyguardGoingAway; + } } // ------------------------------------------------------------- @@ -7436,11 +7435,6 @@ public class WindowManagerService extends IWindowManager.Stub } @Override - public boolean isKeyguardGoingAway() { - return WindowManagerService.this.mKeyguardGoingAway; - } - - @Override public boolean isKeyguardShowingAndNotOccluded() { return WindowManagerService.this.isKeyguardShowingAndNotOccluded(); } diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java index 91eb55ba3fcf..10d241357ff4 100644 --- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java @@ -17,11 +17,16 @@ package com.android.server.wm; import static android.app.ActivityManager.StackId.PINNED_STACK_ID; +import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; +import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; +import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; +import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION; + import static com.android.server.wm.WindowContainer.POSITION_TOP; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -30,6 +35,7 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; +import android.annotation.SuppressLint; import android.content.res.Configuration; import android.os.SystemClock; import android.platform.test.annotations.Presubmit; @@ -378,6 +384,31 @@ public class DisplayContentTests extends WindowTestsBase { assertEquals(-1, orderedDisplayIds.indexOfValue(dc.getDisplayId())); } + @Test + @SuppressLint("InlinedApi") + public void testOrientationDefinedByKeyguard() { + final DisplayContent dc = createNewDisplay(); + // Create a window that requests landscape orientation. It will define device orientation + // by default. + final WindowState window = createWindow(null /* parent */, TYPE_BASE_APPLICATION, dc, "w"); + window.mAppToken.setOrientation(SCREEN_ORIENTATION_LANDSCAPE); + + final WindowState keyguard = createWindow(null, TYPE_STATUS_BAR, dc, "keyguard"); + keyguard.mHasSurface = true; + keyguard.mAttrs.screenOrientation = SCREEN_ORIENTATION_UNSPECIFIED; + + assertEquals("Screen orientation must be defined by the app window by default", + SCREEN_ORIENTATION_LANDSCAPE, dc.getOrientation()); + + keyguard.mAttrs.screenOrientation = SCREEN_ORIENTATION_PORTRAIT; + assertEquals("Visible keyguard must influence device orientation", + SCREEN_ORIENTATION_PORTRAIT, dc.getOrientation()); + + sWm.setKeyguardGoingAway(true); + assertEquals("Keyguard that is going away must not influence device orientation", + SCREEN_ORIENTATION_LANDSCAPE, dc.getOrientation()); + } + private static void verifySizes(DisplayContent displayContent, int expectedBaseWidth, int expectedBaseHeight, int expectedBaseDensity) { assertEquals(displayContent.mBaseDisplayWidth, expectedBaseWidth); diff --git a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java index 95adc9cd5a1a..eca27eefb2cd 100644 --- a/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java +++ b/services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java @@ -17,7 +17,7 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; -import static android.view.WindowManagerPolicy.NAV_BAR_BOTTOM; +import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; @@ -188,7 +188,7 @@ class TestWindowManagerPolicy implements WindowManagerPolicy { @Override public boolean isKeyguardHostWindow(WindowManager.LayoutParams attrs) { - return false; + return attrs.type == TYPE_STATUS_BAR; } @Override |