From 134ace098a52d93c62a1651b4f2918816f611bc2 Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Fri, 26 Jun 2020 10:47:46 -0700 Subject: [PATCH] Add isUdfps method to biometrics.fingerprint@2.3 Bug: 158135499 Test: atest VtsHalBiometricsFingerprintV2_3TargetTest Change-Id: I10a75f8362f2596709399a45555bf9f09451f962 --- .../2.3/IBiometricsFingerprint.hal | 57 +++++++++++++------ ...HalBiometricsFingerprintV2_3TargetTest.cpp | 19 +++++-- 2 files changed, 54 insertions(+), 22 deletions(-) diff --git a/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal b/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal index 8777c28e3a..13f03c5eea 100644 --- a/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal +++ b/biometrics/fingerprint/2.3/IBiometricsFingerprint.hal @@ -22,22 +22,45 @@ import @2.2::IBiometricsFingerprint; * 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 722621379d..72420162f0 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 #include #include @@ -41,14 +43,21 @@ class FingerprintHidlTest : public ::testing::TestWithParam { sp 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