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

Commit 5bbcb644 authored by Kevin Chyn's avatar Kevin Chyn Committed by Android (Google) Code Review
Browse files

Merge "Move Fingerprint HIDL-side functionality into subpackage"

parents f9438b04 f15229d4
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.PerformanceTracker;
import com.android.server.biometrics.sensors.RemovalConsumer;
import com.android.server.biometrics.sensors.fingerprint.FingerprintUpdateActiveUserClient;

import org.json.JSONArray;
import org.json.JSONException;
@@ -404,7 +403,7 @@ class Face10 implements IHwBinder.DeathRecipient {
    }

    /**
     * Schedules the {@link FingerprintUpdateActiveUserClient} without posting the work onto the
     * Schedules the {@link FaceUpdateActiveUserClient} without posting the work onto the
     * handler. Many/most APIs are user-specific. However, the HAL requires explicit "setActiveUser"
     * invocation prior to authenticate/enroll/etc. Thus, internally we usually want to schedule
     * this operation on the same lambda/runnable as those operations so that the ordering is
+2 −0
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@ import com.android.server.biometrics.Utils;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.fingerprint.hidl.Fingerprint21;
import com.android.server.biometrics.sensors.fingerprint.hidl.Fingerprint21UdfpsMock;

import java.io.FileDescriptor;
import java.io.PrintWriter;
+31 −27
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.server.biometrics.sensors.fingerprint;
package com.android.server.biometrics.sensors.fingerprint.hidl;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -64,6 +64,8 @@ import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutTracker;
import com.android.server.biometrics.sensors.PerformanceTracker;
import com.android.server.biometrics.sensors.RemovalConsumer;
import com.android.server.biometrics.sensors.fingerprint.FingerprintUtils;
import com.android.server.biometrics.sensors.fingerprint.GestureAvailabilityDispatcher;

import org.json.JSONArray;
import org.json.JSONException;
@@ -81,7 +83,7 @@ import java.util.Map;
 * Supports a single instance of the {@link android.hardware.biometrics.fingerprint.V2_1} or
 * its extended minor versions.
 */
class Fingerprint21 implements IHwBinder.DeathRecipient {
public class Fingerprint21 implements IHwBinder.DeathRecipient {

    private static final String TAG = "Fingerprint21";
    private static final int ENROLL_TIMEOUT_SEC = 60;
@@ -349,7 +351,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
                sensorType, resetLockoutRequiresHardwareAuthToken);
    }

    static Fingerprint21 newInstance(@NonNull Context context, int sensorId, int strength,
    public static Fingerprint21 newInstance(@NonNull Context context, int sensorId, int strength,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull GestureAvailabilityDispatcher gestureAvailabilityDispatcher) {
        final Handler handler = new Handler(Looper.getMainLooper());
@@ -433,7 +435,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
    @Nullable IUdfpsOverlayController getUdfpsOverlayController() {
        return mUdfpsOverlayController;
    }
    @LockoutTracker.LockoutMode int getLockoutModeForUser(int userId) {
    @LockoutTracker.LockoutMode public int getLockoutModeForUser(int userId) {
        return mLockoutTracker.getLockoutModeForUser(userId);
    }

@@ -479,7 +481,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void scheduleResetLockout(int userId) {
    public void scheduleResetLockout(int userId) {
        // Fingerprint2.1 keeps track of lockout in the framework. Let's just do it on the handler
        // thread.
        mHandler.post(() -> {
@@ -487,7 +489,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void scheduleGenerateChallenge(@NonNull IBinder token,
    public void scheduleGenerateChallenge(@NonNull IBinder token,
            @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName) {
        mHandler.post(() -> {
            final FingerprintGenerateChallengeClient client =
@@ -498,7 +500,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void scheduleRevokeChallenge(@NonNull IBinder token, @NonNull String opPackageName) {
    public void scheduleRevokeChallenge(@NonNull IBinder token, @NonNull String opPackageName) {
        mHandler.post(() -> {
            final FingerprintRevokeChallengeClient client = new FingerprintRevokeChallengeClient(
                    mContext, mLazyDaemon, token, opPackageName, mSensorProperties.sensorId);
@@ -506,7 +508,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void scheduleEnroll(@NonNull IBinder token, @NonNull byte[] hardwareAuthToken, int userId,
    public void scheduleEnroll(@NonNull IBinder token, @NonNull byte[] hardwareAuthToken, int userId,
            @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName,
            @Nullable Surface surface) {
        mHandler.post(() -> {
@@ -529,13 +531,13 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void cancelEnrollment(@NonNull IBinder token) {
    public void cancelEnrollment(@NonNull IBinder token) {
        mHandler.post(() -> {
            mScheduler.cancelEnrollment(token);
        });
    }

    void scheduleFingerDetect(@NonNull IBinder token, int userId,
    public void scheduleFingerDetect(@NonNull IBinder token, int userId,
            @NonNull ClientMonitorCallbackConverter listener, @NonNull String opPackageName,
            @Nullable Surface surface, int statsClient) {
        mHandler.post(() -> {
@@ -550,9 +552,10 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void scheduleAuthenticate(@NonNull IBinder token, long operationId, int userId, int cookie,
            @NonNull ClientMonitorCallbackConverter listener, @NonNull String opPackageName,
            boolean restricted, int statsClient, boolean isKeyguard) {
    public void scheduleAuthenticate(@NonNull IBinder token, long operationId, int userId,
            int cookie, @NonNull ClientMonitorCallbackConverter listener,
            @NonNull String opPackageName, boolean restricted, int statsClient,
            boolean isKeyguard) {
        mHandler.post(() -> {
            scheduleUpdateActiveUserWithoutHandler(userId);

@@ -566,20 +569,21 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    void startPreparedClient(int cookie) {
    public void startPreparedClient(int cookie) {
        mHandler.post(() -> {
            mScheduler.startPreparedClient(cookie);
        });
    }

    void cancelAuthentication(@NonNull IBinder token) {
    public void cancelAuthentication(@NonNull IBinder token) {
        mHandler.post(() -> {
            mScheduler.cancelAuthentication(token);
        });
    }

    void scheduleRemove(@NonNull IBinder token, @NonNull IFingerprintServiceReceiver receiver,
            int fingerId, int userId, @NonNull String opPackageName) {
    public void scheduleRemove(@NonNull IBinder token,
            @NonNull IFingerprintServiceReceiver receiver, int fingerId, int userId,
            @NonNull String opPackageName) {
        mHandler.post(() -> {
           scheduleUpdateActiveUserWithoutHandler(userId);

@@ -604,30 +608,30 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        });
    }

    boolean isHardwareDetected() {
    public boolean isHardwareDetected() {
        final IBiometricsFingerprint daemon = getDaemon();
        return daemon != null;
    }

    @NonNull FingerprintSensorProperties getFingerprintSensorProperties() {
    @NonNull public FingerprintSensorProperties getFingerprintSensorProperties() {
        return mSensorProperties;
    }

    void rename(int fingerId, int userId, String name) {
    public void rename(int fingerId, int userId, String name) {
        mHandler.post(() -> {
            FingerprintUtils.getInstance().renameBiometricForUser(mContext, userId, fingerId, name);
        });
    }

    List<Fingerprint> getEnrolledFingerprints(int userId) {
    public List<Fingerprint> getEnrolledFingerprints(int userId) {
        return FingerprintUtils.getInstance().getBiometricsForUser(mContext, userId);
    }

    long getAuthenticatorId(int userId) {
    public long getAuthenticatorId(int userId) {
        return mAuthenticatorIds.get(userId);
    }

    void onFingerDown(int x, int y, float minor, float major) {
    public void onFingerDown(int x, int y, float minor, float major) {
        final ClientMonitor<?> client = mScheduler.getCurrentClient();
        if (!(client instanceof Udfps)) {
            Slog.w(TAG, "onFingerDown received during client: " + client);
@@ -637,7 +641,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        udfps.onFingerDown(x, y, minor, major);
    }

    void onFingerUp() {
    public void onFingerUp() {
        final ClientMonitor<?> client = mScheduler.getCurrentClient();
        if (!(client instanceof Udfps)) {
            Slog.w(TAG, "onFingerDown received during client: " + client);
@@ -647,11 +651,11 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        udfps.onFingerUp();
    }

    void setUdfpsOverlayController(IUdfpsOverlayController controller) {
    public void setUdfpsOverlayController(IUdfpsOverlayController controller) {
        mUdfpsOverlayController = controller;
    }

    void dumpProto(FileDescriptor fd) {
    public void dumpProto(FileDescriptor fd) {
        PerformanceTracker tracker =
                PerformanceTracker.getInstanceForSensorId(mSensorProperties.sensorId);

@@ -691,7 +695,7 @@ class Fingerprint21 implements IHwBinder.DeathRecipient {
        tracker.clear();
    }

    void dumpInternal(@NonNull PrintWriter pw) {
    public void dumpInternal(@NonNull PrintWriter pw) {
        PerformanceTracker performanceTracker =
                PerformanceTracker.getInstanceForSensorId(mSensorProperties.sensorId);

+6 −5
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.server.biometrics.sensors.fingerprint;
package com.android.server.biometrics.sensors.fingerprint.hidl;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -43,6 +43,7 @@ import com.android.server.biometrics.sensors.BiometricScheduler;
import com.android.server.biometrics.sensors.ClientMonitor;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.fingerprint.GestureAvailabilityDispatcher;

import java.util.ArrayList;
import java.util.Random;
@@ -267,7 +268,7 @@ public class Fingerprint21UdfpsMock extends Fingerprint21 implements TrustManage
        }
    }

    static Fingerprint21UdfpsMock newInstance(@NonNull Context context, int sensorId,
    public static Fingerprint21UdfpsMock newInstance(@NonNull Context context, int sensorId,
            @BiometricManager.Authenticators.Types int strength,
            @NonNull LockoutResetDispatcher lockoutResetDispatcher,
            @NonNull GestureAvailabilityDispatcher gestureAvailabilityDispatcher) {
@@ -450,12 +451,12 @@ public class Fingerprint21UdfpsMock extends Fingerprint21 implements TrustManage

    @Override
    @NonNull
    FingerprintSensorProperties getFingerprintSensorProperties() {
    public FingerprintSensorProperties getFingerprintSensorProperties() {
        return mSensorProperties;
    }

    @Override
    void onFingerDown(int x, int y, float minor, float major) {
    public void onFingerDown(int x, int y, float minor, float major) {
        mHandler.post(() -> {
            Slog.d(TAG, "onFingerDown");
            final AuthenticationConsumer lastAuthenticatedConsumer =
@@ -502,7 +503,7 @@ public class Fingerprint21UdfpsMock extends Fingerprint21 implements TrustManage
    }

    @Override
    void onFingerUp() {
    public void onFingerUp() {
        mHandler.post(() -> {
            Slog.d(TAG, "onFingerUp");

+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.server.biometrics.sensors.fingerprint;
package com.android.server.biometrics.sensors.fingerprint.hidl;

import android.annotation.NonNull;
import android.annotation.Nullable;
Loading