Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImpl.java +14 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static com.android.systemui.statusbar.NotificationRemoteInputManager.ENAB import android.app.IActivityManager; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.PixelFormat; import android.graphics.Region; import android.os.Binder; Loading Loading @@ -117,6 +118,7 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW * @see #batchApplyWindowLayoutParams(Runnable) */ private int mDeferWindowLayoutParams; private boolean mLastKeyguardRotationAllowed; @Inject public NotificationShadeWindowControllerImpl(Context context, WindowManager windowManager, Loading @@ -143,7 +145,7 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW mScreenOffAnimationController = screenOffAnimationController; dumpManager.registerDumpable(getClass().getName(), this); mAuthController = authController; mLastKeyguardRotationAllowed = mKeyguardStateController.isKeyguardScreenRotationAllowed(); mLockScreenDisplayTimeout = context.getResources() .getInteger(R.integer.config_lockScreenDisplayTimeout); ((SysuiStatusBarStateController) statusBarStateController) Loading Loading @@ -779,6 +781,17 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW setKeyguardDark(useDarkText); } @Override public void onConfigChanged(Configuration newConfig) { final boolean newScreenRotationAllowed = mKeyguardStateController .isKeyguardScreenRotationAllowed(); if (mLastKeyguardRotationAllowed != newScreenRotationAllowed) { apply(mCurrentState); mLastKeyguardRotationAllowed = newScreenRotationAllowed; } } /** * When keyguard will be dismissed but didn't start animation yet. */ Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImplTest.java +32 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.IActivityManager; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; Loading Loading @@ -227,6 +229,36 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase { assertThat((mLayoutParameters.getValue().flags & FLAG_ALT_FOCUSABLE_IM) == 0).isTrue(); } @Test public void rotationBecameAllowed_layoutParamsUpdated() { mNotificationShadeWindowController.setKeyguardShowing(true); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(false); mNotificationShadeWindowController.onConfigChanged(new Configuration()); clearInvocations(mWindowManager); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(true); mNotificationShadeWindowController.onConfigChanged(new Configuration()); verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture()); assertThat(mLayoutParameters.getValue().screenOrientation) .isEqualTo(ActivityInfo.SCREEN_ORIENTATION_USER); } @Test public void rotationBecameNotAllowed_layoutParamsUpdated() { mNotificationShadeWindowController.setKeyguardShowing(true); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(true); mNotificationShadeWindowController.onConfigChanged(new Configuration()); clearInvocations(mWindowManager); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(false); mNotificationShadeWindowController.onConfigChanged(new Configuration()); verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture()); assertThat(mLayoutParameters.getValue().screenOrientation) .isEqualTo(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); } @Test public void batchApplyWindowLayoutParams_doesNotDispatchEvents() { mNotificationShadeWindowController.setForceDozeBrightness(true); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImpl.java +14 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static com.android.systemui.statusbar.NotificationRemoteInputManager.ENAB import android.app.IActivityManager; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.PixelFormat; import android.graphics.Region; import android.os.Binder; Loading Loading @@ -117,6 +118,7 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW * @see #batchApplyWindowLayoutParams(Runnable) */ private int mDeferWindowLayoutParams; private boolean mLastKeyguardRotationAllowed; @Inject public NotificationShadeWindowControllerImpl(Context context, WindowManager windowManager, Loading @@ -143,7 +145,7 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW mScreenOffAnimationController = screenOffAnimationController; dumpManager.registerDumpable(getClass().getName(), this); mAuthController = authController; mLastKeyguardRotationAllowed = mKeyguardStateController.isKeyguardScreenRotationAllowed(); mLockScreenDisplayTimeout = context.getResources() .getInteger(R.integer.config_lockScreenDisplayTimeout); ((SysuiStatusBarStateController) statusBarStateController) Loading Loading @@ -779,6 +781,17 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW setKeyguardDark(useDarkText); } @Override public void onConfigChanged(Configuration newConfig) { final boolean newScreenRotationAllowed = mKeyguardStateController .isKeyguardScreenRotationAllowed(); if (mLastKeyguardRotationAllowed != newScreenRotationAllowed) { apply(mCurrentState); mLastKeyguardRotationAllowed = newScreenRotationAllowed; } } /** * When keyguard will be dismissed but didn't start animation yet. */ Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowControllerImplTest.java +32 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.IActivityManager; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.View; Loading Loading @@ -227,6 +229,36 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase { assertThat((mLayoutParameters.getValue().flags & FLAG_ALT_FOCUSABLE_IM) == 0).isTrue(); } @Test public void rotationBecameAllowed_layoutParamsUpdated() { mNotificationShadeWindowController.setKeyguardShowing(true); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(false); mNotificationShadeWindowController.onConfigChanged(new Configuration()); clearInvocations(mWindowManager); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(true); mNotificationShadeWindowController.onConfigChanged(new Configuration()); verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture()); assertThat(mLayoutParameters.getValue().screenOrientation) .isEqualTo(ActivityInfo.SCREEN_ORIENTATION_USER); } @Test public void rotationBecameNotAllowed_layoutParamsUpdated() { mNotificationShadeWindowController.setKeyguardShowing(true); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(true); mNotificationShadeWindowController.onConfigChanged(new Configuration()); clearInvocations(mWindowManager); when(mKeyguardStateController.isKeyguardScreenRotationAllowed()).thenReturn(false); mNotificationShadeWindowController.onConfigChanged(new Configuration()); verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture()); assertThat(mLayoutParameters.getValue().screenOrientation) .isEqualTo(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); } @Test public void batchApplyWindowLayoutParams_doesNotDispatchEvents() { mNotificationShadeWindowController.setForceDozeBrightness(true); Loading