summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dave Mankoff <mankoff@google.com> 2021-04-27 19:45:55 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-04-27 19:45:55 +0000
commit0e78c72a12bcaebccbc0ba8c70be93e98a433e76 (patch)
tree723180dd4ecb9a0327f5e4444400bdbab5f320f2
parentac431bc0272b63043e6d215c999c007421ea395d (diff)
parent9d3897adf5ba687f43299e3f1aa4ce045af15509 (diff)
Merge "Ensure that the FalsingManager skips falsing when appropriate." into sc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java49
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);
}