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

Commit c12eca8b authored by Jim Miller's avatar Jim Miller
Browse files

Clean up fingerprint enrollment API

The enrollment API was using userId and groupId interchangeably.
This cleanes up the interface to consistently use userId.

Partial fix for bug 28268635

Change-Id: I678e4b17a25f82c5cf17db49cd23f862be11667b
parent 74610328
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -51,7 +51,8 @@ public abstract class EnrollClient extends ClientMonitor {
                    " getGroupId():" + getGroupId());
                    " getGroupId():" + getGroupId());
        }
        }
        if (remaining == 0) {
        if (remaining == 0) {
            FingerprintUtils.getInstance().addFingerprintForUser(getContext(), fingerId, groupId);
            FingerprintUtils.getInstance().addFingerprintForUser(getContext(), fingerId,
                    getTargetUserId());
        }
        }
        return sendEnrollResult(fingerId, groupId, remaining);
        return sendEnrollResult(fingerId, groupId, remaining);
    }
    }
+10 −9
Original line number Original line Diff line number Diff line
@@ -540,13 +540,15 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
        startClient(client, true /* initiatedByClient */);
        startClient(client, true /* initiatedByClient */);
    }
    }


    private void startEnrollment(IBinder token, byte [] cryptoToken, int callingUserId, int groupId,
    private void startEnrollment(IBinder token, byte [] cryptoToken, int userId,
            IFingerprintServiceReceiver receiver, int flags, boolean restricted,
            IFingerprintServiceReceiver receiver, int flags, boolean restricted,
            String opPackageName) {
            String opPackageName) {
        updateActiveGroup(groupId, opPackageName);
        updateActiveGroup(userId, opPackageName);

        final int groupId = userId; // default group for fingerprint enrollment


        EnrollClient client = new EnrollClient(getContext(), mHalDeviceId, token, receiver,
        EnrollClient client = new EnrollClient(getContext(), mHalDeviceId, token, receiver,
                callingUserId, groupId, cryptoToken, restricted, opPackageName) {
                userId, groupId, cryptoToken, restricted, opPackageName) {


            @Override
            @Override
            public IFingerprintDaemon getFingerprintDaemon() {
            public IFingerprintDaemon getFingerprintDaemon() {
@@ -680,15 +682,14 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
        }
        }


        @Override // Binder call
        @Override // Binder call
        public void enroll(final IBinder token, final byte[] cryptoToken, final int groupId,
        public void enroll(final IBinder token, final byte[] cryptoToken, final int userId,
                final IFingerprintServiceReceiver receiver, final int flags,
                final IFingerprintServiceReceiver receiver, final int flags,
                final String opPackageName) {
                final String opPackageName) {
            checkPermission(MANAGE_FINGERPRINT);
            checkPermission(MANAGE_FINGERPRINT);
            final int limit =  mContext.getResources().getInteger(
            final int limit =  mContext.getResources().getInteger(
                    com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
                    com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
            final int callingUserId = UserHandle.getCallingUserId();

            final int enrolled = FingerprintService.this.
            final int enrolled = FingerprintService.this.getEnrolledFingerprints(userId).size();
                    getEnrolledFingerprints(callingUserId).size();
            if (enrolled >= limit) {
            if (enrolled >= limit) {
                Slog.w(TAG, "Too many fingerprints registered");
                Slog.w(TAG, "Too many fingerprints registered");
                return;
                return;
@@ -696,7 +697,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe


            // Group ID is arbitrarily set to parent profile user ID. It just represents
            // Group ID is arbitrarily set to parent profile user ID. It just represents
            // the default fingerprints for the user.
            // the default fingerprints for the user.
            if (!isCurrentUserOrProfile(groupId)) {
            if (!isCurrentUserOrProfile(userId)) {
                return;
                return;
            }
            }


@@ -704,7 +705,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
            mHandler.post(new Runnable() {
            mHandler.post(new Runnable() {
                @Override
                @Override
                public void run() {
                public void run() {
                    startEnrollment(token, cryptoToken, callingUserId, groupId, receiver, flags,
                    startEnrollment(token, cryptoToken, userId, receiver, flags,
                            restricted, opPackageName);
                            restricted, opPackageName);
                }
                }
            });
            });