Remove haptic feedback from face detect operations.

Also removes some unused / dead haptic code.

Fix: 263762558
Test: atest FaceDetectClientTest
Test: manual (setup with face/fp, set lockscreen bypass for face, lockout device, press power button to attempt login, look at phone to trigger bouncer, confirm Face detect operation has visual but not haptic feedback)
Change-Id: I943aae5da6e50f91bd0b91cc01f895c9732e26d5
This commit is contained in:
Joe Bolinger
2023-05-17 23:38:25 +00:00
parent e61670d58e
commit be5eaef2cd
3 changed files with 17 additions and 12 deletions

View File

@@ -206,17 +206,6 @@ public abstract class AcquisitionClient<T> extends HalClientMonitor<T> implement
}
}
protected final void vibrateError() {
Vibrator vibrator = getContext().getSystemService(Vibrator.class);
if (vibrator != null && mShouldVibrate) {
vibrator.vibrate(Process.myUid(),
getContext().getOpPackageName(),
ERROR_VIBRATION_EFFECT,
getClass().getSimpleName() + "::error",
HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES);
}
}
@Override
public boolean isInterruptable() {
return true;

View File

@@ -72,7 +72,7 @@ public class FaceDetectClient extends AcquisitionClient<AidlSession> implements
boolean isStrongBiometric, SensorPrivacyManager sensorPrivacyManager) {
super(context, lazyDaemon, token, listener, options.getUserId(),
options.getOpPackageName(), 0 /* cookie */, options.getSensorId(),
true /* shouldVibrate */, logger, biometricContext);
false /* shouldVibrate */, logger, biometricContext);
setRequestId(requestId);
mIsStrongBiometric = isStrongBiometric;
mSensorPrivacyManager = sensorPrivacyManager;

View File

@@ -24,6 +24,7 @@ import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.same;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import android.hardware.biometrics.common.AuthenticateReason;
@@ -34,6 +35,7 @@ import android.hardware.face.FaceAuthenticateOptions;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.Vibrator;
import android.platform.test.annotations.Presubmit;
import android.testing.TestableContext;
@@ -75,6 +77,8 @@ public class FaceDetectClientTest {
@Mock
private IBinder mToken;
@Mock
private Vibrator mVibrator;
@Mock
private ClientMonitorCallbackConverter mClientMonitorCallbackConverter;
@Mock
private BiometricLogger mBiometricLogger;
@@ -94,6 +98,8 @@ public class FaceDetectClientTest {
@Before
public void setup() {
mContext.addMockSystemService(Vibrator.class, mVibrator);
when(mBiometricContext.updateContext(any(), anyBoolean())).thenAnswer(
i -> i.getArgument(0));
}
@@ -147,6 +153,16 @@ public class FaceDetectClientTest {
verify(mBiometricContext).unsubscribe(same(mOperationContextCaptor.getValue()));
}
@Test
public void doesNotPlayHapticOnInteractionDetected() throws Exception {
final FaceDetectClient client = createClient();
client.start(mCallback);
client.onInteractionDetected();
client.stopHalOperation();
verifyZeroInteractions(mVibrator);
}
private FaceDetectClient createClient() throws RemoteException {
return createClient(100 /* version */);
}