Loading core/java/android/hardware/fingerprint/FingerprintManager.java +49 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,8 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing private static final int MSG_REMOVED = 105; private static final int MSG_CHALLENGE_GENERATED = 106; private static final int MSG_FINGERPRINT_DETECTED = 107; private static final int MSG_UDFPS_POINTER_DOWN = 108; private static final int MSG_UDFPS_POINTER_UP = 109; /** * Request authentication with any single sensor. Loading Loading @@ -338,6 +340,20 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing */ @Override public void onAuthenticationAcquired(int acquireInfo) {} /** * Invoked for under-display fingerprint sensors when a touch has been detected on the * sensor area. * @hide */ public void onUdfpsPointerDown(int sensorId) {} /** * Invoked for under-display fingerprint sensors when a touch has been removed from the * sensor area. * @hide */ public void onUdfpsPointerUp(int sensorId) {} } /** Loading Loading @@ -1005,6 +1021,12 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing sendFingerprintDetected(msg.arg1 /* sensorId */, msg.arg2 /* userId */, (boolean) msg.obj /* isStrongBiometric */); break; case MSG_UDFPS_POINTER_DOWN: sendUdfpsPointerDown(msg.arg1 /* sensorId */); break; case MSG_UDFPS_POINTER_UP: sendUdfpsPointerUp(msg.arg1 /* sensorId */); break; default: Slog.w(TAG, "Unknown message: " + msg.what); Loading Loading @@ -1103,6 +1125,22 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing mFingerprintDetectionCallback.onFingerprintDetected(sensorId, userId, isStrongBiometric); } private void sendUdfpsPointerDown(int sensorId) { if (mAuthenticationCallback == null) { Slog.e(TAG, "sendUdfpsPointerDown, callback null"); return; } mAuthenticationCallback.onUdfpsPointerDown(sensorId); } private void sendUdfpsPointerUp(int sensorId) { if (mAuthenticationCallback == null) { Slog.e(TAG, "sendUdfpsPointerUp, callback null"); return; } mAuthenticationCallback.onUdfpsPointerUp(sensorId); } /** * @hide */ Loading Loading @@ -1280,6 +1318,17 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing mHandler.obtainMessage(MSG_CHALLENGE_GENERATED, sensorId, 0, challenge) .sendToTarget(); } @Override // binder call public void onUdfpsPointerDown(int sensorId) { mHandler.obtainMessage(MSG_UDFPS_POINTER_DOWN, sensorId, 0).sendToTarget(); } @Override // binder call public void onUdfpsPointerUp(int sensorId) { mHandler.obtainMessage(MSG_UDFPS_POINTER_UP, sensorId, 0).sendToTarget(); } }; } core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -30,4 +30,6 @@ oneway interface IFingerprintServiceReceiver { void onError(int error, int vendorCode); void onRemoved(in Fingerprint fp, int remaining); void onChallengeGenerated(int sensorId, long challenge); void onUdfpsPointerDown(int sensorId); void onUdfpsPointerUp(int sensorId); } packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +10 −0 Original line number Diff line number Diff line Loading @@ -1314,6 +1314,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab public void onAuthenticationAcquired(int acquireInfo) { handleFingerprintAcquired(acquireInfo); } @Override public void onUdfpsPointerDown(int sensorId) { Log.d(TAG, "onUdfpsPointerDown, sensorId: " + sensorId); } @Override public void onUdfpsPointerUp(int sensorId) { Log.d(TAG, "onUdfpsPointerUp, sensorId: " + sensorId); } }; private final FaceManager.FaceDetectionCallback mFaceDetectionCallback Loading services/core/java/com/android/server/biometrics/sensors/ClientMonitorCallbackConverter.java +14 −0 Original line number Diff line number Diff line Loading @@ -160,4 +160,18 @@ public class ClientMonitorCallbackConverter { mFaceServiceReceiver.onChallengeInterruptFinished(sensorId); } } // Fingerprint-specific callbacks for FingerprintManager only public void onUdfpsPointerDown(int sensorId, int cookie) throws RemoteException { if (mFingerprintServiceReceiver != null) { mFingerprintServiceReceiver.onUdfpsPointerDown(sensorId); } } public void onUdfpsPointerUp(int sensorId, int cookie) throws RemoteException { if (mFingerprintServiceReceiver != null) { mFingerprintServiceReceiver.onUdfpsPointerUp(sensorId); } } } services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java +10 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,16 @@ class BiometricTestSessionImpl extends ITestSession.Stub { public void onChallengeGenerated(int sensorId, long challenge) { } @Override public void onUdfpsPointerDown(int sensorId) { } @Override public void onUdfpsPointerUp(int sensorId) { } }; BiometricTestSessionImpl(@NonNull Context context, int sensorId, Loading Loading
core/java/android/hardware/fingerprint/FingerprintManager.java +49 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,8 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing private static final int MSG_REMOVED = 105; private static final int MSG_CHALLENGE_GENERATED = 106; private static final int MSG_FINGERPRINT_DETECTED = 107; private static final int MSG_UDFPS_POINTER_DOWN = 108; private static final int MSG_UDFPS_POINTER_UP = 109; /** * Request authentication with any single sensor. Loading Loading @@ -338,6 +340,20 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing */ @Override public void onAuthenticationAcquired(int acquireInfo) {} /** * Invoked for under-display fingerprint sensors when a touch has been detected on the * sensor area. * @hide */ public void onUdfpsPointerDown(int sensorId) {} /** * Invoked for under-display fingerprint sensors when a touch has been removed from the * sensor area. * @hide */ public void onUdfpsPointerUp(int sensorId) {} } /** Loading Loading @@ -1005,6 +1021,12 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing sendFingerprintDetected(msg.arg1 /* sensorId */, msg.arg2 /* userId */, (boolean) msg.obj /* isStrongBiometric */); break; case MSG_UDFPS_POINTER_DOWN: sendUdfpsPointerDown(msg.arg1 /* sensorId */); break; case MSG_UDFPS_POINTER_UP: sendUdfpsPointerUp(msg.arg1 /* sensorId */); break; default: Slog.w(TAG, "Unknown message: " + msg.what); Loading Loading @@ -1103,6 +1125,22 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing mFingerprintDetectionCallback.onFingerprintDetected(sensorId, userId, isStrongBiometric); } private void sendUdfpsPointerDown(int sensorId) { if (mAuthenticationCallback == null) { Slog.e(TAG, "sendUdfpsPointerDown, callback null"); return; } mAuthenticationCallback.onUdfpsPointerDown(sensorId); } private void sendUdfpsPointerUp(int sensorId) { if (mAuthenticationCallback == null) { Slog.e(TAG, "sendUdfpsPointerUp, callback null"); return; } mAuthenticationCallback.onUdfpsPointerUp(sensorId); } /** * @hide */ Loading Loading @@ -1280,6 +1318,17 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing mHandler.obtainMessage(MSG_CHALLENGE_GENERATED, sensorId, 0, challenge) .sendToTarget(); } @Override // binder call public void onUdfpsPointerDown(int sensorId) { mHandler.obtainMessage(MSG_UDFPS_POINTER_DOWN, sensorId, 0).sendToTarget(); } @Override // binder call public void onUdfpsPointerUp(int sensorId) { mHandler.obtainMessage(MSG_UDFPS_POINTER_UP, sensorId, 0).sendToTarget(); } }; }
core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -30,4 +30,6 @@ oneway interface IFingerprintServiceReceiver { void onError(int error, int vendorCode); void onRemoved(in Fingerprint fp, int remaining); void onChallengeGenerated(int sensorId, long challenge); void onUdfpsPointerDown(int sensorId); void onUdfpsPointerUp(int sensorId); }
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +10 −0 Original line number Diff line number Diff line Loading @@ -1314,6 +1314,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab public void onAuthenticationAcquired(int acquireInfo) { handleFingerprintAcquired(acquireInfo); } @Override public void onUdfpsPointerDown(int sensorId) { Log.d(TAG, "onUdfpsPointerDown, sensorId: " + sensorId); } @Override public void onUdfpsPointerUp(int sensorId) { Log.d(TAG, "onUdfpsPointerUp, sensorId: " + sensorId); } }; private final FaceManager.FaceDetectionCallback mFaceDetectionCallback Loading
services/core/java/com/android/server/biometrics/sensors/ClientMonitorCallbackConverter.java +14 −0 Original line number Diff line number Diff line Loading @@ -160,4 +160,18 @@ public class ClientMonitorCallbackConverter { mFaceServiceReceiver.onChallengeInterruptFinished(sensorId); } } // Fingerprint-specific callbacks for FingerprintManager only public void onUdfpsPointerDown(int sensorId, int cookie) throws RemoteException { if (mFingerprintServiceReceiver != null) { mFingerprintServiceReceiver.onUdfpsPointerDown(sensorId); } } public void onUdfpsPointerUp(int sensorId, int cookie) throws RemoteException { if (mFingerprintServiceReceiver != null) { mFingerprintServiceReceiver.onUdfpsPointerUp(sensorId); } } }
services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java +10 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,16 @@ class BiometricTestSessionImpl extends ITestSession.Stub { public void onChallengeGenerated(int sensorId, long challenge) { } @Override public void onUdfpsPointerDown(int sensorId) { } @Override public void onUdfpsPointerUp(int sensorId) { } }; BiometricTestSessionImpl(@NonNull Context context, int sensorId, Loading