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

Commit 3137bf19 authored by Andreas Miko's avatar Andreas Miko
Browse files

[Flexiglass] Fix BiometricsUnlockController

Use Flexiglass-aware APIs instead of custom logic on states.

Bug: 349784682
Flag: com.android.systemui.scene_container
Test: Adjusted unit tests
Change-Id: I15551370c2285ee989358a1c4522546b369dd8b2
parent a55d5a27
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -53,11 +53,14 @@ import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.keyguard.domain.interactor.BiometricUnlockInteractor;
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor;
import com.android.systemui.keyguard.shared.model.BiometricUnlockSource;
import com.android.systemui.keyguard.shared.model.Edge;
import com.android.systemui.keyguard.shared.model.KeyguardState;
import com.android.systemui.keyguard.shared.model.TransitionState;
import com.android.systemui.keyguard.shared.model.TransitionStep;
import com.android.systemui.log.SessionTracker;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.res.R;
import com.android.systemui.scene.shared.model.Scenes;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.VibratorHelper;
@@ -327,14 +330,17 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
        mSelectedUserInteractor = selectedUserInteractor;
        mKeyguardTransitionInteractor = keyguardTransitionInteractor;
        javaAdapter.alwaysCollectFlow(
                keyguardTransitionInteractor.getStartedKeyguardTransitionStep(),
                this::consumeTransitionStepOnStartedKeyguardState);
                keyguardTransitionInteractor.transition(
                        /* edge */ Edge.create(Scenes.Gone, null),
                        /* edgeWithoutSceneContainer */ Edge.create(
                                KeyguardState.GONE, (KeyguardState) null)),
                this::consumeFromGoneTransitions);
        dumpManager.registerDumpable(this);
    }

    @VisibleForTesting
    protected void consumeTransitionStepOnStartedKeyguardState(TransitionStep transitionStep) {
        if (transitionStep.getFrom() == KeyguardState.GONE) {
    protected void consumeFromGoneTransitions(TransitionStep transitionStep) {
        if (transitionStep.getTransitionState() == TransitionState.STARTED) {
            mBiometricUnlockInteractor.setBiometricUnlockState(MODE_NONE, null);
        }
    }
+5 −5
Original line number Diff line number Diff line
@@ -495,18 +495,18 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase {
    }

    @Test
    public void biometricUnlockStateResetOnTransitionFromGone() {
        mBiometricUnlockController.consumeTransitionStepOnStartedKeyguardState(
    public void biometricUnlockStateResetOnStartedTransition() {
        mBiometricUnlockController.consumeFromGoneTransitions(
                new TransitionStep(
                        KeyguardState.AOD,
                        KeyguardState.GONE,
                        KeyguardState.AOD,
                        .1f /* value */,
                        TransitionState.STARTED
                        TransitionState.RUNNING
                )
        );
        verify(mBiometricUnlockInteractor, never()).setBiometricUnlockState(anyInt(), any());

        mBiometricUnlockController.consumeTransitionStepOnStartedKeyguardState(
        mBiometricUnlockController.consumeFromGoneTransitions(
                new TransitionStep(
                        KeyguardState.GONE,
                        KeyguardState.AOD,