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

Commit 84b2acc6 authored by Selim Cinek's avatar Selim Cinek
Browse files

Improved the bypass animation

The lock icon and the scrim now fade with the same quick unlock animation
like the rest of the bypass, which completes the experience

Fixes: 134952761
Change-Id: Id164914e0e8d780e626acb28922c2084257620f9
parent 3d1ed4a5
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -570,6 +570,13 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback {
        return isWakeAndUnlock() || mMode == MODE_UNLOCK_COLLAPSING || mMode == MODE_UNLOCK_FADING;
    }

    /**
     * Successful authentication with fingerprint, face, or iris when the lockscreen fades away
     */
    public boolean isUnlockFading() {
        return mMode == MODE_UNLOCK_FADING;
    }

    /**
     * Translates biometric source type for logging purpose.
     */
+4 −0
Original line number Diff line number Diff line
@@ -167,4 +167,8 @@ class KeyguardBypassController {
        pw.print("  qSExpanded: "); pw.println(qSExpanded)
        pw.print("  bouncerShowing: "); pw.println(bouncerShowing)
    }

    companion object {
        const val BYPASS_PANEL_FADE_DURATION = 67
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -932,6 +932,12 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
        }
    }

    public void setUnlockIsFading(boolean unlockFading) {
        for (ScrimState state : ScrimState.values()) {
            state.setUnlockIsFading(unlockFading);
        }
    }

    public void setLaunchingAffordanceWithPreview(boolean launchingAffordanceWithPreview) {
        for (ScrimState state : ScrimState.values()) {
            state.setLaunchingAffordanceWithPreview(launchingAffordanceWithPreview);
+8 −1
Original line number Diff line number Diff line
@@ -147,7 +147,9 @@ public enum ScrimState {
        public void prepare(ScrimState previousState) {
            mCurrentBehindAlpha = 0;
            mCurrentInFrontAlpha = 0;
            mAnimationDuration = StatusBar.FADE_KEYGUARD_DURATION;
            mAnimationDuration = mUnlockIsFading
                    ? KeyguardBypassController.BYPASS_PANEL_FADE_DURATION
                    : StatusBar.FADE_KEYGUARD_DURATION;
            mAnimateChange = !mLaunchingAffordanceWithPreview;

            if (previousState == ScrimState.AOD) {
@@ -198,6 +200,7 @@ public enum ScrimState {
    boolean mHasBackdrop;
    boolean mLaunchingAffordanceWithPreview;
    boolean mWakeLockScreenSensorActive;
    boolean mUnlockIsFading;

    ScrimState(int index) {
        mIndex = index;
@@ -285,4 +288,8 @@ public enum ScrimState {
    public void setWakeLockScreenSensorActive(boolean active) {
        mWakeLockScreenSensorActive = active;
    }

    public void setUnlockIsFading(boolean unlockIsFading) {
        mUnlockIsFading = unlockIsFading;
    }
}
 No newline at end of file
+5 −3
Original line number Diff line number Diff line
@@ -3840,6 +3840,7 @@ public class StatusBar extends SystemUI implements DemoMode,

    public void notifyBiometricAuthModeChanged() {
        updateDozing();
        mScrimController.setUnlockIsFading(mBiometricUnlockController.isUnlockFading());
        updateScrimController();
        mStatusBarWindow.onBiometricAuthModeChanged(mBiometricUnlockController.isWakeAndUnlock(),
                mBiometricUnlockController.isBiometricUnlock());
@@ -3851,7 +3852,8 @@ public class StatusBar extends SystemUI implements DemoMode,

        // We don't want to end up in KEYGUARD state when we're unlocking with
        // fingerprint from doze. We should cross fade directly from black.
        boolean wakeAndUnlocking = mBiometricUnlockController.isWakeAndUnlock();
        boolean unlocking = mBiometricUnlockController.isWakeAndUnlock()
                || mKeyguardMonitor.isKeyguardFadingAway();

        // Do not animate the scrim expansion when triggered by the fingerprint sensor.
        mScrimController.setExpansionAffectsAlpha(
@@ -3876,9 +3878,9 @@ public class StatusBar extends SystemUI implements DemoMode,
        } else if (isPulsing()) {
            mScrimController.transitionTo(ScrimState.PULSING,
                    mDozeScrimController.getScrimCallback());
        } else if (mDozing && !wakeAndUnlocking) {
        } else if (mDozing && !unlocking) {
            mScrimController.transitionTo(ScrimState.AOD);
        } else if (mIsKeyguard && !wakeAndUnlocking) {
        } else if (mIsKeyguard && !unlocking) {
            mScrimController.transitionTo(ScrimState.KEYGUARD);
        } else if (mBubbleController.isStackExpanded()) {
            mScrimController.transitionTo(ScrimState.BUBBLE_EXPANDED);
Loading