Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -145,11 +145,11 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll } @Override public boolean setState(int state) { public boolean setState(int state, boolean force) { if (state > MAX_STATE || state < MIN_STATE) { throw new IllegalArgumentException("Invalid state " + state); } if (state == mState) { if (!force && state == mState) { return false; } Loading packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java +13 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,19 @@ public interface SysuiStatusBarStateController extends StatusBarStateController * @param state see {@link StatusBarState} for valid options * @return {@code true} if the state changed, else {@code false} */ boolean setState(int state); default boolean setState(int state) { return setState(state, false /* force */); } /** * Update the status bar state * @param state see {@link StatusBarState} for valid options * @param force whether to set the state even if it's the same as the current state. This will * dispatch the state to all StatusBarStateListeners, ensuring that all listening * components are reset to this state. * @return {@code true} if the state was changed or set forcefully */ boolean setState(int state, boolean force); /** * Update the dozing state from {@link StatusBar}'s perspective Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +7 −3 Original line number Diff line number Diff line Loading @@ -3428,6 +3428,10 @@ public class StatusBar extends SystemUI implements DemoMode, } boolean updateIsKeyguard() { return updateIsKeyguard(false /* force */); } boolean updateIsKeyguard(boolean force) { boolean wakeAndUnlocking = mBiometricUnlockController.getMode() == BiometricUnlockController.MODE_WAKE_AND_UNLOCK; Loading @@ -3451,7 +3455,7 @@ public class StatusBar extends SystemUI implements DemoMode, showKeyguardImpl(); } } else { return hideKeyguardImpl(); return hideKeyguardImpl(force); } return false; } Loading Loading @@ -3580,11 +3584,11 @@ public class StatusBar extends SystemUI implements DemoMode, /** * @return true if we would like to stay in the shade, false if it should go away entirely */ public boolean hideKeyguardImpl() { public boolean hideKeyguardImpl(boolean force) { mIsKeyguard = false; Trace.beginSection("StatusBar#hideKeyguard"); boolean staying = mStatusBarStateController.leaveOpenOnKeyguardHide(); if (!(mStatusBarStateController.setState(StatusBarState.SHADE))) { if (!(mStatusBarStateController.setState(StatusBarState.SHADE, force))) { //TODO: StatusBarStateController should probably know about hiding the keyguard and // notify listeners. Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt +8 −3 Original line number Diff line number Diff line Loading @@ -131,9 +131,14 @@ class UnlockedScreenOffAnimationController @Inject constructor( lightRevealAnimationPlaying = false aodUiAnimationPlaying = false // Make sure the status bar is in the correct keyguard state, since we might have left it in // the KEYGUARD state if this wakeup cancelled the screen off animation. statusBar.updateIsKeyguard() // Make sure the status bar is in the correct keyguard state, forcing it if necessary. This // is required if the screen off animation is cancelled, since it might be incorrectly left // in the KEYGUARD or SHADE states depending on when it was cancelled and whether 'lock // instantly' is enabled. We need to force it so that the state is set even if we're going // from SHADE to SHADE or KEYGUARD to KEYGUARD, since we might have changed parts of the UI // (such as showing AOD in the shade) without actually changing the StatusBarState. This // ensures that the UI definitely reflects the desired state. statusBar.updateIsKeyguard(true /* force */) } override fun onStartedGoingToSleep() { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +4 −2 Original line number Diff line number Diff line Loading @@ -843,12 +843,14 @@ public class StatusBarTest extends SysuiTestCase { // By default, showKeyguardImpl sets state to KEYGUARD. mStatusBar.showKeyguardImpl(); verify(mStatusBarStateController).setState(eq(StatusBarState.KEYGUARD)); verify(mStatusBarStateController).setState( eq(StatusBarState.KEYGUARD), eq(false) /* force */); // If useFullscreenUserSwitcher is true, state is set to FULLSCREEN_USER_SWITCHER. when(mUserSwitcherController.useFullscreenUserSwitcher()).thenReturn(true); mStatusBar.showKeyguardImpl(); verify(mStatusBarStateController).setState(eq(StatusBarState.FULLSCREEN_USER_SWITCHER)); verify(mStatusBarStateController).setState( eq(StatusBarState.FULLSCREEN_USER_SWITCHER), eq(false) /* force */); } @Test Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -145,11 +145,11 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll } @Override public boolean setState(int state) { public boolean setState(int state, boolean force) { if (state > MAX_STATE || state < MIN_STATE) { throw new IllegalArgumentException("Invalid state " + state); } if (state == mState) { if (!force && state == mState) { return false; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/SysuiStatusBarStateController.java +13 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,19 @@ public interface SysuiStatusBarStateController extends StatusBarStateController * @param state see {@link StatusBarState} for valid options * @return {@code true} if the state changed, else {@code false} */ boolean setState(int state); default boolean setState(int state) { return setState(state, false /* force */); } /** * Update the status bar state * @param state see {@link StatusBarState} for valid options * @param force whether to set the state even if it's the same as the current state. This will * dispatch the state to all StatusBarStateListeners, ensuring that all listening * components are reset to this state. * @return {@code true} if the state was changed or set forcefully */ boolean setState(int state, boolean force); /** * Update the dozing state from {@link StatusBar}'s perspective Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +7 −3 Original line number Diff line number Diff line Loading @@ -3428,6 +3428,10 @@ public class StatusBar extends SystemUI implements DemoMode, } boolean updateIsKeyguard() { return updateIsKeyguard(false /* force */); } boolean updateIsKeyguard(boolean force) { boolean wakeAndUnlocking = mBiometricUnlockController.getMode() == BiometricUnlockController.MODE_WAKE_AND_UNLOCK; Loading @@ -3451,7 +3455,7 @@ public class StatusBar extends SystemUI implements DemoMode, showKeyguardImpl(); } } else { return hideKeyguardImpl(); return hideKeyguardImpl(force); } return false; } Loading Loading @@ -3580,11 +3584,11 @@ public class StatusBar extends SystemUI implements DemoMode, /** * @return true if we would like to stay in the shade, false if it should go away entirely */ public boolean hideKeyguardImpl() { public boolean hideKeyguardImpl(boolean force) { mIsKeyguard = false; Trace.beginSection("StatusBar#hideKeyguard"); boolean staying = mStatusBarStateController.leaveOpenOnKeyguardHide(); if (!(mStatusBarStateController.setState(StatusBarState.SHADE))) { if (!(mStatusBarStateController.setState(StatusBarState.SHADE, force))) { //TODO: StatusBarStateController should probably know about hiding the keyguard and // notify listeners. Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt +8 −3 Original line number Diff line number Diff line Loading @@ -131,9 +131,14 @@ class UnlockedScreenOffAnimationController @Inject constructor( lightRevealAnimationPlaying = false aodUiAnimationPlaying = false // Make sure the status bar is in the correct keyguard state, since we might have left it in // the KEYGUARD state if this wakeup cancelled the screen off animation. statusBar.updateIsKeyguard() // Make sure the status bar is in the correct keyguard state, forcing it if necessary. This // is required if the screen off animation is cancelled, since it might be incorrectly left // in the KEYGUARD or SHADE states depending on when it was cancelled and whether 'lock // instantly' is enabled. We need to force it so that the state is set even if we're going // from SHADE to SHADE or KEYGUARD to KEYGUARD, since we might have changed parts of the UI // (such as showing AOD in the shade) without actually changing the StatusBarState. This // ensures that the UI definitely reflects the desired state. statusBar.updateIsKeyguard(true /* force */) } override fun onStartedGoingToSleep() { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +4 −2 Original line number Diff line number Diff line Loading @@ -843,12 +843,14 @@ public class StatusBarTest extends SysuiTestCase { // By default, showKeyguardImpl sets state to KEYGUARD. mStatusBar.showKeyguardImpl(); verify(mStatusBarStateController).setState(eq(StatusBarState.KEYGUARD)); verify(mStatusBarStateController).setState( eq(StatusBarState.KEYGUARD), eq(false) /* force */); // If useFullscreenUserSwitcher is true, state is set to FULLSCREEN_USER_SWITCHER. when(mUserSwitcherController.useFullscreenUserSwitcher()).thenReturn(true); mStatusBar.showKeyguardImpl(); verify(mStatusBarStateController).setState(eq(StatusBarState.FULLSCREEN_USER_SWITCHER)); verify(mStatusBarStateController).setState( eq(StatusBarState.FULLSCREEN_USER_SWITCHER), eq(false) /* force */); } @Test Loading