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

Commit 2385737e authored by Diya Bera's avatar Diya Bera Committed by Android (Google) Code Review
Browse files

Merge "Handling power press messages sent from the HAL"

parents 6a1f2b08 c48148a8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -149,6 +149,13 @@ public final class SensorOverlays {
        }
    }

    /**
     * Returns if the sensor is side fps.
     */
    public boolean isSfps() {
        return mSidefpsController.isPresent();
    }

    /**
     * Consumer for a biometric overlay controller.
     *
+8 −2
Original line number Diff line number Diff line
@@ -236,8 +236,14 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession>

    @Override
    public void onError(int errorCode, int vendorCode) {
        if (errorCode == BiometricFingerprintConstants.FINGERPRINT_ERROR_VENDOR
                && vendorCode == BiometricFingerprintConstants.BIOMETRIC_ERROR_POWER_PRESSED
                && mSensorOverlays.isSfps()) {
            super.onError(BiometricFingerprintConstants.BIOMETRIC_ERROR_POWER_PRESSED,
                    0 /* vendorCode */);
        } else {
            super.onError(errorCode, vendorCode);

        }
        if (errorCode == BiometricFingerprintConstants.FINGERPRINT_ERROR_BAD_CALIBRATION) {
            BiometricNotificationUtils.showBadCalibrationNotification(getContext());
        }
+9 −5
Original line number Diff line number Diff line
@@ -146,8 +146,15 @@ class FingerprintEnrollClient extends EnrollClient<AidlSession> implements Udfps
            }
        });
        mCallback.onBiometricAction(BiometricStateListener.ACTION_SENSOR_TOUCH);
        if (acquiredInfo == BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_VENDOR
                && vendorCode == BiometricFingerprintConstants.BIOMETRIC_ERROR_POWER_PRESSED
                && mSensorOverlays.isSfps()) {
            super.onAcquired(BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_POWER_PRESSED,
                    0 /* vendorCode */);
        } else {
            super.onAcquired(acquiredInfo, vendorCode);
        }
    }

    @Override
    public void onError(int errorCode, int vendorCode) {
@@ -274,8 +281,5 @@ class FingerprintEnrollClient extends EnrollClient<AidlSession> implements Udfps
    }

    @Override
    public void onPowerPressed() {
        onAcquired(BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_POWER_PRESSED,
                0 /* vendorCode */);
    }
    public void onPowerPressed() { }
}
+11 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import static org.mockito.Mockito.when;
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
import android.content.ComponentName;
import android.hardware.biometrics.BiometricFingerprintConstants;
import android.hardware.biometrics.BiometricManager;
import android.hardware.biometrics.common.ICancellationSignal;
import android.hardware.biometrics.common.OperationContext;
@@ -364,6 +365,16 @@ public class FingerprintAuthenticationClientTest {
        showHideOverlay(c -> c.onLockoutPermanent());
    }

    @Test
    public void testPowerPressForwardsErrorMessage() throws RemoteException {
        final FingerprintAuthenticationClient client = createClient();

        client.onError(BiometricFingerprintConstants.FINGERPRINT_ERROR_VENDOR,
                BiometricFingerprintConstants.BIOMETRIC_ERROR_POWER_PRESSED);

        verify(mClientMonitorCallbackConverter).onError(anyInt(), anyInt(),
                eq(BiometricFingerprintConstants.BIOMETRIC_ERROR_POWER_PRESSED), eq(0));
    }
    private void showHideOverlay(Consumer<FingerprintAuthenticationClient> block)
            throws RemoteException {
        final FingerprintAuthenticationClient client = createClient();
+5 −5
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

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

import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_POWER_PRESSED;

import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -29,6 +27,7 @@ import static org.mockito.Mockito.same;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.hardware.biometrics.BiometricFingerprintConstants;
import android.hardware.biometrics.common.OperationContext;
import android.hardware.biometrics.fingerprint.ISession;
import android.hardware.biometrics.fingerprint.PointerContext;
@@ -276,11 +275,12 @@ public class FingerprintEnrollClientTest {
    @Test
    public void testPowerPressForwardsAcquireMessage() throws RemoteException {
        final FingerprintEnrollClient client = createClient();
        client.start(mCallback);
        client.onPowerPressed();

        client.onAcquired(BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_VENDOR,
                BiometricFingerprintConstants.BIOMETRIC_ERROR_POWER_PRESSED);

        verify(mClientMonitorCallbackConverter).onAcquired(anyInt(),
                eq(FINGERPRINT_ACQUIRED_POWER_PRESSED), anyInt());
                eq(BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_POWER_PRESSED), eq(0));
    }

    private void showHideOverlay(Consumer<FingerprintEnrollClient> block)