Add isUdfps method to biometrics.fingerprint@2.3
Bug: 158135499
Test: atest VtsHalBiometricsFingerprintV2_3TargetTest
Change-Id: I10a75f8362f2596709399a45555bf9f09451f962
diff --git a/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal b/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal
index 8777c28..13f03c5 100644
--- a/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal
+++ b/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal
@@ -22,22 +22,45 @@
* The interface for biometric fingerprint authentication.
*/
interface IBiometricsFingerprint extends @2.2::IBiometricsFingerprint {
- /**
- * Notifies about a finger touching the sensor area.
- *
- * @param x The screen x-coordinate of the center of the touch contact area, in
- * display pixels.
- * @param y The screen y-coordinate of the center of the touch contact area, in
- * display pixels.
- * @param minor The length of the minor axis of an ellipse that describes the
- * touch area, in display pixels.
- * @param major The length of the major axis of an ellipse that describes the
- * touch area, in display pixels.
- */
- oneway onFingerDown(uint32_t x, uint32_t y, float minor, float major);
+ /**
+ * Returns whether the fingerprint sensor is an under-display fingerprint
+ * sensor.
+ * @param sensorId the unique sensor ID for which the operation should be
+ * performed.
+ * @return isUdfps indicating whether the specified sensor is an
+ * under-display fingerprint sensor.
+ */
+ isUdfps(uint32_t sensorId) generates (bool isUdfps);
- /**
- * Notifies about a finger leaving the sensor area.
- */
- oneway onFingerUp();
+ /**
+ * Notifies about a touch occurring within the under-display fingerprint
+ * sensor area.
+ *
+ * It it assumed that the device can only have one active under-display
+ * fingerprint sensor at a time.
+ *
+ * If multiple fingers are detected within the sensor area, only the
+ * chronologically first event will be reported.
+ *
+ * @param x The screen x-coordinate of the center of the touch contact area, in
+ * display pixels.
+ * @param y The screen y-coordinate of the center of the touch contact area, in
+ * display pixels.
+ * @param minor The length of the minor axis of an ellipse that describes the
+ * touch area, in display pixels.
+ * @param major The length of the major axis of an ellipse that describes the
+ * touch area, in display pixels.
+ */
+ onFingerDown(uint32_t x, uint32_t y, float minor, float major);
+
+ /**
+ * Notifies about a finger leaving the under-display fingerprint sensor area.
+ *
+ * It it assumed that the device can only have one active under-display
+ * fingerprint sensor at a time.
+ *
+ * If multiple fingers have left the sensor area, only the finger which
+ * previously caused a "finger down" event will be reported.
+ */
+ onFingerUp();
};
diff --git a/biometrics/fingerprint/2.3/vts/functional/VtsHalBiometricsFingerprintV2_3TargetTest.cpp b/biometrics/fingerprint/2.3/vts/functional/VtsHalBiometricsFingerprintV2_3TargetTest.cpp
index 7226213..7242016 100644
--- a/biometrics/fingerprint/2.3/vts/functional/VtsHalBiometricsFingerprintV2_3TargetTest.cpp
+++ b/biometrics/fingerprint/2.3/vts/functional/VtsHalBiometricsFingerprintV2_3TargetTest.cpp
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+#define ASSERT_OK(v) ASSERT_TRUE(v.isOk())
+
#include <android/hardware/biometrics/fingerprint/2.3/IBiometricsFingerprint.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
@@ -41,14 +43,21 @@
sp<IBiometricsFingerprint> mService;
};
-// This is a one-way method that doesn't return anything.
-TEST_P(FingerprintHidlTest, onFingerDownTest) {
- mService->onFingerDown(1, 2, 3.0f, 4.0f);
+// This method returns true or false depending on the implementation.
+TEST_P(FingerprintHidlTest, isUdfpsTest) {
+ // Arbitrary ID
+ uint32_t sensorId = 1234;
+ ASSERT_OK(mService->isUdfps(sensorId));
}
-// This is a one-way method that doesn't return anything.
+// This method that doesn't return anything.
+TEST_P(FingerprintHidlTest, onFingerDownTest) {
+ ASSERT_OK(mService->onFingerDown(1, 2, 3.0f, 4.0f));
+}
+
+// This method that doesn't return anything.
TEST_P(FingerprintHidlTest, onFingerUp) {
- mService->onFingerUp();
+ ASSERT_OK(mService->onFingerUp());
}
} // anonymous namespace