diff options
2 files changed, 8 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java index d5ded50870f0..fb88ea534a91 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -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(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java index d8d6018651f8..bfcf41db5287 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java @@ -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(); } } |