Merge "Handling power press messages sent from the HAL"
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -236,8 +236,14 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession>
|
||||
|
||||
@Override
|
||||
public void onError(int errorCode, int vendorCode) {
|
||||
super.onError(errorCode, 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());
|
||||
}
|
||||
|
||||
@@ -146,7 +146,14 @@ class FingerprintEnrollClient extends EnrollClient<AidlSession> implements Udfps
|
||||
}
|
||||
});
|
||||
mCallback.onBiometricAction(BiometricStateListener.ACTION_SENSOR_TOUCH);
|
||||
super.onAcquired(acquiredInfo, vendorCode);
|
||||
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
|
||||
@@ -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() { }
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user