diff options
| author | 2021-04-27 19:45:55 +0000 | |
|---|---|---|
| committer | 2021-04-27 19:45:55 +0000 | |
| commit | 0e78c72a12bcaebccbc0ba8c70be93e98a433e76 (patch) | |
| tree | 723180dd4ecb9a0327f5e4444400bdbab5f320f2 | |
| parent | ac431bc0272b63043e6d215c999c007421ea395d (diff) | |
| parent | 9d3897adf5ba687f43299e3f1aa4ce045af15509 (diff) | |
Merge "Ensure that the FalsingManager skips falsing when appropriate." into sc-dev
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java index 9e621b30a042..2808450c1820 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java @@ -197,31 +197,25 @@ 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( - interactionType, - mHistoryTracker.falseBelief(), - mHistoryTracker.falseConfidence()); - localResult[0] |= r.isFalse(); + final boolean[] localResult = {false}; + mPriorResults = mClassifiers.stream().map(falsingClassifier -> { + FalsingClassifier.Result r = falsingClassifier.classifyGesture( + interactionType, + mHistoryTracker.falseBelief(), + mHistoryTracker.falseConfidence()); + localResult[0] |= r.isFalse(); - return r; - }).collect(Collectors.toList()); - booleanResult = localResult[0]; - } else { - booleanResult = false; - mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(1)); - } + return r; + }).collect(Collectors.toList()); - 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); } |