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

Commit 0e78c72a authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Ensure that the FalsingManager skips falsing when appropriate." into sc-dev

parents ac431bc0 9d3897ad
Loading
Loading
Loading
Loading
+27 −22
Original line number Diff line number Diff line
@@ -197,12 +197,11 @@ public class BrightLineFalsingManager implements FalsingManager {
    public boolean isFalseTouch(@Classifier.InteractionType int interactionType) {
        mPriorInteractionType = interactionType;
        if (skipFalsing()) {
            mPriorResults = getPassedResult(1);
            logDebug("Skipped falsing");
            return false;
        }

        final boolean booleanResult;

        if (!mTestHarness && !mDataProvider.isJustUnlockedWithFace() && !mDockManager.isDocked()) {
        final boolean[] localResult = {false};
        mPriorResults = mClassifiers.stream().map(falsingClassifier -> {
            FalsingClassifier.Result r = falsingClassifier.classifyGesture(
@@ -213,15 +212,10 @@ public class BrightLineFalsingManager implements FalsingManager {

            return r;
        }).collect(Collectors.toList());
            booleanResult = localResult[0];
        } else {
            booleanResult = false;
            mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(1));
        }

        logDebug("False Gesture: " + booleanResult);
        logDebug("False Gesture: " + localResult[0]);

        return booleanResult;
        return localResult[0];
    }

    @Override
@@ -236,6 +230,8 @@ public class BrightLineFalsingManager implements FalsingManager {
    @Override
    public boolean isFalseTap(@Penalty int penalty) {
        if (skipFalsing()) {
            mPriorResults = getPassedResult(1);
            logDebug("Skipped falsing");
            return false;
        }

@@ -264,7 +260,7 @@ public class BrightLineFalsingManager implements FalsingManager {
        if (!singleTapResult.isFalse()) {
            if (mDataProvider.isJustUnlockedWithFace()) {
                // Immediately pass if a face is detected.
                mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(1));
                mPriorResults = getPassedResult(1);
                logDebug("False Single Tap: false (face detected)");
                return false;
            } else if (!isFalseDoubleTap()) {
@@ -281,7 +277,7 @@ public class BrightLineFalsingManager implements FalsingManager {
                mFalsingTapListeners.forEach(FalsingTapListener::onDoubleTapRequired);
                return true;
            } else {
                mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(0.1));
                mPriorResults = getPassedResult(0.1);
                logDebug("False Single Tap: false (default)");
                return false;
            }
@@ -296,6 +292,8 @@ public class BrightLineFalsingManager implements FalsingManager {
    @Override
    public boolean isFalseDoubleTap() {
        if (skipFalsing()) {
            mPriorResults = getPassedResult(1);
            logDebug("Skipped falsing");
            return false;
        }

@@ -309,7 +307,10 @@ public class BrightLineFalsingManager implements FalsingManager {
    }

    private boolean skipFalsing() {
        return !mKeyguardStateController.isShowing();
        return !mKeyguardStateController.isShowing()
                || mTestHarness
                || mDataProvider.isJustUnlockedWithFace()
                || mDockManager.isDocked();
    }

    @Override
@@ -411,6 +412,10 @@ public class BrightLineFalsingManager implements FalsingManager {
        mHistoryTracker.removeBeliefListener(mBeliefListener);
    }

    private static Collection<FalsingClassifier.Result> getPassedResult(double confidence) {
        return Collections.singleton(FalsingClassifier.Result.passed(confidence));
    }

    static void logDebug(String msg) {
        logDebug(msg, null);
    }