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

Commit 06e8478e authored by Kevin Chyn's avatar Kevin Chyn
Browse files

1/n: Start implementation of IFingerprint aidl

Adds first IFingerprint ClientMonitor (GenerateChallenge)
Adds first ISession ClientMonitor (Enroll)

Bug: 168843828
Test: No effect on existing devices
Test: ./vendor/bin/hw/android.hardware.biometrics.fingerprint-service.example
Change-Id: Id8ed52f599d358880213350eddd44cd7913fcc86
parent 3a679034
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -761,14 +761,14 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
     * @hide
     */
    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
    public void onFingerDown(int sensorId, int x, int y, float minor, float major) {
    public void onPointerDown(int sensorId, int x, int y, float minor, float major) {
        if (mService == null) {
            Slog.w(TAG, "onFingerDown: no fingerprint service");
            return;
        }

        try {
            mService.onFingerDown(sensorId, x, y, minor, major);
            mService.onPointerDown(sensorId, x, y, minor, major);
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
        }
@@ -778,14 +778,14 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
     * @hide
     */
    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
    public void onFingerUp(int sensorId) {
    public void onPointerUp(int sensorId) {
        if (mService == null) {
            Slog.w(TAG, "onFingerDown: no fingerprint service");
            return;
        }

        try {
            mService.onFingerUp(sensorId);
            mService.onPointerUp(sensorId);
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
        }
+5 −0
Original line number Diff line number Diff line
@@ -85,4 +85,9 @@ public class FingerprintSensorPropertiesInternal extends SensorPropertiesInterna
                return false;
        }
    }

    @Override
    public String toString() {
        return "ID: " + sensorId + ", Strength: " + sensorStrength + ", Type: " + sensorType;
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -121,10 +121,10 @@ interface IFingerprintService {
    void initializeConfiguration(int sensorId, int strength);

    // Notifies about a finger touching the sensor area.
    void onFingerDown(int sensorId, int x, int y, float minor, float major);
    void onPointerDown(int sensorId, int x, int y, float minor, float major);

    // Notifies about a finger leaving the sensor area.
    void onFingerUp(int sensorId);
    void onPointerUp(int sensorId);

    // Sets the controller for managing the UDFPS overlay.
    void setUdfpsOverlayController(in IUdfpsOverlayController controller);
+3 −3
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ import javax.inject.Inject;
 * Note that the current architecture is designed so that a single {@link UdfpsController}
 * controls/manages all UDFPS sensors. In other words, a single controller is registered with
 * {@link com.android.server.biometrics.sensors.fingerprint.FingerprintService}, and interfaces such
 * as {@link FingerprintManager#onFingerDown(int, int, int, float, float)} or
 * as {@link FingerprintManager#onPointerDown(int, int, int, float, float)} or
 * {@link IUdfpsOverlayController#showUdfpsOverlay(int)}should all have
 * {@code sensorId} parameters.
 */
@@ -374,7 +374,7 @@ class UdfpsController implements DozeReceiver {
                fw.write(mHbmEnableCommand);
                fw.close();
            }
            mFingerprintManager.onFingerDown(mUdfpsSensorId, x, y, minor, major);
            mFingerprintManager.onPointerDown(mUdfpsSensorId, x, y, minor, major);
        } catch (IOException e) {
            mView.hideScrimAndDot();
            Log.e(TAG, "onFingerDown | failed to enable HBM: " + e.getMessage());
@@ -382,7 +382,7 @@ class UdfpsController implements DozeReceiver {
    }

    private void onFingerUp() {
        mFingerprintManager.onFingerUp(mUdfpsSensorId);
        mFingerprintManager.onPointerUp(mUdfpsSensorId);
        // Hiding the scrim before disabling HBM results in less noticeable flicker.
        mView.hideScrimAndDot();
        if (mHbmSupported) {
+2 −2
Original line number Diff line number Diff line
@@ -222,7 +222,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
        mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event);
        event.recycle();
        // THEN the event is passed to the FingerprintManager
        verify(mFingerprintManager).onFingerDown(eq(mUdfpsController.mUdfpsSensorId), eq(0), eq(0),
        verify(mFingerprintManager).onPointerDown(eq(mUdfpsController.mUdfpsSensorId), eq(0), eq(0),
                eq(0f), eq(0f));
        // AND the scrim and dot is shown
        verify(mUdfpsView).showScrimAndDot();
@@ -236,7 +236,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
        // WHEN fingerprint is requested because of AOD interrupt
        mUdfpsController.onAodInterrupt(0, 0);
        // THEN the event is passed to the FingerprintManager
        verify(mFingerprintManager).onFingerDown(eq(mUdfpsController.mUdfpsSensorId), eq(0), eq(0),
        verify(mFingerprintManager).onPointerDown(eq(mUdfpsController.mUdfpsSensorId), eq(0), eq(0),
                anyFloat(), anyFloat());
        // AND the scrim and dot is shown
        verify(mUdfpsView).showScrimAndDot();
Loading