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

Commit 025a3749 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Fix race condition" into rvc-dev am: 3f634b45 am: 3939060a am: 2ed86d14 am: abb9ae71

Change-Id: Iedbb1d9c7d524f803b2f05a1fa8b740197962d90
parents 10397f3b abb9ae71
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -394,10 +394,11 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp
    public void onFinishedGoingToSleep(int why) {
        Trace.beginSection("BiometricUnlockController#onFinishedGoingToSleep");
        if (mPendingAuthenticated != null) {
            PendingAuthenticated pendingAuthenticated = mPendingAuthenticated;
            // Post this to make sure it's executed after the device is fully locked.
            mHandler.post(() -> onBiometricAuthenticated(mPendingAuthenticated.userId,
                    mPendingAuthenticated.biometricSourceType,
                    mPendingAuthenticated.isStrongBiometric));
            mHandler.post(() -> onBiometricAuthenticated(pendingAuthenticated.userId,
                    pendingAuthenticated.biometricSourceType,
                    pendingAuthenticated.isStrongBiometric));
            mPendingAuthenticated = null;
        }
        Trace.endSection();
+4 −1
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

@@ -325,11 +326,13 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase {
        mBiometricUnlockController.onFinishedGoingToSleep(-1);
        verify(mHandler, never()).post(any());

        ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class);
        // the value of isStrongBiometric doesn't matter here since we only care about the returned
        // value of isUnlockingWithBiometricAllowed()
        mBiometricUnlockController.onBiometricAuthenticated(1 /* userId */,
                BiometricSourceType.FACE, true /* isStrongBiometric */);
        mBiometricUnlockController.onFinishedGoingToSleep(-1);
        verify(mHandler).post(any());
        verify(mHandler).post(captor.capture());
        captor.getValue().run();
    }
}