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

Commit aa3e3af1 authored by Joshua Mccloskey's avatar Joshua Mccloskey Committed by Android (Google) Code Review
Browse files

Merge "Updated face session to use SurfaceView" into main

parents 8af29b27 4843004d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -103,7 +103,7 @@ java_library_static {
        "android.hardware.power-java_static",
        "android.hardware.power-java_static",
    ],
    ],
    srcs: [
    srcs: [
        ":android.hardware.biometrics.face-V3-java-source",
        ":android.hardware.biometrics.face-V4-java-source",
        ":android.hardware.tv.hdmi.connection-V1-java-source",
        ":android.hardware.tv.hdmi.connection-V1-java-source",
        ":android.hardware.tv.hdmi.earc-V1-java-source",
        ":android.hardware.tv.hdmi.earc-V1-java-source",
        ":statslog-art-java-gen",
        ":statslog-art-java-gen",
+7 −0
Original line number Original line Diff line number Diff line
@@ -75,4 +75,11 @@ public class AidlSession {
    public boolean hasContextMethods() {
    public boolean hasContextMethods() {
        return mHalInterfaceVersion >= 2;
        return mHalInterfaceVersion >= 2;
    }
    }

    /**
     * If this backend implements enroll methods with an {@link android.view.Surface}.
     */
    public boolean supportsFaceEnrollOptions() {
        return mHalInterfaceVersion >= 4;
    }
}
}
+16 −3
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Context;
import android.hardware.biometrics.BiometricFaceConstants;
import android.hardware.biometrics.BiometricFaceConstants;
import android.hardware.biometrics.common.ICancellationSignal;
import android.hardware.biometrics.common.ICancellationSignal;
import android.hardware.biometrics.face.EnrollmentType;
import android.hardware.biometrics.face.EnrollmentType;
import android.hardware.biometrics.face.FaceEnrollOptions;
import android.hardware.biometrics.face.Feature;
import android.hardware.biometrics.face.Feature;
import android.hardware.biometrics.face.IFace;
import android.hardware.biometrics.face.IFace;
import android.hardware.common.NativeHandle;
import android.hardware.common.NativeHandle;
@@ -201,9 +202,21 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> {


        if (session.hasContextMethods()) {
        if (session.hasContextMethods()) {
            final OperationContextExt opContext = getOperationContext();
            final OperationContextExt opContext = getOperationContext();
            final ICancellationSignal cancel = session.getSession().enrollWithContext(
            ICancellationSignal cancel;
            if (session.supportsFaceEnrollOptions()) {
                FaceEnrollOptions options = new FaceEnrollOptions();
                options.hardwareAuthToken = hat;
                options.enrollmentType = EnrollmentType.DEFAULT;
                options.features = features;
                options.nativeHandlePreview = null;
                options.context = opContext.toAidlContext();
                options.surfacePreview = mPreviewSurface;
                cancel = session.getSession().enrollWithOptions(options);
            } else {
                cancel = session.getSession().enrollWithContext(
                        hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle,
                        hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle,
                        opContext.toAidlContext());
                        opContext.toAidlContext());
            }
            getBiometricContext().subscribe(opContext, ctx -> {
            getBiometricContext().subscribe(opContext, ctx -> {
                try {
                try {
                    session.getSession().onContextChanged(ctx);
                    session.getSession().onContextChanged(ctx);
+7 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import android.hardware.biometrics.common.ICancellationSignal;
import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.face.EnrollmentStageConfig;
import android.hardware.biometrics.face.EnrollmentStageConfig;
import android.hardware.biometrics.face.Error;
import android.hardware.biometrics.face.Error;
import android.hardware.biometrics.face.FaceEnrollOptions;
import android.hardware.biometrics.face.IFace;
import android.hardware.biometrics.face.IFace;
import android.hardware.biometrics.face.ISession;
import android.hardware.biometrics.face.ISession;
import android.hardware.biometrics.face.ISessionCallback;
import android.hardware.biometrics.face.ISessionCallback;
@@ -212,6 +213,12 @@ public class TestHal extends IFace.Stub {
            public void onContextChanged(OperationContext context) {
            public void onContextChanged(OperationContext context) {
                Slog.w(TAG, "onContextChanged");
                Slog.w(TAG, "onContextChanged");
            }
            }

            @Override
            public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) {
                return enroll(options.hardwareAuthToken, options.enrollmentType, options.features,
                        options.nativeHandlePreview);
            }
        };
        };
    }
    }
}
}
+7 −0
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ import android.hardware.biometrics.BiometricFaceConstants;
import android.hardware.biometrics.common.ICancellationSignal;
import android.hardware.biometrics.common.ICancellationSignal;
import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.face.EnrollmentStageConfig;
import android.hardware.biometrics.face.EnrollmentStageConfig;
import android.hardware.biometrics.face.FaceEnrollOptions;
import android.hardware.biometrics.face.ISession;
import android.hardware.biometrics.face.ISession;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
import android.hardware.biometrics.face.V1_0.OptionalBool;
import android.hardware.biometrics.face.V1_0.OptionalBool;
@@ -344,4 +345,10 @@ public class AidlToHidlAdapter implements ISession {
            return null;
            return null;
        }
        }
    }
    }

    @Override
    public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) {
        //Unsupported in HIDL
        return null;
    }
}
}
Loading