Support multiple displays in fingerprint VHAL
Bug: 348076336
Test: atest android.hardware.biometrics.fingerprint.* -c
Test: atest BiometricsE2eTests:BiometricPromptAuthSuccessTest
Change-Id: Ia0e26e41b951cf00d8d098983a05f3916b12af5c
diff --git a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/virtualhal/IVirtualHal.aidl b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/virtualhal/IVirtualHal.aidl
index 5af84ed..d9a60a5 100644
--- a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/virtualhal/IVirtualHal.aidl
+++ b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/virtualhal/IVirtualHal.aidl
@@ -311,7 +311,7 @@
void setSensorStrength(in SensorStrength strength);
void setMaxEnrollmentPerUser(in int max);
void setSensorLocation(in SensorLocation loc);
- void setNavigationGuesture(in boolean v);
+ void setNavigationGesture(in boolean v);
void setDetectInteraction(in boolean v);
void setDisplayTouch(in boolean v);
void setControlIllumination(in boolean v);
diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp
index 7a43d7b..175e310 100644
--- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp
+++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp
@@ -414,41 +414,60 @@
return ndk::ScopedAStatus::ok();
}
-bool FakeFingerprintEngine::getSensorLocationConfig(SensorLocation& out) {
- auto loc = Fingerprint::cfg().get<std::string>("sensor_location");
+bool FakeFingerprintEngine::getSensorLocationConfig(std::vector<SensorLocation>& out) {
+ auto locStr = Fingerprint::cfg().get<std::string>("sensor_location");
auto isValidStr = false;
- auto dim = Util::split(loc, ":");
- if (dim.size() < 3 or dim.size() > 4) {
- if (!loc.empty()) LOG(WARNING) << "Invalid sensor location input (x:y:radius):" + loc;
- return false;
- } else {
- int32_t x, y, r;
- std::string d = "";
- if (dim.size() >= 3) {
- isValidStr = ParseInt(dim[0], &x) && ParseInt(dim[1], &y) && ParseInt(dim[2], &r);
+ // sensor_location format: x:y:r:d,x:y:r:d,...
+ // x: x location in pixel, y: y location in pixel, r: radus in pixel, d:display in string
+ auto locations = Util::split(locStr, ",");
+ for (int i = 0; i < locations.size(); i++) {
+ auto loc = locations[i];
+
+ // expect loc in the format: x:y:r or x:y:d:r
+ auto dim = Util::split(loc, ":");
+
+ if (dim.size() < 3) {
+ if (!loc.empty()) LOG(WARNING) << "Invalid sensor location input (x:y:radius):" + loc;
+ out.clear();
+ return false;
+ } else {
+ int32_t x, y, r;
+ std::string d = "";
+ if (dim.size() >= 3) {
+ isValidStr = ParseInt(dim[0], &x) && ParseInt(dim[1], &y) && ParseInt(dim[2], &r);
+ }
+ if (dim.size() >= 4) {
+ for (int i = 3; i < dim.size(); i++) {
+ if (i > 3) d += ':';
+ d += dim[i];
+ }
+ }
+ if (isValidStr) {
+ out.push_back(SensorLocation{.sensorLocationX = x,
+ .sensorLocationY = y,
+ .sensorRadius = r,
+ .display = d});
+ }
}
- if (dim.size() >= 4) {
- d = dim[3];
+ }
+
+ LOG(INFO) << "getSensorLocationConfig: isValidStr=" << isValidStr << " locStr=" << locStr;
+ if (isValidStr) {
+ for (auto loc : out) {
+ LOG(INFO) << loc.toString();
}
- if (isValidStr)
- out = {.sensorLocationX = x, .sensorLocationY = y, .sensorRadius = r, .display = d};
-
- return isValidStr;
- }
-}
-SensorLocation FakeFingerprintEngine::getSensorLocation() {
- SensorLocation location;
-
- if (getSensorLocationConfig(location)) {
- return location;
} else {
- return defaultSensorLocation();
+ out.clear();
}
+
+ return isValidStr;
}
-SensorLocation FakeFingerprintEngine::defaultSensorLocation() {
- return SensorLocation();
+void FakeFingerprintEngine::getSensorLocation(std::vector<SensorLocation>& location) {
+ if (!getSensorLocationConfig(location)) {
+ getDefaultSensorLocation(location);
+ }
}
std::pair<AcquiredInfo, int32_t> FakeFingerprintEngine::convertAcquiredInfo(int32_t code) {
diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineSide.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineSide.cpp
index acb792d..e823d75 100644
--- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineSide.cpp
+++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineSide.cpp
@@ -26,12 +26,17 @@
using namespace ::android::fingerprint::virt;
namespace aidl::android::hardware::biometrics::fingerprint {
+SensorLocation FakeFingerprintEngineSide::defaultLocation[] = {
+ // default to CF display
+ {.sensorLocationX = 0, 200, 90, "local:4619827353912518656"}};
FakeFingerprintEngineSide::FakeFingerprintEngineSide() : FakeFingerprintEngine() {}
-SensorLocation FakeFingerprintEngineSide::defaultSensorLocation() {
- return SensorLocation{.sensorLocationX = defaultSensorLocationX,
- .sensorLocationY = defaultSensorLocationY,
- .sensorRadius = defaultSensorRadius};
+void FakeFingerprintEngineSide::getDefaultSensorLocation(
+ std::vector<SensorLocation>& sensorLocation) {
+ for (int i = 0; i < (sizeof(defaultLocation) / sizeof(defaultLocation[0])); i++) {
+ sensorLocation.push_back(defaultLocation[i]);
+ }
}
+
} // namespace aidl::android::hardware::biometrics::fingerprint
diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp
index 496b5e3..f2d5687 100644
--- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp
+++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp
@@ -34,10 +34,14 @@
FakeFingerprintEngineUdfps::FakeFingerprintEngineUdfps()
: FakeFingerprintEngine(), mPointerDownTime(0), mUiReadyTime(0) {}
-SensorLocation FakeFingerprintEngineUdfps::defaultSensorLocation() {
- return SensorLocation{.sensorLocationX = defaultSensorLocationX,
- .sensorLocationY = defaultSensorLocationY,
- .sensorRadius = defaultSensorRadius};
+void FakeFingerprintEngineUdfps::getDefaultSensorLocation(
+ std::vector<SensorLocation>& sensorLocation) {
+ sensorLocation.clear();
+ sensorLocation.push_back(SensorLocation{
+ .sensorLocationX = defaultSensorLocationX,
+ .sensorLocationY = defaultSensorLocationY,
+ .sensorRadius = defaultSensorRadius,
+ });
}
ndk::ScopedAStatus FakeFingerprintEngineUdfps::onPointerDownImpl(int32_t /*pointerId*/,
diff --git a/biometrics/fingerprint/aidl/default/Fingerprint.cpp b/biometrics/fingerprint/aidl/default/Fingerprint.cpp
index 143e231..6d39e12 100644
--- a/biometrics/fingerprint/aidl/default/Fingerprint.cpp
+++ b/biometrics/fingerprint/aidl/default/Fingerprint.cpp
@@ -74,7 +74,7 @@
auto sensorId = Fingerprint::cfg().get<std::int32_t>("sensor_id");
auto sensorStrength = Fingerprint::cfg().get<std::int32_t>("sensor_strength");
auto maxEnrollments = Fingerprint::cfg().get<std::int32_t>("max_enrollments");
- auto navigationGuesture = Fingerprint::cfg().get<bool>("navigation_guesture");
+ auto navigationGesture = Fingerprint::cfg().get<bool>("navigation_gesture");
auto detectInteraction = Fingerprint::cfg().get<bool>("detect_interaction");
auto displayTouch = Fingerprint::cfg().get<bool>("display_touch");
auto controlIllumination = Fingerprint::cfg().get<bool>("control_illumination");
@@ -82,19 +82,15 @@
common::CommonProps commonProps = {sensorId, (common::SensorStrength)sensorStrength,
maxEnrollments, componentInfo};
- SensorLocation sensorLocation = mEngine->getSensorLocation();
+ std::vector<SensorLocation> sensorLocation;
+ mEngine->getSensorLocation(sensorLocation);
+ LOG(INFO) << "sensor type:" << ::android::internal::ToString(mSensorType);
+ for (auto location : sensorLocation) {
+ LOG(INFO) << "sensor location: " << location.toString();
+ }
- LOG(INFO) << "sensor type:" << ::android::internal::ToString(mSensorType)
- << " location:" << sensorLocation.toString();
-
- *out = {{commonProps,
- mSensorType,
- {sensorLocation},
- navigationGuesture,
- detectInteraction,
- displayTouch,
- controlIllumination,
- std::nullopt}};
+ *out = {{commonProps, mSensorType, sensorLocation, navigationGesture, detectInteraction,
+ displayTouch, controlIllumination, std::nullopt}};
return ndk::ScopedAStatus::ok();
}
@@ -204,7 +200,7 @@
RESET_CONFIG_O(sensor_id);
RESET_CONFIG_O(sensor_strength);
RESET_CONFIG_O(max_enrollments);
- RESET_CONFIG_O(navigation_guesture);
+ RESET_CONFIG_O(navigation_gesture);
RESET_CONFIG_O(detect_interaction);
RESET_CONFIG_O(display_touch);
RESET_CONFIG_O(control_illumination);
diff --git a/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp b/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp
index 82c5403..2a87a55 100644
--- a/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp
+++ b/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp
@@ -56,7 +56,7 @@
CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_duration, OptInt32)
CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_acquired, OptString)
CREATE_GETTER_SETTER_WRAPPER(max_enrollments, OptBool)
-CREATE_GETTER_SETTER_WRAPPER(navigation_guesture, OptBool)
+CREATE_GETTER_SETTER_WRAPPER(navigation_gesture, OptBool)
CREATE_GETTER_SETTER_WRAPPER(detect_interaction, OptBool)
CREATE_GETTER_SETTER_WRAPPER(display_touch, OptBool)
CREATE_GETTER_SETTER_WRAPPER(control_illumination, OptBool)
@@ -90,7 +90,7 @@
{NGS(operation_detect_interaction_duration), &Config::parseInt32, "10"},
{NGS(operation_detect_interaction_acquired), &Config::parseString, "1"},
{NGS(max_enrollments), &Config::parseInt32, "5"},
- {NGS(navigation_guesture), &Config::parseBool, "false"},
+ {NGS(navigation_gesture), &Config::parseBool, "false"},
{NGS(detect_interaction), &Config::parseBool, "false"},
{NGS(display_touch), &Config::parseBool, "true"},
{NGS(control_illumination), &Config::parseBool, "false"},
diff --git a/biometrics/fingerprint/aidl/default/VirtualHal.cpp b/biometrics/fingerprint/aidl/default/VirtualHal.cpp
index d161765..7e0d40b 100644
--- a/biometrics/fingerprint/aidl/default/VirtualHal.cpp
+++ b/biometrics/fingerprint/aidl/default/VirtualHal.cpp
@@ -266,9 +266,9 @@
return ndk::ScopedAStatus::ok();
}
-::ndk::ScopedAStatus VirtualHal::setNavigationGuesture(bool in_v) {
+::ndk::ScopedAStatus VirtualHal::setNavigationGesture(bool in_v) {
Fingerprint::cfg().sourcedFromAidl();
- Fingerprint::cfg().set<bool>("navigation_guesture", in_v);
+ Fingerprint::cfg().set<bool>("navigation_gesture", in_v);
return ndk::ScopedAStatus::ok();
}
@@ -338,4 +338,13 @@
*pFp = mFp;
return ndk::ScopedAStatus::ok();
}
+
+binder_status_t VirtualHal::dump(int fd, const char** args, uint32_t nargs) {
+ return mFp->dump(fd, args, nargs);
+}
+
+binder_status_t VirtualHal::handleShellCommand(int in, int out, int err, const char** args,
+ uint32_t numArgs) {
+ return mFp->handleShellCommand(in, out, err, args, numArgs);
+}
} // namespace aidl::android::hardware::biometrics::fingerprint
diff --git a/biometrics/fingerprint/aidl/default/api/android.hardware.biometrics.fingerprint.VirtualProps-current.txt b/biometrics/fingerprint/aidl/default/api/android.hardware.biometrics.fingerprint.VirtualProps-current.txt
index ad6f9e0..0d31768 100644
--- a/biometrics/fingerprint/aidl/default/api/android.hardware.biometrics.fingerprint.VirtualProps-current.txt
+++ b/biometrics/fingerprint/aidl/default/api/android.hardware.biometrics.fingerprint.VirtualProps-current.txt
@@ -75,9 +75,9 @@
prop_name: "persist.vendor.fingerprint.virtual.max_enrollments"
}
prop {
- api_name: "navigation_guesture"
+ api_name: "navigation_gesture"
access: ReadWrite
- prop_name: "persist.vendor.fingerprint.virtual.navigation_guesture"
+ prop_name: "persist.vendor.fingerprint.virtual.navigation_gesture"
}
prop {
api_name: "next_enrollment"
diff --git a/biometrics/fingerprint/aidl/default/fingerprint.sysprop b/biometrics/fingerprint/aidl/default/fingerprint.sysprop
index 1d64c48..7582329 100644
--- a/biometrics/fingerprint/aidl/default/fingerprint.sysprop
+++ b/biometrics/fingerprint/aidl/default/fingerprint.sysprop
@@ -149,7 +149,8 @@
}
# sensor location
-# <x>:<y>:<radius> in pixel
+# <display1>[,display2] ...
+# display format: <x>:<y>:<radius>[:displayString]
prop {
prop_name: "persist.vendor.fingerprint.virtual.sensor_location"
type: String
@@ -218,13 +219,13 @@
api_name: "max_enrollments"
}
-# whether support navigation guestures (default: false)
+# whether support navigation gestures (default: false)
prop {
- prop_name: "persist.vendor.fingerprint.virtual.navigation_guesture"
+ prop_name: "persist.vendor.fingerprint.virtual.navigation_gesture"
type: Boolean
scope: Public
access: ReadWrite
- api_name: "navigation_guesture"
+ api_name: "navigation_gesture"
}
# whether support detect interaction (default: false)
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h
index 362d0df..bb8fd40 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h
@@ -53,7 +53,7 @@
void getAuthenticatorIdImpl(ISessionCallback* cb);
void invalidateAuthenticatorIdImpl(ISessionCallback* cb);
void resetLockoutImpl(ISessionCallback* cb, const keymaster::HardwareAuthToken& /*hat*/);
- bool getSensorLocationConfig(SensorLocation& out);
+ bool getSensorLocationConfig(std::vector<SensorLocation>& out);
virtual ndk::ScopedAStatus onPointerDownImpl(int32_t pointerId, int32_t x, int32_t y,
float minor, float major);
@@ -62,9 +62,9 @@
virtual ndk::ScopedAStatus onUiReadyImpl();
- virtual SensorLocation getSensorLocation();
+ virtual void getSensorLocation(std::vector<SensorLocation>& loc);
- virtual SensorLocation defaultSensorLocation();
+ virtual void getDefaultSensorLocation(std::vector<SensorLocation>&) {}
virtual void fingerDownAction();
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h
index 14d5399..12091ee 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineRear.h
@@ -23,6 +23,8 @@
// A fake engine that is backed by system properties instead of hardware.
class FakeFingerprintEngineRear : public FakeFingerprintEngine {
+ static SensorLocation defaultSensorLocation[];
+
public:
FakeFingerprintEngineRear() : FakeFingerprintEngine() {}
~FakeFingerprintEngineRear() {}
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h
index 67a3ebc..aa09327 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineSide.h
@@ -24,14 +24,12 @@
// A fake engine that is backed by system properties instead of hardware.
class FakeFingerprintEngineSide : public FakeFingerprintEngine {
public:
- static constexpr int32_t defaultSensorLocationX = 0;
- static constexpr int32_t defaultSensorLocationY = 600;
- static constexpr int32_t defaultSensorRadius = 150;
+ static SensorLocation defaultLocation[];
+
+ void getDefaultSensorLocation(std::vector<SensorLocation>& sensorLocation) override;
FakeFingerprintEngineSide();
~FakeFingerprintEngineSide() {}
-
- virtual SensorLocation defaultSensorLocation() override;
};
} // namespace aidl::android::hardware::biometrics::fingerprint
diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h
index 2270eca..75f1971 100644
--- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h
+++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngineUdfps.h
@@ -40,7 +40,7 @@
ndk::ScopedAStatus onUiReadyImpl() override;
- SensorLocation defaultSensorLocation() override;
+ void getDefaultSensorLocation(std::vector<SensorLocation>& sensorLocation) override;
void updateContext(WorkMode mode, ISessionCallback* cb, std::future<void>& cancel,
int64_t operationId, const keymaster::HardwareAuthToken& hat);
diff --git a/biometrics/fingerprint/aidl/default/include/VirtualHal.h b/biometrics/fingerprint/aidl/default/include/VirtualHal.h
index 5488383..dd77888 100644
--- a/biometrics/fingerprint/aidl/default/include/VirtualHal.h
+++ b/biometrics/fingerprint/aidl/default/include/VirtualHal.h
@@ -63,13 +63,16 @@
::ndk::ScopedAStatus setSensorLocation(
const ::aidl::android::hardware::biometrics::fingerprint::SensorLocation& in_loc)
override;
- ::ndk::ScopedAStatus setNavigationGuesture(bool in_v) override;
+ ::ndk::ScopedAStatus setNavigationGesture(bool in_v) override;
::ndk::ScopedAStatus setDetectInteraction(bool in_v) override;
::ndk::ScopedAStatus setDisplayTouch(bool in_v) override;
::ndk::ScopedAStatus setControlIllumination(bool in_v) override;
::ndk::ScopedAStatus getFingerprintHal(
std::shared_ptr<::aidl::android::hardware::biometrics::fingerprint::IFingerprint>*
_aidl_return);
+ binder_status_t dump(int fd, const char** args, uint32_t nargs);
+ binder_status_t handleShellCommand(int in, int out, int err, const char** args,
+ uint32_t numArgs);
private:
OptIntVec intVec2OptIntVec(const std::vector<int32_t>& intVec);
diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp
index eb45f98..ea0824d 100644
--- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp
+++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp
@@ -112,30 +112,52 @@
sc.sensorRadius == FakeFingerprintEngineUdfps::defaultSensorRadius && sc.display == "");
}
-TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationOk) {
+TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationOkSimple) {
auto loc = "100:200:30";
Fingerprint::cfg().set<std::string>("sensor_location", loc);
- SensorLocation sc = mEngine.getSensorLocation();
- ASSERT_TRUE(sc.sensorLocationX == 100);
- ASSERT_TRUE(sc.sensorLocationY == 200);
- ASSERT_TRUE(sc.sensorRadius == 30);
+ std::vector<SensorLocation> sc;
+ mEngine.getSensorLocation(sc);
+ ASSERT_TRUE(sc[0].sensorLocationX == 100);
+ ASSERT_TRUE(sc[0].sensorLocationY == 200);
+ ASSERT_TRUE(sc[0].sensorRadius == 30);
+}
- loc = "100:200:30:screen1";
+TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationOkWithOneDisplay) {
+ auto loc = "100:200:30:screen1";
Fingerprint::cfg().set<std::string>("sensor_location", loc);
- sc = mEngine.getSensorLocation();
- ASSERT_TRUE(sc.sensorLocationX == 100);
- ASSERT_TRUE(sc.sensorLocationY == 200);
- ASSERT_TRUE(sc.sensorRadius == 30);
- ASSERT_TRUE(sc.display == "screen1");
+ std::vector<SensorLocation> sc;
+ mEngine.getSensorLocation(sc);
+ ASSERT_TRUE(sc[0].sensorLocationX == 100);
+ ASSERT_TRUE(sc[0].sensorLocationY == 200);
+ ASSERT_TRUE(sc[0].sensorRadius == 30);
+ ASSERT_TRUE(sc[0].display == "screen1");
+}
+
+TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationOkWithMultipleDisplays) {
+ auto loc = "100:200:30:screen1,200:400:60:screen2";
+ Fingerprint::cfg().set<std::string>("sensor_location", loc);
+ std::vector<SensorLocation> sc;
+ mEngine.getSensorLocation(sc);
+ ASSERT_TRUE(sc.size() == 2);
+ ASSERT_TRUE(sc[0].sensorLocationX == 100);
+ ASSERT_TRUE(sc[0].sensorLocationY == 200);
+ ASSERT_TRUE(sc[0].sensorRadius == 30);
+ ASSERT_TRUE(sc[0].display == "screen1");
+ ASSERT_TRUE(sc[1].sensorLocationX == 200);
+ ASSERT_TRUE(sc[1].sensorLocationY == 400);
+ ASSERT_TRUE(sc[1].sensorRadius == 60);
+ ASSERT_TRUE(sc[1].display == "screen2");
}
TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationBad) {
- const std::vector<std::string> badStr{"", "100", "10:20", "10,20,5", "a:b:c"};
- SensorLocation sc;
+ const std::vector<std::string> badStr{
+ "", "100", "10:20", "10,20,5", "a:b:c", "10:20:30:d1,40", "10:20:30:d1,40:50"};
+ std::vector<SensorLocation> sc;
for (const auto& s : badStr) {
Fingerprint::cfg().set<std::string>("sensor_location", s);
- sc = mEngine.getSensorLocation();
- ASSERT_TRUE(isDefaultLocation(sc));
+ sc.clear();
+ mEngine.getSensorLocation(sc);
+ ASSERT_TRUE(isDefaultLocation(sc[0]));
}
}
diff --git a/biometrics/fingerprint/aidl/default/tests/VirtualHalTest.cpp b/biometrics/fingerprint/aidl/default/tests/VirtualHalTest.cpp
index 25abffe..dd6534c 100644
--- a/biometrics/fingerprint/aidl/default/tests/VirtualHalTest.cpp
+++ b/biometrics/fingerprint/aidl/default/tests/VirtualHalTest.cpp
@@ -242,7 +242,7 @@
mVhal->setLockoutEnable(false);
mVhal->setSensorId(5);
mVhal->setMaxEnrollmentPerUser(6);
- mVhal->setNavigationGuesture(false);
+ mVhal->setNavigationGesture(false);
mVhal->setDetectInteraction(false);
mVhal->setDisplayTouch(false);
mVhal->setControlIllumination(false);