Loading core/java/android/view/WindowManagerInternal.java +0 −3 Original line number Diff line number Diff line Loading @@ -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. */ Loading services/core/java/com/android/server/am/ActivityRecord.java +0 −20 Original line number Diff line number Diff line Loading @@ -2182,26 +2182,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; } Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +2 −4 Original line number Diff line number Diff line Loading @@ -1172,14 +1172,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 Loading @@ -1190,7 +1188,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; } Loading services/core/java/com/android/server/wm/WindowManagerService.java +3 −9 Original line number Diff line number Diff line Loading @@ -2916,10 +2916,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; } } // ------------------------------------------------------------- Loading Loading @@ -7277,11 +7276,6 @@ public class WindowManagerService extends IWindowManager.Stub return WindowManagerService.this.isKeyguardLocked(); } @Override public boolean isKeyguardGoingAway() { return WindowManagerService.this.mKeyguardGoingAway; } @Override public boolean isKeyguardShowingAndNotOccluded() { return WindowManagerService.this.isKeyguardShowingAndNotOccluded(); Loading services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java +30 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,14 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; 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; Loading @@ -31,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; Loading Loading @@ -379,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); Loading Loading
core/java/android/view/WindowManagerInternal.java +0 −3 Original line number Diff line number Diff line Loading @@ -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. */ Loading
services/core/java/com/android/server/am/ActivityRecord.java +0 −20 Original line number Diff line number Diff line Loading @@ -2182,26 +2182,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; } Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +2 −4 Original line number Diff line number Diff line Loading @@ -1172,14 +1172,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 Loading @@ -1190,7 +1188,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; } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +3 −9 Original line number Diff line number Diff line Loading @@ -2916,10 +2916,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; } } // ------------------------------------------------------------- Loading Loading @@ -7277,11 +7276,6 @@ public class WindowManagerService extends IWindowManager.Stub return WindowManagerService.this.isKeyguardLocked(); } @Override public boolean isKeyguardGoingAway() { return WindowManagerService.this.mKeyguardGoingAway; } @Override public boolean isKeyguardShowingAndNotOccluded() { return WindowManagerService.this.isKeyguardShowingAndNotOccluded(); Loading
services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java +30 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,14 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; 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; Loading @@ -31,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; Loading Loading @@ -379,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); Loading