Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8ff6fb6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Issue resets to the SIM bouncer" into main

parents 2e866a11 e5b5a4c9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2995,7 +2995,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
                @Override
                public void onFalse() {
                    // Hides quick settings, bouncer, and quick-quick settings.
                    mStatusBarKeyguardViewManager.reset(true);
                    mStatusBarKeyguardViewManager.reset(true, /* isFalsingReset= */true);
                }
            };

+12 −4
Original line number Diff line number Diff line
@@ -708,7 +708,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
     * Shows the notification keyguard or the bouncer depending on
     * {@link #needsFullscreenBouncer()}.
     */
    protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing) {
    protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing, boolean isFalsingReset) {
        boolean isDozing = mDozing;
        if (Flags.simPinRaceConditionOnRestart()) {
            KeyguardState toState = mKeyguardTransitionInteractor.getTransitionState().getValue()
@@ -734,8 +734,12 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
                        mPrimaryBouncerInteractor.show(/* isScrimmed= */ true);
                    }
                }
            } else {
                Log.e(TAG, "Attempted to show the sim bouncer when it is already showing.");
            } else if (!isFalsingReset) {
                // Falsing resets can cause this to flicker, so don't reset in this case
                Log.i(TAG, "Sim bouncer is already showing, issuing a refresh");
                mPrimaryBouncerInteractor.hide();
                mPrimaryBouncerInteractor.show(/* isScrimmed= */ true);

            }
        } else {
            mCentralSurfaces.showKeyguard();
@@ -957,6 +961,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb

    @Override
    public void reset(boolean hideBouncerWhenShowing) {
        reset(hideBouncerWhenShowing, /* isFalsingReset= */false);
    }

    public void reset(boolean hideBouncerWhenShowing, boolean isFalsingReset) {
        if (mKeyguardStateController.isShowing() && !bouncerIsAnimatingAway()) {
            final boolean isOccluded = mKeyguardStateController.isOccluded();
            // Hide quick settings.
@@ -968,7 +976,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
                    hideBouncer(false /* destroyView */);
                }
            } else {
                showBouncerOrKeyguard(hideBouncerWhenShowing);
                showBouncerOrKeyguard(hideBouncerWhenShowing, isFalsingReset);
            }
            if (hideBouncerWhenShowing) {
                hideAlternateBouncer(true);
+18 −3
Original line number Diff line number Diff line
@@ -1068,7 +1068,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    public void testShowBouncerOrKeyguard_needsFullScreen() {
        when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(
                KeyguardSecurityModel.SecurityMode.SimPin);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false, false);
        verify(mCentralSurfaces).hideKeyguard();
        verify(mPrimaryBouncerInteractor).show(true);
    }
@@ -1084,7 +1084,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
                .thenReturn(KeyguardState.LOCKSCREEN);

        reset(mCentralSurfaces);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false, false);
        verify(mPrimaryBouncerInteractor).show(true);
        verify(mCentralSurfaces).showKeyguard();
    }
@@ -1092,11 +1092,26 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    @Test
    @DisableSceneContainer
    public void testShowBouncerOrKeyguard_needsFullScreen_bouncerAlreadyShowing() {
        boolean isFalsingReset = false;
        when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(
                KeyguardSecurityModel.SecurityMode.SimPin);
        when(mPrimaryBouncerInteractor.isFullyShowing()).thenReturn(true);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false, isFalsingReset);
        verify(mCentralSurfaces, never()).hideKeyguard();
        verify(mPrimaryBouncerInteractor).show(true);
    }

    @Test
    @DisableSceneContainer
    public void testShowBouncerOrKeyguard_needsFullScreen_bouncerAlreadyShowing_onFalsing() {
        boolean isFalsingReset = true;
        when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn(
                KeyguardSecurityModel.SecurityMode.SimPin);
        when(mPrimaryBouncerInteractor.isFullyShowing()).thenReturn(true);
        mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false, isFalsingReset);
        verify(mCentralSurfaces, never()).hideKeyguard();

        // Do not refresh the full screen bouncer if the call is from falsing
        verify(mPrimaryBouncerInteractor, never()).show(true);
    }