diff options
-rw-r--r-- | biometrics/face/aidl/default/Face.cpp | 2 | ||||
-rw-r--r-- | biometrics/face/aidl/default/Session.cpp | 44 |
2 files changed, 42 insertions, 4 deletions
diff --git a/biometrics/face/aidl/default/Face.cpp b/biometrics/face/aidl/default/Face.cpp index 929c7e7703..d3883d64c9 100644 --- a/biometrics/face/aidl/default/Face.cpp +++ b/biometrics/face/aidl/default/Face.cpp @@ -20,7 +20,7 @@ namespace aidl::android::hardware::biometrics::face { const int kSensorId = 0; -const common::SensorStrength kSensorStrength = common::SensorStrength::WEAK; +const common::SensorStrength kSensorStrength = common::SensorStrength::STRONG; const int kMaxEnrollmentsPerUser = 5; const FaceSensorType kSensorType = FaceSensorType::RGB; const bool kHalControlsPreview = true; diff --git a/biometrics/face/aidl/default/Session.cpp b/biometrics/face/aidl/default/Session.cpp index 2b1d4a7637..c5d7d23ecb 100644 --- a/biometrics/face/aidl/default/Session.cpp +++ b/biometrics/face/aidl/default/Session.cpp @@ -21,17 +21,35 @@ namespace aidl::android::hardware::biometrics::face { class CancellationSignal : public common::BnCancellationSignal { + private: + std::shared_ptr<ISessionCallback> cb_; public: - ndk::ScopedAStatus cancel() override { return ndk::ScopedAStatus::ok(); } + explicit CancellationSignal(std::shared_ptr<ISessionCallback> cb) : cb_(std::move(cb)) {} + + ndk::ScopedAStatus cancel() override { + cb_->onError(Error::CANCELED, 0 /* vendorCode */); + cb_->onStateChanged(0, SessionState::IDLING); + return ndk::ScopedAStatus::ok(); + } }; Session::Session(std::shared_ptr<ISessionCallback> cb) : cb_(std::move(cb)) {} ndk::ScopedAStatus Session::generateChallenge(int32_t /*cookie*/, int32_t /*timeoutSec*/) { + if (cb_) { + cb_->onStateChanged(0, SessionState::GENERATING_CHALLENGE); + cb_->onChallengeGenerated(0); + cb_->onStateChanged(0, SessionState::IDLING); + } return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus Session::revokeChallenge(int32_t /*cookie*/, int64_t /*challenge*/) { +ndk::ScopedAStatus Session::revokeChallenge(int32_t /*cookie*/, int64_t challenge) { + if (cb_) { + cb_->onStateChanged(0, SessionState::REVOKING_CHALLENGE); + cb_->onChallengeRevoked(challenge); + cb_->onStateChanged(0, SessionState::IDLING); + } return ndk::ScopedAStatus::ok(); } @@ -47,7 +65,7 @@ ndk::ScopedAStatus Session::authenticate(int32_t /*cookie*/, int64_t /*keystoreO if (cb_) { cb_->onStateChanged(0, SessionState::AUTHENTICATING); } - *return_val = SharedRefBase::make<CancellationSignal>(); + *return_val = SharedRefBase::make<CancellationSignal>(cb_); return ndk::ScopedAStatus::ok(); } @@ -57,15 +75,30 @@ ndk::ScopedAStatus Session::detectInteraction( } ndk::ScopedAStatus Session::enumerateEnrollments(int32_t /*cookie*/) { + if (cb_) { + cb_->onStateChanged(0, SessionState::ENUMERATING_ENROLLMENTS); + cb_->onEnrollmentsEnumerated(std::vector<int32_t>()); + cb_->onStateChanged(0, SessionState::IDLING); + } return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus Session::removeEnrollments(int32_t /*cookie*/, const std::vector<int32_t>& /*enrollmentIds*/) { + if (cb_) { + cb_->onStateChanged(0, SessionState::REMOVING_ENROLLMENTS); + cb_->onEnrollmentsRemoved(std::vector<int32_t>()); + cb_->onStateChanged(0, SessionState::IDLING); + } return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus Session::getAuthenticatorId(int32_t /*cookie*/) { + if (cb_) { + cb_->onStateChanged(0, SessionState::GETTING_AUTHENTICATOR_ID); + cb_->onAuthenticatorIdRetrieved(0 /* authenticatorId */); + cb_->onStateChanged(0, SessionState::IDLING); + } return ndk::ScopedAStatus::ok(); } @@ -75,6 +108,11 @@ ndk::ScopedAStatus Session::invalidateAuthenticatorId(int32_t /*cookie*/) { ndk::ScopedAStatus Session::resetLockout(int32_t /*cookie*/, const keymaster::HardwareAuthToken& /*hat*/) { + if (cb_) { + cb_->onStateChanged(0, SessionState::RESETTING_LOCKOUT); + cb_->onLockoutCleared(); + cb_->onStateChanged(0, SessionState::IDLING); + } return ndk::ScopedAStatus::ok(); } } // namespace aidl::android::hardware::biometrics::face |