diff options
2 files changed, 17 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java index acc086bd6be6..00a59114ad94 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java @@ -35,6 +35,7 @@ import android.hardware.biometrics.BiometricFingerprintConstants.FingerprintAcqu import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.biometrics.BiometricSourceType; import android.hardware.biometrics.common.ICancellationSignal; +import android.hardware.biometrics.common.OperationState; import android.hardware.biometrics.events.AuthenticationAcquiredInfo; import android.hardware.biometrics.events.AuthenticationErrorInfo; import android.hardware.biometrics.events.AuthenticationFailedInfo; @@ -344,6 +345,12 @@ public class FingerprintAuthenticationClient if (session.hasContextMethods()) { try { session.getSession().onContextChanged(ctx); + // TODO(b/317414324): Deprecate setIgnoreDisplayTouches + if (ctx.operationState != null && ctx.operationState.getTag() + == OperationState.fingerprintOperationState) { + session.getSession().setIgnoreDisplayTouches(ctx.operationState + .getFingerprintOperationState().isHardwareIgnoringTouches); + } } catch (RemoteException e) { Slog.e(TAG, "Unable to notify context changed", e); } diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java index a8e0c268011b..bd1681358291 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java @@ -49,6 +49,7 @@ import android.hardware.biometrics.BiometricRequestConstants; import android.hardware.biometrics.BiometricSourceType; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; +import android.hardware.biometrics.common.OperationState; import android.hardware.biometrics.events.AuthenticationAcquiredInfo; import android.hardware.biometrics.events.AuthenticationErrorInfo; import android.hardware.biometrics.events.AuthenticationFailedInfo; @@ -391,8 +392,8 @@ public class FingerprintAuthenticationClientTest { verify(mBiometricContext).subscribe(mOperationContextCaptor.capture(), mStartHalConsumerCaptor.capture(), mContextInjector.capture(), any()); - mStartHalConsumerCaptor.getValue().accept(mOperationContextCaptor - .getValue().toAidlContext()); + final OperationContextExt operationContext = mOperationContextCaptor.getValue(); + mStartHalConsumerCaptor.getValue().accept(operationContext.toAidlContext()); final ArgumentCaptor<OperationContext> captor = ArgumentCaptor.forClass(OperationContext.class); @@ -400,16 +401,20 @@ public class FingerprintAuthenticationClientTest { OperationContext opContext = captor.getValue(); - assertThat(opContext).isSameInstanceAs( - mOperationContextCaptor.getValue().toAidlContext()); + assertThat(opContext).isSameInstanceAs(operationContext.toAidlContext()); + opContext.operationState = new OperationState(); + opContext.operationState.setFingerprintOperationState( + new OperationState.FingerprintOperationState()); mContextInjector.getValue().accept(opContext); verify(mHal).onContextChanged(same(opContext)); + verify(mHal, times(2)).setIgnoreDisplayTouches( + opContext.operationState.getFingerprintOperationState().isHardwareIgnoringTouches); client.stopHalOperation(); - verify(mBiometricContext).unsubscribe(same(mOperationContextCaptor.getValue())); + verify(mBiometricContext).unsubscribe(same(operationContext)); } @Test |