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

Commit 540d2f36 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Fix issue where scrim would be transparent

This is due to BiometricUnlockController#isBiometricUnlock() returning
true after finishing unlocking.

In order to have a more resilient logic, we can also verify if they
device is already unlocked and the keyguard is gone.

Test: manual
Test: atest StatusBarTest
Fixes: 200882274
Change-Id: I4e0aeeec407db1a9dcbcad2960315cb68d7ac3b3
parent 8dc8182a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1264,6 +1264,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
        pw.println(mDefaultScrimAlpha);
        pw.print("  mExpansionFraction=");
        pw.println(mPanelExpansion);
        pw.print("  mExpansionAffectsAlpha=");
        pw.println(mExpansionAffectsAlpha);

        pw.print("  mState.getMaxLightRevealScrimAlpha=");
        pw.println(mState.getMaxLightRevealScrimAlpha());
+5 −2
Original line number Diff line number Diff line
@@ -4466,8 +4466,11 @@ public class StatusBar extends SystemUI implements DemoMode,
                || mKeyguardStateController.isKeyguardFadingAway();

        // Do not animate the scrim expansion when triggered by the fingerprint sensor.
        mScrimController.setExpansionAffectsAlpha(
                !mBiometricUnlockController.isBiometricUnlock());
        boolean onKeyguardOrHidingIt = mKeyguardStateController.isShowing()
                || mKeyguardStateController.isKeyguardFadingAway()
                || mKeyguardStateController.isKeyguardGoingAway();
        mScrimController.setExpansionAffectsAlpha(!(mBiometricUnlockController.isBiometricUnlock()
                        && onKeyguardOrHidingIt));

        boolean launchingAffordanceWithPreview =
                mNotificationPanelViewController.isLaunchingAffordanceWithPreview();
+28 −0
Original line number Diff line number Diff line
@@ -823,6 +823,34 @@ public class StatusBarTest extends SysuiTestCase {
        verify(mScrimController).transitionTo(eq(ScrimState.UNLOCKED), any());
    }

    @Test
    public void testSetExpansionAffectsAlpha_onlyWhenHidingKeyguard() {
        mStatusBar.updateScrimController();
        verify(mScrimController).setExpansionAffectsAlpha(eq(true));

        clearInvocations(mScrimController);
        when(mBiometricUnlockController.isBiometricUnlock()).thenReturn(true);
        mStatusBar.updateScrimController();
        verify(mScrimController).setExpansionAffectsAlpha(eq(true));

        clearInvocations(mScrimController);
        when(mKeyguardStateController.isShowing()).thenReturn(true);
        mStatusBar.updateScrimController();
        verify(mScrimController).setExpansionAffectsAlpha(eq(false));

        clearInvocations(mScrimController);
        reset(mKeyguardStateController);
        when(mKeyguardStateController.isKeyguardFadingAway()).thenReturn(true);
        mStatusBar.updateScrimController();
        verify(mScrimController).setExpansionAffectsAlpha(eq(false));

        clearInvocations(mScrimController);
        reset(mKeyguardStateController);
        when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true);
        mStatusBar.updateScrimController();
        verify(mScrimController).setExpansionAffectsAlpha(eq(false));
    }

    @Test
    public void testTransitionLaunch_noPreview_doesntGoUnlocked() {
        mStatusBar.setBarStateForTest(StatusBarState.KEYGUARD);