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

Commit 33fb2017 authored by Diya Bera's avatar Diya Bera
Browse files

Update setIgnoreDisplayTouches when context is updated

Test: atest FingerprintAuthenticationClientTest
Bug: 331656652
Bug: 336110138
Change-Id: I57988525c7f59394e12da033d6af5600d8ca0979
parent 1efe42a9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);
                }
+10 −5
Original line number Diff line number Diff line
@@ -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