[Bouncer] reset bouncer visibility with doze state.

When doze state is no longer dozing, we were not resetting the bouncer
view. Here, regardless of set to doze or set to not doze, we reset the
bouncer view.

Fixes: 237822716
Test: Added a unit test and test manually.
Change-Id: Ia58356827ffbc96c5467369dc1e00ed9e4535e5e
This commit is contained in:
Aaron Liu
2022-09-15 14:23:56 -07:00
parent 6170285a1a
commit 590051205d
2 changed files with 19 additions and 3 deletions

View File

@@ -667,9 +667,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
private void setDozing(boolean dozing) {
if (mDozing != dozing) {
mDozing = dozing;
if (dozing || mBouncer.needsFullscreenBouncer() || mOccluded) {
reset(dozing /* hideBouncerWhenShowing */);
}
reset(true /* hideBouncerWhenShowing */);
updateStates();
if (!dozing) {

View File

@@ -26,6 +26,7 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -505,4 +506,21 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
mBouncerExpansionCallback.onVisibilityChanged(false);
verify(mCentralSurfaces).setBouncerShowingOverDream(false);
}
@Test
public void testSetDozing_Dozing() {
clearInvocations(mBouncer);
mStatusBarKeyguardViewManager.onDozingChanged(true);
// Once when shown and once with dozing changed.
verify(mBouncer, times(1)).hide(false);
}
@Test
public void testSetDozing_notDozing() {
mStatusBarKeyguardViewManager.onDozingChanged(true);
clearInvocations(mBouncer);
mStatusBarKeyguardViewManager.onDozingChanged(false);
// Once when shown and twice with dozing changed.
verify(mBouncer, times(1)).hide(false);
}
}