From 5f370708845c9620e64c7aeabe635df0a8d1cd0c Mon Sep 17 00:00:00 2001 From: Joshua McCloskey Date: Mon, 2 May 2022 22:58:24 +0000 Subject: [PATCH] Add onUiReady to AlternativeTouchProvider Test: Verified that onUiReady correctly flows through the provider. Fixes: 231170060 Change-Id: I3c7d92e11693957e10596e111cb4ef9f5dc7fd85 --- .../biometrics/AlternateUdfpsTouchProvider.kt | 12 ++++++++++++ .../android/systemui/biometrics/UdfpsController.java | 6 +++++- .../systemui/biometrics/UdfpsControllerTest.java | 5 ++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AlternateUdfpsTouchProvider.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AlternateUdfpsTouchProvider.kt index f4f39a1df11b4..ca4b8efa98a51 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AlternateUdfpsTouchProvider.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AlternateUdfpsTouchProvider.kt @@ -22,6 +22,8 @@ package com.android.systemui.biometrics interface AlternateUdfpsTouchProvider { /** + * onPointerDown: + * * This operation is used to notify the Fingerprint HAL that * a fingerprint has been detected on the device's screen. * @@ -39,4 +41,14 @@ interface AlternateUdfpsTouchProvider { * See fingerprint/ISession#onPointerUp for more details. */ fun onPointerUp(pointerId: Long) + + /** + * onUiReady: + * + * This operation is used by the callee to notify the Fingerprint HAL that SystemUI is + * correctly configured for the fingerprint capture. + * + * See fingerprint/ISession#onUiReady for more details. + */ + fun onUiReady() } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java index 0096032a6e680..f76b3c01c9969 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java @@ -804,7 +804,11 @@ public class UdfpsController implements DozeReceiver { final UdfpsView view = mOverlay.getOverlayView(); if (view != null) { view.startIllumination(() -> { - mFingerprintManager.onUiReady(requestId, mSensorId); + if (mAlternateTouchProvider != null) { + mAlternateTouchProvider.onUiReady(); + } else { + mFingerprintManager.onUiReady(requestId, mSensorId); + } mLatencyTracker.onActionEnd(LatencyTracker.ACTION_UDFPS_ILLUMINATE); }); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java index 80df1e3a7e5c5..fc3f5b352d0e1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java @@ -590,9 +590,8 @@ public class UdfpsControllerTest extends SysuiTestCase { verify(mLatencyTracker, never()).onActionEnd(eq(LatencyTracker.ACTION_UDFPS_ILLUMINATE)); // AND onIlluminatedRunnable notifies FingerprintManager about onUiReady mOnIlluminatedRunnableCaptor.getValue().run(); - InOrder inOrder = inOrder(mFingerprintManager, mLatencyTracker); - inOrder.verify(mFingerprintManager).onUiReady( - eq(TEST_REQUEST_ID), eq(mUdfpsController.mSensorId)); + InOrder inOrder = inOrder(mAlternateTouchProvider, mLatencyTracker); + inOrder.verify(mAlternateTouchProvider).onUiReady(); inOrder.verify(mLatencyTracker).onActionEnd(eq(LatencyTracker.ACTION_UDFPS_ILLUMINATE)); }