diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 333f6b9cadb2a..ee45c42b74fc6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -1105,7 +1105,6 @@ public class CentralSurfacesImpl extends CoreStartable implements isFolded, willGoToSleep, isShadeOpen, leaveOpen)); } if (leaveOpen) { - mStatusBarStateController.setLeaveOpenOnKeyguardHide(true); if (mKeyguardStateController.isShowing()) { // When device state changes on keyguard we don't want to keep the state of // the shade and instead we open clean state of keyguard with shade closed. @@ -1114,6 +1113,9 @@ public class CentralSurfacesImpl extends CoreStartable implements // expanded. To prevent that we can close QS which resets QS and some parts of // the shade to its default state. Read more in b/201537421 mCloseQsBeforeScreenOff = true; + } else { + // below makes shade stay open when going from folded to unfolded + mStatusBarStateController.setLeaveOpenOnKeyguardHide(true); } } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java index 2a3509ce3a2cf..7b7f45a446154 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java @@ -965,6 +965,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase { @Test public void deviceStateChange_unfolded_shadeOpen_setsLeaveOpenOnKeyguardHide() { + when(mKeyguardStateController.isShowing()).thenReturn(false); setFoldedStates(FOLD_STATE_FOLDED); setGoToSleepStates(FOLD_STATE_FOLDED); when(mNotificationPanelViewController.isFullyExpanded()).thenReturn(true); @@ -974,6 +975,19 @@ public class CentralSurfacesImplTest extends SysuiTestCase { verify(mStatusBarStateController).setLeaveOpenOnKeyguardHide(true); } + @Test + public void deviceStateChange_unfolded_shadeOpen_onKeyguard_doesNotSetLeaveOpenOnKeyguardHide() { + when(mKeyguardStateController.isShowing()).thenReturn(true); + setFoldedStates(FOLD_STATE_FOLDED); + setGoToSleepStates(FOLD_STATE_FOLDED); + when(mNotificationPanelViewController.isFullyExpanded()).thenReturn(true); + + setDeviceState(FOLD_STATE_UNFOLDED); + + verify(mStatusBarStateController, never()).setLeaveOpenOnKeyguardHide(true); + } + + @Test public void deviceStateChange_unfolded_shadeClose_doesNotSetLeaveOpenOnKeyguardHide() { setFoldedStates(FOLD_STATE_FOLDED);