summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AlternateUdfpsTouchProvider.kt12
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java5
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 f4f39a1df11b..ca4b8efa98a5 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 463db5c92554..432d2930453c 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
@@ -813,7 +813,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 da5939ae4a12..87d3cd0cf0a0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java
@@ -594,9 +594,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));
}