summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheScarastic <warabhishek@gmail.com>2021-10-06 06:53:09 +0000
committeralk3pInjection <webmaster@raspii.tech>2022-01-22 11:36:30 +0800
commit5ec746b2fa40ac2a2e2c7c53ab9b5825602b926c (patch)
tree2e0676f7f3d6ec78862937c90bc1d01027353e91
parentda51264a5523f8bca884defeeb8dabbf8a4ec50a (diff)
udfps: Add support for udfps on aod without having dedicated sensor
Change-Id: I4aa39efe3714bcc40ab3da862809ca9c8974c6bd
-rw-r--r--core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl3
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java13
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintAuthenticationClient.java9
3 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl b/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl
index f18360ff4108..f9d037648813 100644
--- a/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl
+++ b/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl
@@ -47,4 +47,7 @@ oneway interface IUdfpsOverlayController {
// Shows debug messages on the UDFPS overlay.
void setDebugMessage(int sensorId, String message);
+
+ // Useful for Legacy devices not having dedicated aod sensor
+ void onAcquired(int sensorId, int acquiredInfo, int vendorCode);
}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
index 30fca84472d8..acaf81eb13d4 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
@@ -310,6 +310,19 @@ public class UdfpsController implements DozeReceiver, UdfpsHbmProvider {
mView.setDebugMessage(message);
});
}
+
+ @Override
+ public void onAcquired(int sensorId, int acquiredInfo, int vendorCode) {
+ mFgExecutor.execute(() -> {
+ if (acquiredInfo == 6 && (mStatusBarStateController.isDozing() || !mScreenOn)) {
+ if (vendorCode == 22) { // Use overlay to determine pressed vendor code?
+ mPowerManager.wakeUp(mSystemClock.uptimeMillis(),
+ PowerManager.WAKE_REASON_GESTURE, TAG);
+ onAodInterrupt(0, 0, 0, 0); // To-Do pass proper values
+ }
+ }
+ });
+ }
}
private static float computePointerSpeed(@NonNull VelocityTracker tracker, int pointerId) {
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintAuthenticationClient.java
index 7d95ec098fee..87c2910c396c 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintAuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintAuthenticationClient.java
@@ -100,6 +100,15 @@ class FingerprintAuthenticationClient extends AuthenticationClient<IBiometricsFi
}
@Override
+ public void onAcquired(int acquiredInfo, int vendorCode) {
+ super.onAcquired(acquiredInfo, vendorCode);
+ try {
+ mUdfpsOverlayController.onAcquired(getSensorId(), acquiredInfo, vendorCode);
+ } catch (Exception e) {
+ }
+ }
+
+ @Override
public void onAuthenticated(BiometricAuthenticator.Identifier identifier,
boolean authenticated, ArrayList<Byte> token) {
super.onAuthenticated(identifier, authenticated, token);