Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 053dee79 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "More fingerprint API's for 3rd party apps"

parents 7a18d082 2aad7ee2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -13771,6 +13771,8 @@ package android.hardware.fingerprint {
  public class FingerprintManager {
    method public void authenticate(android.hardware.fingerprint.FingerprintManager.CryptoObject, android.os.CancellationSignal, android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, int);
    method public boolean hasEnrolledFingerprints();
    method public boolean isHardwareDetected();
    field public static final int FINGERPRINT_ACQUIRED_GOOD = 0; // 0x0
    field public static final int FINGERPRINT_ACQUIRED_IMAGER_DIRTY = 3; // 0x3
    field public static final int FINGERPRINT_ACQUIRED_INSUFFICIENT = 2; // 0x2
+2 −0
Original line number Diff line number Diff line
@@ -14067,6 +14067,8 @@ package android.hardware.fingerprint {
  public class FingerprintManager {
    method public void authenticate(android.hardware.fingerprint.FingerprintManager.CryptoObject, android.os.CancellationSignal, android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, int);
    method public boolean hasEnrolledFingerprints();
    method public boolean isHardwareDetected();
    field public static final int FINGERPRINT_ACQUIRED_GOOD = 0; // 0x0
    field public static final int FINGERPRINT_ACQUIRED_IMAGER_DIRTY = 3; // 0x3
    field public static final int FINGERPRINT_ACQUIRED_INSUFFICIENT = 2; // 0x2
+27 −4
Original line number Diff line number Diff line
@@ -535,9 +535,9 @@ public class FingerprintManager {
     *
     * @hide
     */
    public List<Fingerprint> getEnrolledFingerprints() {
    public List<Fingerprint> getEnrolledFingerprints(int userId) {
        if (mService != null) try {
            return mService.getEnrolledFingerprints(getCurrentUserId());
            return mService.getEnrolledFingerprints(userId);
        } catch (RemoteException e) {
            Log.v(TAG, "Remote exception in getEnrolledFingerprints: ", e);
        }
@@ -545,11 +545,34 @@ public class FingerprintManager {
    }

    /**
     * Determine if fingerprint hardware is present and functional.
     * @return true if hardware is present and functional, false otherwise.
     * Obtain the list of enrolled fingerprints templates.
     * @return list of current fingerprint items
     *
     * @hide
     */
    public List<Fingerprint> getEnrolledFingerprints() {
        return getEnrolledFingerprints(UserHandle.myUserId());
    }

    /**
     * Determine if there is at least one fingerprint enrolled.
     *
     * @return true if at least one fingerprint is enrolled, false otherwise
     */
    public boolean hasEnrolledFingerprints() {
        if (mService != null) try {
            return mService.hasEnrolledFingerprints(UserHandle.myUserId());
        } catch (RemoteException e) {
            Log.v(TAG, "Remote exception in getEnrolledFingerprints: ", e);
        }
        return false;
    }

    /**
     * Determine if fingerprint hardware is present and functional.
     *
     * @return true if hardware is present and functional, false otherwise.
     */
    public boolean isHardwareDetected() {
        if (mService != null) {
            try {
+3 −0
Original line number Diff line number Diff line
@@ -54,6 +54,9 @@ interface IFingerprintService {
    // Get a pre-enrollment authentication token
    long preEnroll(IBinder token);

    // Determine if a user has at least one enrolled fingerprint
    boolean hasEnrolledFingerprints(int groupId);

    // Gets the number of hardware devices
    // int getHardwareDeviceCount();

+3 −10
Original line number Diff line number Diff line
@@ -783,21 +783,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {

    private void startListeningForFingerprint() {
        if (DEBUG) Log.v(TAG, "startListeningForFingerprint()");
        final int userId;
        try {
            userId = ActivityManagerNative.getDefault().getCurrentUser().id;
        } catch (RemoteException e) {
            Log.e(TAG, "Failed to get current user id: ", e);
            return;
        }
        int userId = ActivityManager.getCurrentUser();
        if (mFpm != null && mFpm.isHardwareDetected() && !isFingerprintDisabled(userId)
                && mFpm.getEnrolledFingerprints().size() > 0) {
                && mFpm.getEnrolledFingerprints(userId).size() > 0) {
            if (mFingerprintCancelSignal != null) {
                mFingerprintCancelSignal.cancel();
            }
            mFingerprintCancelSignal = new CancellationSignal();
            mFpm.authenticate(null, mFingerprintCancelSignal, mAuthenticationCallback, 0,
                    ActivityManager.getCurrentUser());
            mFpm.authenticate(null, mFingerprintCancelSignal, mAuthenticationCallback, 0, userId);
            setFingerprintRunningDetectionRunning(true);
        }
    }
Loading