summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java95
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java60
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java40
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/ClassifierTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java69
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java27
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java31
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/HistoryTrackerTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java18
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java16
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java26
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java107
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java97
24 files changed, 336 insertions, 370 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java
index 4f48bb4f3260..e16c01a4aa36 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java
@@ -109,7 +109,7 @@ public class KeyguardPatternViewController
// Treat single-sized patterns as erroneous taps.
if (pattern.size() == 1) {
mFalsingCollector.updateFalseConfidence(FalsingClassifier.Result.falsed(
- 0.7, "empty pattern input"));
+ 0.7, getClass().getSimpleName(), "empty pattern input"));
}
mLockPatternView.enableInput();
onPatternChecked(userId, false, 0, false /* not valid - too short */);
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
index 292af3f069f5..7e7cdce058bd 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
@@ -42,7 +42,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import java.util.Locale;
import java.util.Queue;
import java.util.Set;
import java.util.StringJoiner;
@@ -94,9 +93,17 @@ public class BrightLineFalsingManager implements FalsingManager {
}
};
- private final BeliefListener mBeliefListener = belief -> {
- if (belief > FALSE_BELIEF_THRESHOLD) {
- mFalsingBeliefListeners.forEach(FalsingBeliefListener::onFalse);
+ private final BeliefListener mBeliefListener = new BeliefListener() {
+ @Override
+ public void onBeliefChanged(double belief) {
+ logInfo(String.format(
+ "{belief=%s confidence=%s}",
+ mHistoryTracker.falseBelief(),
+ mHistoryTracker.falseConfidence()));
+ if (belief > FALSE_BELIEF_THRESHOLD) {
+ mFalsingBeliefListeners.forEach(FalsingBeliefListener::onFalse);
+ logInfo("Triggering False Event (Threshold: " + FALSE_BELIEF_THRESHOLD + ")");
+ }
}
};
@@ -105,13 +112,23 @@ public class BrightLineFalsingManager implements FalsingManager {
@Override
public void onGestureComplete(long completionTimeMs) {
if (mPriorResults != null) {
+ mPriorResults.forEach(result -> {
+ if (result.isFalse()) {
+ String reason = result.getReason();
+ if (reason != null) {
+ logInfo(reason);
+ }
+ }
+ });
+
mHistoryTracker.addResults(mPriorResults, completionTimeMs);
mPriorResults = null;
} else {
// Gestures that were not classified get treated as a false.
mHistoryTracker.addResults(
Collections.singleton(
- FalsingClassifier.Result.falsed(.8, "unclassified")),
+ FalsingClassifier.Result.falsed(
+ .8, getClass().getSimpleName(), "unclassified")),
completionTimeMs);
}
}
@@ -154,30 +171,13 @@ public class BrightLineFalsingManager implements FalsingManager {
boolean result;
- mDataProvider.setInteractionType(interactionType);
-
if (!mTestHarness && !mDataProvider.isJustUnlockedWithFace() && !mDockManager.isDocked()) {
Stream<FalsingClassifier.Result> results =
- mClassifiers.stream().map(falsingClassifier -> {
- FalsingClassifier.Result classifierResult =
- falsingClassifier.classifyGesture(
- mHistoryTracker.falseBelief(),
- mHistoryTracker.falseConfidence());
- if (classifierResult.isFalse()) {
- logInfo(String.format(
- (Locale) null,
- "{classifier=%s, interactionType=%d}",
- falsingClassifier.getClass().getName(),
- mDataProvider.getInteractionType()));
- String reason = classifierResult.getReason();
- if (reason != null) {
- logInfo(reason);
- }
- } else {
- logDebug(falsingClassifier.getClass().getName() + ": false");
- }
- return classifierResult;
- });
+ mClassifiers.stream().map(falsingClassifier ->
+ falsingClassifier.classifyGesture(
+ interactionType,
+ mHistoryTracker.falseBelief(),
+ mHistoryTracker.falseConfidence()));
mPriorResults = new ArrayList<>();
final boolean[] localResult = {false};
results.forEach(classifierResult -> {
@@ -190,13 +190,13 @@ public class BrightLineFalsingManager implements FalsingManager {
mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(1));
}
- logDebug("Is false touch? " + result);
+ logDebug("False Gesture: " + result);
if (Build.IS_ENG || Build.IS_USERDEBUG) {
// Copy motion events, as the passed in list gets emptied out elsewhere in the code.
RECENT_SWIPES.add(new DebugSwipeRecord(
result,
- mDataProvider.getInteractionType(),
+ interactionType,
mDataProvider.getRecentMotionEvents().stream().map(
motionEvent -> new XYDt(
(int) motionEvent.getX(),
@@ -220,37 +220,36 @@ public class BrightLineFalsingManager implements FalsingManager {
FalsingClassifier.Result singleTapResult =
mSingleTapClassifier.isTap(mDataProvider.getRecentMotionEvents());
mPriorResults = Collections.singleton(singleTapResult);
- if (singleTapResult.isFalse()) {
- logInfo(String.format(
- (Locale) null, "{classifier=%s}", mSingleTapClassifier.getClass().getName()));
- String reason = singleTapResult.getReason();
- if (reason != null) {
- logInfo(reason);
- }
- return true;
- }
- if (robustCheck) {
+ if (!singleTapResult.isFalse() && robustCheck) {
if (mDataProvider.isJustUnlockedWithFace()) {
// Immediately pass if a face is detected.
mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(1));
+ logDebug("False Single Tap: false (face detected)");
return false;
} else if (!isFalseDoubleTap()) {
// We must check double tapping before other heuristics. This is because
// the double tap will fail if there's only been one tap. We don't want that
// failure to be recorded in mPriorResults.
+ logDebug("False Single Tap: false (double tapped)");
return false;
} else if (mHistoryTracker.falseBelief() > TAP_CONFIDENCE_THRESHOLD) {
mPriorResults = Collections.singleton(
- FalsingClassifier.Result.falsed(0, "bad history"));
+ FalsingClassifier.Result.falsed(
+ 0, getClass().getSimpleName(), "bad history"));
+ logDebug("False Single Tap: true (bad history)");
return true;
} else {
mPriorResults = Collections.singleton(FalsingClassifier.Result.passed(0.1));
+ logDebug("False Single Tap: false (default)");
return false;
}
+
+ } else {
+ logDebug("False Single Tap: " + singleTapResult.isFalse() + " (simple)");
+ return singleTapResult.isFalse();
}
- return false;
}
@Override
@@ -259,16 +258,12 @@ public class BrightLineFalsingManager implements FalsingManager {
return false;
}
- FalsingClassifier.Result result = mDoubleTapClassifier.classifyGesture();
+ FalsingClassifier.Result result = mDoubleTapClassifier.classifyGesture(
+ Classifier.GENERIC,
+ mHistoryTracker.falseBelief(),
+ mHistoryTracker.falseConfidence());
mPriorResults = Collections.singleton(result);
- if (result.isFalse()) {
- logInfo(String.format(
- (Locale) null, "{classifier=%s}", mDoubleTapClassifier.getClass().getName()));
- String reason = result.getReason();
- if (reason != null) {
- logInfo(reason);
- }
- }
+ logDebug("False Double Tap: " + result.isFalse());
return result.isFalse();
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java
index ffcdb93b11b1..71edbc06840e 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java
@@ -62,15 +62,16 @@ class DiagonalClassifier extends FalsingClassifier {
VERTICAL_ANGLE_RANGE);
}
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
float angle = getAngle();
if (angle == Float.MAX_VALUE) { // Unknown angle
return Result.passed(0);
}
- if (getInteractionType() == LEFT_AFFORDANCE
- || getInteractionType() == RIGHT_AFFORDANCE) {
+ if (interactionType == LEFT_AFFORDANCE || interactionType == RIGHT_AFFORDANCE) {
return Result.passed(0);
}
@@ -86,7 +87,7 @@ class DiagonalClassifier extends FalsingClassifier {
|| angleBetween(angle, minAngle - NINETY_DEG, maxAngle - NINETY_DEG)
|| angleBetween(angle, minAngle + ONE_HUNDRED_EIGHTY_DEG,
maxAngle + ONE_HUNDRED_EIGHTY_DEG);
- return falsed ? Result.falsed(0.5f, getReason()) : Result.passed(0.5);
+ return falsed ? falsed(0.5f, getReason()) : Result.passed(0.5);
}
private String getReason() {
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
index 0f121c1c9ae7..5a9c3867c578 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
@@ -136,8 +136,6 @@ class DistanceClassifier extends FalsingClassifier {
float dX = getLastMotionEvent().getX() - getFirstMotionEvent().getX();
float dY = getLastMotionEvent().getY() - getFirstMotionEvent().getY();
- logInfo("dX: " + dX + " dY: " + dY + " xV: " + vX + " yV: " + vY);
-
return new DistanceVectors(dX, dY, vX, vY);
}
@@ -147,9 +145,10 @@ class DistanceClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
- return !getPassedFlingThreshold()
- ? Result.falsed(0.5, getReason()) : Result.passed(0.5);
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
+ return !getPassedFlingThreshold() ? falsed(0.5, getReason()) : Result.passed(0.5);
}
String getReason() {
@@ -172,7 +171,7 @@ class DistanceClassifier extends FalsingClassifier {
Result isLongSwipe() {
boolean longSwipe = getPassedDistanceThreshold();
logDebug("Is longSwipe? " + longSwipe);
- return longSwipe ? Result.passed(0.5) : Result.falsed(0.5, getReason());
+ return longSwipe ? Result.passed(0.5) : falsed(0.5, getReason());
}
private boolean getPassedDistanceThreshold() {
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java
index baa54a65e4fc..e7c9d1863ce2 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java
@@ -46,18 +46,20 @@ public class DoubleTapClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
List<MotionEvent> secondTapEvents = getRecentMotionEvents();
List<MotionEvent> firstTapEvents = getPriorMotionEvents();
StringBuilder reason = new StringBuilder();
if (firstTapEvents == null) {
- return Result.falsed(0, "Only one gesture recorded");
+ return falsed(0, "Only one gesture recorded");
}
return !isDoubleTap(firstTapEvents, secondTapEvents, reason)
- ? Result.falsed(0.5, reason.toString()) : Result.passed(0.5);
+ ? falsed(0.5, reason.toString()) : Result.passed(0.5);
}
/** Returns true if the two supplied lists of {@link MotionEvent}s look like a double-tap. */
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java
index 1af5f7c488a5..81b9f66e9bc3 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java
@@ -35,6 +35,14 @@ public abstract class FalsingClassifier {
mDataProvider.addMotionEventListener(mMotionEventListener);
}
+ protected String getFalsingContext() {
+ return getClass().getSimpleName();
+ }
+
+ protected Result falsed(double confidence, String reason) {
+ return Result.falsed(confidence, getFalsingContext(), reason);
+ }
+
List<MotionEvent> getRecentMotionEvents() {
return mDataProvider.getRecentMotionEvents();
}
@@ -87,10 +95,6 @@ public abstract class FalsingClassifier {
return mDataProvider.getYdpi();
}
- final @Classifier.InteractionType int getInteractionType() {
- return mDataProvider.getInteractionType();
- }
-
void cleanup() {
mDataProvider.removeMotionEventListener(mMotionEventListener);
}
@@ -101,42 +105,32 @@ public abstract class FalsingClassifier {
* Useful for classifiers that need to see every MotionEvent, but most can probably
* use {@link #getRecentMotionEvents()} instead, which will return a list of MotionEvents.
*/
- void onTouchEvent(MotionEvent motionEvent) {};
+ void onTouchEvent(MotionEvent motionEvent) {}
/**
* Called when a ProximityEvent occurs (change in near/far).
*/
- void onProximityEvent(ProximitySensor.ThresholdSensorEvent proximityEvent) {};
+ void onProximityEvent(ProximitySensor.ThresholdSensorEvent proximityEvent) {}
/**
* The phone screen has turned on and we need to begin falsing detection.
*/
- void onSessionStarted() {};
+ void onSessionStarted() {}
/**
* The phone screen has turned off and falsing data can be discarded.
*/
- void onSessionEnded() {};
+ void onSessionEnded() {}
/**
- * Returns whether a gesture looks like a false touch.
- *
- * See also {@link #classifyGesture(double, double)}.
- */
- Result classifyGesture() {
- return calculateFalsingResult(0.5, 0);
- }
-
- /**
- * Returns whether a gesture looks like a false touch, with the option to consider history.
- *
- * Unlike the parameter-less version of this method, this method allows the classifier to take
- * history into account, penalizing or boosting confidence in a gesture based on recent results.
+ * Returns whether a gesture looks like a false touch, taking history into consideration.
*
- * See also {@link #classifyGesture()}.
+ * See {@link HistoryTracker#falseBelief()} and {@link HistoryTracker#falseConfidence()}.
*/
- Result classifyGesture(double historyBelief, double historyConfidence) {
- return calculateFalsingResult(historyBelief, historyConfidence);
+ Result classifyGesture(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
+ return calculateFalsingResult(interactionType, historyBelief, historyConfidence);
}
/**
@@ -144,7 +138,9 @@ public abstract class FalsingClassifier {
*
* When passed a historyConfidence of 0, the history belief should be wholly ignored.
*/
- abstract Result calculateFalsingResult(double historyBelief, double historyConfidence);
+ abstract Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence);
/** */
public static void logDebug(String msg) {
@@ -167,14 +163,16 @@ public abstract class FalsingClassifier {
public static class Result {
private final boolean mFalsed;
private final double mConfidence;
+ private final String mContext;
private final String mReason;
/**
- * See {@link #falsed(double, String)} abd {@link #passed(double)}.
+ * See {@link #falsed(double, String, String)} abd {@link #passed(double)}.
*/
- private Result(boolean falsed, double confidence, String reason) {
+ private Result(boolean falsed, double confidence, String context, String reason) {
mFalsed = falsed;
mConfidence = confidence;
+ mContext = context;
mReason = reason;
}
@@ -187,21 +185,21 @@ public abstract class FalsingClassifier {
}
public String getReason() {
- return mReason;
+ return String.format("{context=%s reason=%s}", mContext, mReason);
}
/**
* Construct a "falsed" result indicating that a gesture should be treated as accidental.
*/
- public static Result falsed(double confidence, String reason) {
- return new Result(true, confidence, reason);
+ public static Result falsed(double confidence, String context, String reason) {
+ return new Result(true, confidence, context, reason);
}
/**
* Construct a "passed" result indicating that a gesture should be allowed.
*/
public static Result passed(double confidence) {
- return new Result(false, confidence, null);
+ return new Result(false, confidence, null, null);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java
index b359860a0fd7..cf6169703dca 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingCollectorImpl.java
@@ -127,7 +127,6 @@ class FalsingCollectorImpl implements FalsingCollector {
@Override
public void onNotificationStartDraggingDown() {
- updateInteractionType(Classifier.NOTIFICATION_DRAG_DOWN);
}
@Override
@@ -140,7 +139,6 @@ class FalsingCollectorImpl implements FalsingCollector {
@Override
public void onQsDown() {
- updateInteractionType(Classifier.QUICK_SETTINGS);
}
@Override
@@ -159,7 +157,6 @@ class FalsingCollectorImpl implements FalsingCollector {
@Override
public void onTrackingStarted(boolean secure) {
- updateInteractionType(secure ? Classifier.BOUNCER_UNLOCK : Classifier.UNLOCK);
}
@Override
@@ -176,8 +173,6 @@ class FalsingCollectorImpl implements FalsingCollector {
@Override
public void onAffordanceSwipingStarted(boolean rightCorner) {
- updateInteractionType(
- rightCorner ? Classifier.RIGHT_AFFORDANCE : Classifier.LEFT_AFFORDANCE);
}
@Override
@@ -186,7 +181,6 @@ class FalsingCollectorImpl implements FalsingCollector {
@Override
public void onStartExpandingFromPulse() {
- updateInteractionType(Classifier.PULSE_EXPAND);
}
@Override
@@ -237,7 +231,6 @@ class FalsingCollectorImpl implements FalsingCollector {
@Override
public void onNotificationStartDismissing() {
- updateInteractionType(Classifier.NOTIFICATION_DISMISS);
}
@Override
@@ -302,11 +295,6 @@ class FalsingCollectorImpl implements FalsingCollector {
mHistoryTracker.addResults(Collections.singleton(result), mSystemClock.uptimeMillis());
}
- private void updateInteractionType(@Classifier.InteractionType int type) {
- logDebug("InteractionType: " + type);
- mFalsingDataProvider.setInteractionType(type);
- }
-
private boolean shouldSessionBeActive() {
return mScreenOn && (mState == StatusBarState.KEYGUARD) && !mShowingAod;
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
index 336f13f117d3..f665a7439ebe 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
@@ -47,8 +47,6 @@ public class FalsingDataProvider {
private final List<MotionEventListener> mMotionEventListeners = new ArrayList<>();
private final List<GestureCompleteListener> mGestureCompleteListeners = new ArrayList<>();
- private @Classifier.InteractionType int mInteractionType;
-
private TimeLimitedMotionEventBuffer mRecentMotionEvents =
new TimeLimitedMotionEventBuffer(MOTION_EVENT_AGE_MS);
private List<MotionEvent> mPriorMotionEvents;
@@ -138,21 +136,6 @@ public class FalsingDataProvider {
}
/**
- * interactionType is defined by {@link com.android.systemui.classifier.Classifier}.
- */
- public final void setInteractionType(@Classifier.InteractionType int interactionType) {
- if (mInteractionType != interactionType) {
- mInteractionType = interactionType;
- mDirty = true;
- }
- }
-
- /** Return the interaction type that is being compared against for falsing. */
- public final int getInteractionType() {
- return mInteractionType;
- }
-
- /**
* Get the first recorded {@link MotionEvent} of the most recent gesture.
*
* Note that MotionEvents are not kept forever. As a gesture gets longer in duration, older
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java
index 77d2d4267679..17942a6e00bf 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java
@@ -56,14 +56,15 @@ class PointerCountClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
- int interactionType = getInteractionType();
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
int allowedPointerCount =
(interactionType == QUICK_SETTINGS || interactionType == NOTIFICATION_DRAG_DOWN)
? MAX_ALLOWED_POINTERS_SWIPE_DOWN : MAX_ALLOWED_POINTERS;
return mMaxPointerCount > allowedPointerCount
- ? Result.falsed(1, getReason(allowedPointerCount)) : Result.passed(0);
+ ? falsed(1, getReason(allowedPointerCount)) : Result.passed(0);
}
private String getReason(int allowedPointerCount) {
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
index 6e97857f83da..ac330f069ae6 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
@@ -112,28 +112,31 @@ class ProximityClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
- if (getInteractionType() == QUICK_SETTINGS) {
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
+ if (interactionType == QUICK_SETTINGS) {
return Result.passed(0);
}
- logInfo("Percent of gesture in proximity: " + mPercentNear);
-
if (mPercentNear > mPercentCoveredThreshold) {
Result longSwipeResult = mDistanceClassifier.isLongSwipe();
return longSwipeResult.isFalse()
- ? Result.falsed(0.5, getReason(longSwipeResult)) : Result.passed(0.5);
+ ? falsed(
+ 0.5, getReason(longSwipeResult, mPercentNear, mPercentCoveredThreshold))
+ : Result.passed(0.5);
}
return Result.passed(0.5);
}
- private String getReason(Result longSwipeResult) {
+ private static String getReason(Result longSwipeResult, float percentNear,
+ float percentCoveredThreshold) {
return String.format(
(Locale) null,
"{percentInProximity=%f, threshold=%f, distanceClassifier=%s}",
- mPercentNear,
- mPercentCoveredThreshold,
+ percentNear,
+ percentCoveredThreshold,
longSwipeResult.getReason());
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java
index 4dd20ccff98e..68a9e5f0d489 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java
@@ -39,14 +39,16 @@ public class SingleTapClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
return isTap(getRecentMotionEvents());
}
/** Given a list of {@link android.view.MotionEvent}'s, returns true if the look like a tap. */
public Result isTap(List<MotionEvent> motionEvents) {
if (motionEvents.isEmpty()) {
- return Result.falsed(0, "no motion events");
+ return falsed(0, "no motion events");
}
float downX = motionEvents.get(0).getX();
float downY = motionEvents.get(0).getY();
@@ -58,13 +60,13 @@ public class SingleTapClassifier extends FalsingClassifier {
+ Math.abs(event.getX() - downX)
+ "vs "
+ mTouchSlop;
- return Result.falsed(0.5, reason);
+ return falsed(0.5, reason);
} else if (Math.abs(event.getY() - downY) >= mTouchSlop) {
reason = "dY too big for a tap: "
+ Math.abs(event.getY() - downY)
+ " vs "
+ mTouchSlop;
- return Result.falsed(0.5, reason);
+ return falsed(0.5, reason);
}
}
return Result.passed(0);
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
index 4e032ea487c9..427c2eff8793 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
@@ -38,13 +38,15 @@ public class TypeClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
boolean vertical = isVertical();
boolean up = isUp();
boolean right = isRight();
boolean wrongDirection = true;
- switch (getInteractionType()) {
+ switch (interactionType) {
case QUICK_SETTINGS:
case PULSE_EXPAND:
case NOTIFICATION_DRAG_DOWN:
@@ -68,10 +70,11 @@ public class TypeClassifier extends FalsingClassifier {
break;
}
- return wrongDirection ? Result.falsed(1, getReason()) : Result.passed(0.5);
+ return wrongDirection ? falsed(1, getReason(interactionType)) : Result.passed(0.5);
}
- private String getReason() {
- return String.format("{vertical=%s, up=%s, right=%s}", isVertical(), isUp(), isRight());
+ private String getReason(int interactionType) {
+ return String.format("{interaction=%s, vertical=%s, up=%s, right=%s}",
+ interactionType, isVertical(), isUp(), isRight());
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java
index 205825790461..1d413af43ab0 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java
@@ -84,7 +84,9 @@ class ZigZagClassifier extends FalsingClassifier {
}
@Override
- Result calculateFalsingResult(double historyBelief, double historyConfidence) {
+ Result calculateFalsingResult(
+ @Classifier.InteractionType int interactionType,
+ double historyBelief, double historyConfidence) {
List<MotionEvent> motionEvents = getRecentMotionEvents();
// Rotate horizontal gestures to be horizontal between their first and last point.
// Rotate vertical gestures to be vertical between their first and last point.
@@ -156,7 +158,7 @@ class ZigZagClassifier extends FalsingClassifier {
logDebug("Straightness Deviance: (" + devianceX + "," + devianceY + ") vs "
+ "(" + maxXDeviance + "," + maxYDeviance + ")");
return devianceX > maxXDeviance || devianceY > maxYDeviance
- ? Result.falsed(0.5, getReason()) : Result.passed(0.5);
+ ? falsed(0.5, getReason()) : Result.passed(0.5);
}
private String getReason() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
index d015f51055b5..67c1d075d03e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyCollection;
import static org.mockito.ArgumentMatchers.anyDouble;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -78,17 +79,21 @@ public class BrightLineClassifierTest extends SysuiTestCase {
private final FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock());
- private final FalsingClassifier.Result mFalsedResult = FalsingClassifier.Result.falsed(1, "");
+ private final FalsingClassifier.Result mFalsedResult =
+ FalsingClassifier.Result.falsed(1, getClass().getSimpleName(), "");
private final FalsingClassifier.Result mPassedResult = FalsingClassifier.Result.passed(1);
private GestureCompleteListener mGestureCompleteListener;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- when(mClassifierA.classifyGesture(anyDouble(), anyDouble())).thenReturn(mPassedResult);
- when(mClassifierB.classifyGesture(anyDouble(), anyDouble())).thenReturn(mPassedResult);
+ when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mPassedResult);
+ when(mClassifierB.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mPassedResult);
when(mSingleTapClassfier.isTap(any(List.class))).thenReturn(mPassedResult);
- when(mDoubleTapClassifier.classifyGesture()).thenReturn(mPassedResult);
+ when(mDoubleTapClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mPassedResult);
mClassifiers.add(mClassifierA);
mClassifiers.add(mClassifierB);
when(mFalsingDataProvider.getRecentMotionEvents()).thenReturn(mMotionEventList);
@@ -131,20 +136,23 @@ public class BrightLineClassifierTest extends SysuiTestCase {
@Test
public void testIsFalseTouch_ClassifierARejects() {
- when(mClassifierA.classifyGesture(anyDouble(), anyDouble())).thenReturn(mFalsedResult);
+ when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mFalsedResult);
assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isTrue();
}
@Test
public void testIsFalseTouch_ClassifierBRejects() {
- when(mClassifierB.classifyGesture(anyDouble(), anyDouble())).thenReturn(mFalsedResult);
+ when(mClassifierB.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mFalsedResult);
assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isTrue();
}
@Test
public void testIsFalseTouch_FaceAuth() {
// Even when the classifiers report a false, we should allow.
- when(mClassifierA.classifyGesture(anyDouble(), anyDouble())).thenReturn(mPassedResult);
+ when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mPassedResult);
when(mFalsingDataProvider.isJustUnlockedWithFace()).thenReturn(true);
assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
@@ -153,7 +161,8 @@ public class BrightLineClassifierTest extends SysuiTestCase {
@Test
public void testIsFalseTouch_Docked() {
// Even when the classifiers report a false, we should allow.
- when(mClassifierA.classifyGesture(anyDouble(), anyDouble())).thenReturn(mPassedResult);
+ when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mPassedResult);
mDockManager.setIsDocked(true);
assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
@@ -173,7 +182,8 @@ public class BrightLineClassifierTest extends SysuiTestCase {
@Test
public void testIsFalseTap_RobustCheck_NoFaceAuth() {
when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(mPassedResult);
- when(mDoubleTapClassifier.classifyGesture()).thenReturn(mFalsedResult);
+ when(mDoubleTapClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mFalsedResult);
when(mHistoryTracker.falseBelief()).thenReturn(1.0);
mFalsingDataProvider.setJustUnlockedWithFace(false);
assertThat(mBrightLineFalsingManager.isFalseTap(true, 0)).isTrue();
@@ -188,11 +198,13 @@ public class BrightLineClassifierTest extends SysuiTestCase {
@Test
public void testIsFalseDoubleTap() {
- when(mDoubleTapClassifier.classifyGesture()).thenReturn(mPassedResult);
+ when(mDoubleTapClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mPassedResult);
assertThat(mBrightLineFalsingManager.isFalseDoubleTap()).isFalse();
- when(mDoubleTapClassifier.classifyGesture()).thenReturn(mFalsedResult);
+ when(mDoubleTapClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mFalsedResult);
assertThat(mBrightLineFalsingManager.isFalseDoubleTap()).isTrue();
}
@@ -243,13 +255,15 @@ public class BrightLineClassifierTest extends SysuiTestCase {
public void testNoFalsingUnlocked() {
when(mKeyguardStateController.isShowing()).thenReturn(false);
- when(mClassifierA.classifyGesture(anyDouble(), anyDouble())).thenReturn(mFalsedResult);
+ when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mFalsedResult);
assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(mFalsedResult);
assertThat(mBrightLineFalsingManager.isFalseTap(false, 0)).isFalse();
- when(mDoubleTapClassifier.classifyGesture()).thenReturn(mFalsedResult);
+ when(mDoubleTapClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()))
+ .thenReturn(mFalsedResult);
assertThat(mBrightLineFalsingManager.isFalseDoubleTap()).isFalse();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/ClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/ClassifierTest.java
index ca0a4aa2b04d..7d6ff34bb954 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/ClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/ClassifierTest.java
@@ -16,8 +16,6 @@
package com.android.systemui.classifier;
-import static com.android.systemui.classifier.Classifier.UNLOCK;
-
import android.util.DisplayMetrics;
import android.view.MotionEvent;
@@ -45,7 +43,6 @@ public class ClassifierTest extends LeakCheckedTest {
displayMetrics.heightPixels = 1000;
mFakeBatteryController = new FakeBatteryController(getLeakCheck());
mDataProvider = new FalsingDataProvider(displayMetrics, mFakeBatteryController);
- mDataProvider.setInteractionType(UNLOCK);
}
@After
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java
index dafc87133d39..14dcd58e40a2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java
@@ -16,11 +16,12 @@
package com.android.systemui.classifier;
+import static com.android.systemui.classifier.Classifier.GENERIC;
import static com.android.systemui.classifier.Classifier.LEFT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.when;
import android.testing.AndroidTestingRunner;
@@ -69,106 +70,104 @@ public class DiagonalClassifierTest extends ClassifierTest {
@Test
public void testPass_UnknownAngle() {
when(mDataProvider.getAngle()).thenReturn(Float.MAX_VALUE);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_VerticalSwipe() {
when(mDataProvider.getAngle()).thenReturn(UP_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(DOWN_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_MostlyVerticalSwipe() {
when(mDataProvider.getAngle()).thenReturn(UP_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(UP_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(DOWN_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(DOWN_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS * 2);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_BarelyVerticalSwipe() {
when(mDataProvider.getAngle()).thenReturn(
UP_IN_RADIANS - FORTY_FIVE_DEG_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(
UP_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(
DOWN_IN_RADIANS - FORTY_FIVE_DEG_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(
DOWN_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS * 2);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_HorizontalSwipe() {
when(mDataProvider.getAngle()).thenReturn(RIGHT_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(LEFT_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_MostlyHorizontalSwipe() {
when(mDataProvider.getAngle()).thenReturn(RIGHT_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(RIGHT_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(LEFT_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(LEFT_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_BarelyHorizontalSwipe() {
when(mDataProvider.getAngle()).thenReturn(
RIGHT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(
LEFT_IN_RADIANS - FORTY_FIVE_DEG_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(
LEFT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - 2 * FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.getAngle()).thenReturn(
RIGHT_IN_RADIANS - FORTY_FIVE_DEG_IN_RADIANS + 2 * FIVE_DEG_IN_RADIANS * 2);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testPass_AffordanceSwipe() {
- when(mDataProvider.getInteractionType()).thenReturn(LEFT_AFFORDANCE);
when(mDataProvider.getAngle()).thenReturn(
RIGHT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(LEFT_AFFORDANCE, 0.5, 0).isFalse()).isFalse();
- when(mDataProvider.getInteractionType()).thenReturn(RIGHT_AFFORDANCE);
when(mDataProvider.getAngle()).thenReturn(
LEFT_IN_RADIANS - FORTY_FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(RIGHT_AFFORDANCE, 0.5, 0).isFalse()).isFalse();
// This classifier may return false for other angles, but these are the only
// two that actually matter, as affordances generally only travel in these two directions.
@@ -182,37 +181,37 @@ public class DiagonalClassifierTest extends ClassifierTest {
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.getAngle()).thenReturn(
RIGHT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.getAngle()).thenReturn(
UP_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS + FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.getAngle()).thenReturn(
LEFT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.getAngle()).thenReturn(
DOWN_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS + FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
// Vertical Swipes
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.getAngle()).thenReturn(
RIGHT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS + FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.getAngle()).thenReturn(
UP_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.getAngle()).thenReturn(
LEFT_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS + FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.getAngle()).thenReturn(
DOWN_IN_RADIANS + FORTY_FIVE_DEG_IN_RADIANS - FIVE_DEG_IN_RADIANS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse()).isTrue();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
index f6c14240c8f4..db0619928635 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
@@ -16,8 +16,7 @@
package com.android.systemui.classifier;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
import android.testing.AndroidTestingRunner;
@@ -51,32 +50,32 @@ public class DistanceClassifierTest extends ClassifierTest {
@Test
public void testPass_noPointer() {
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
public void testPass_fling() {
mClassifier.onTouchEvent(appendDownEvent(1, 1));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendMoveEvent(1, 40));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendUpEvent(1, 80));
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
public void testFail_flingShort() {
mClassifier.onTouchEvent(appendDownEvent(1, 1));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendMoveEvent(1, 2));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendUpEvent(1, 10));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -84,26 +83,26 @@ public class DistanceClassifierTest extends ClassifierTest {
// These events, in testing, result in a fling that falls just short of the threshold.
mClassifier.onTouchEvent(appendDownEvent(1, 1, 1));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendMoveEvent(1, 15, 2));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendMoveEvent(1, 16, 3));
mClassifier.onTouchEvent(appendMoveEvent(1, 17, 300));
mClassifier.onTouchEvent(appendMoveEvent(1, 18, 301));
mClassifier.onTouchEvent(appendUpEvent(1, 19, 501));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
public void testPass_swipe() {
mClassifier.onTouchEvent(appendDownEvent(1, 1));
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mClassifier.onTouchEvent(appendMoveEvent(1, mDataProvider.getYdpi() * 3, 3));
mClassifier.onTouchEvent(appendUpEvent(1, mDataProvider.getYdpi() * 3, 300));
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java
index 4e1742497d90..f726cbead1f0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java
@@ -16,8 +16,8 @@
package com.android.systemui.classifier;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.Mockito.when;
@@ -52,7 +52,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
private SingleTapClassifier mSingleTapClassifier;
private DoubleTapClassifier mClassifier;
- private final FalsingClassifier.Result mFalsedResult = FalsingClassifier.Result.falsed(1, "");
+ private final FalsingClassifier.Result mFalsedResult =
+ FalsingClassifier.Result.falsed(1, getClass().getSimpleName(), "");
private final FalsingClassifier.Result mPassedResult = FalsingClassifier.Result.passed(1);
@Before
@@ -81,8 +82,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, TOUCH_SLOP, 1);
- boolean result = mClassifier.classifyGesture().isFalse();
- assertThat("Single tap recognized as a valid double tap", result, is(true));
+ boolean result = mClassifier.classifyGesture(0, 0.5, 1).isFalse();
+ assertThat(result).isTrue();
}
@Test
@@ -97,8 +98,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
addMotionEvent(2, 2, MotionEvent.ACTION_DOWN, TOUCH_SLOP, TOUCH_SLOP);
addMotionEvent(2, 3, MotionEvent.ACTION_UP, TOUCH_SLOP, TOUCH_SLOP);
- FalsingClassifier.Result result = mClassifier.classifyGesture();
- assertThat(result.getReason(), result.isFalse(), is(false));
+ FalsingClassifier.Result result = mClassifier.classifyGesture(0, 0.5, 1);
+ assertThat(result.isFalse()).isFalse();
}
@Test
@@ -113,8 +114,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
addMotionEvent(2, 2, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(2, 3, MotionEvent.ACTION_UP, 1, 1);
- boolean result = mClassifier.classifyGesture().isFalse();
- assertThat("Bad first touch allowed", result, is(true));
+ boolean result = mClassifier.classifyGesture(0, 0.5, 1).isFalse();
+ assertThat(result).isTrue();
}
@Test
@@ -129,8 +130,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
addMotionEvent(2, 2, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(2, 3, MotionEvent.ACTION_UP, 1, 1);
- boolean result = mClassifier.classifyGesture().isFalse();
- assertThat("Bad second touch allowed", result, is(true));
+ boolean result = mClassifier.classifyGesture(0, 0.5, 1).isFalse();
+ assertThat(result).isTrue();
}
@Test
@@ -145,8 +146,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
addMotionEvent(2, 2, MotionEvent.ACTION_DOWN, TOUCH_SLOP + 1, TOUCH_SLOP);
addMotionEvent(2, 3, MotionEvent.ACTION_UP, TOUCH_SLOP, TOUCH_SLOP + 1);
- boolean result = mClassifier.classifyGesture().isFalse();
- assertThat("Sloppy second touch allowed", result, is(true));
+ boolean result = mClassifier.classifyGesture(0, 0.5, 1).isFalse();
+ assertThat(result).isTrue();
}
@Test
@@ -163,8 +164,8 @@ public class DoubleTapClassifierTest extends ClassifierTest {
addMotionEvent(DOUBLE_TAP_TIMEOUT_MS + 1, DOUBLE_TAP_TIMEOUT_MS + 2,
MotionEvent.ACTION_UP, 1, 1);
- boolean result = mClassifier.classifyGesture().isFalse();
- assertThat("Slow second tap allowed", result, is(true));
+ boolean result = mClassifier.classifyGesture(0, 0.5, 1).isFalse();
+ assertThat(result).isTrue();
}
private void addMotionEvent(long downMs, long eventMs, int action, int x, int y) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/HistoryTrackerTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/HistoryTrackerTest.java
index bb7545f93b4b..38355c74a4a7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/HistoryTrackerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/HistoryTrackerTest.java
@@ -121,7 +121,8 @@ public class HistoryTrackerTest extends SysuiTestCase {
private void addResult(boolean falsed, double confidence) {
mHistoryTracker.addResults(Collections.singletonList(
falsed
- ? FalsingClassifier.Result.falsed(confidence, "test")
+ ? FalsingClassifier.Result.falsed(
+ confidence, getClass().getSimpleName(), "test")
: FalsingClassifier.Result.passed(confidence)),
mSystemClock.uptimeMillis());
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java
index 76802f4de14f..b8ea062eedc8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java
@@ -18,8 +18,10 @@ package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyDouble;
+import static org.mockito.ArgumentMatchers.anyInt;
import android.testing.AndroidTestingRunner;
import android.view.MotionEvent;
@@ -50,13 +52,15 @@ public class PointerCountClassifierTest extends ClassifierTest {
@Test
public void testPass_noPointer() {
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()).isFalse())
+ .isFalse();
}
@Test
public void testPass_singlePointer() {
mClassifier.onTouchEvent(appendDownEvent(1, 1));
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(anyInt(), anyDouble(), anyDouble()).isFalse())
+ .isFalse();
}
@Test
@@ -72,7 +76,8 @@ public class PointerCountClassifierTest extends ClassifierTest {
0, 0);
mClassifier.onTouchEvent(motionEvent);
motionEvent.recycle();
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(Classifier.GENERIC, 0.5, 1).isFalse())
+ .isTrue();
}
@Test
@@ -88,7 +93,6 @@ public class PointerCountClassifierTest extends ClassifierTest {
0, 0);
mClassifier.onTouchEvent(motionEvent);
motionEvent.recycle();
- getDataProvider().setInteractionType(QUICK_SETTINGS);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(QUICK_SETTINGS, 0.5, 0).isFalse()).isFalse();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java
index ba8ca9abc2d7..52423bdac85f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java
@@ -51,14 +51,13 @@ public class ProximityClassifierTest extends ClassifierTest {
private FalsingClassifier mClassifier;
private final FalsingClassifier.Result mFalsedResult =
- FalsingClassifier.Result.falsed(1, "test");
+ FalsingClassifier.Result.falsed(1, getClass().getSimpleName() , "test");
private final FalsingClassifier.Result mPassedResult = FalsingClassifier.Result.passed(1);
@Before
public void setup() {
super.setup();
MockitoAnnotations.initMocks(this);
- when(mDataProvider.getInteractionType()).thenReturn(GENERIC);
when(mDistanceClassifier.isLongSwipe()).thenReturn(mFalsedResult);
mClassifier = new ProximityClassifier(
mDistanceClassifier, mDataProvider, new DeviceConfigProxyFake());
@@ -73,7 +72,7 @@ public class ProximityClassifierTest extends ClassifierTest {
public void testPass_uncovered() {
touchDown();
touchUp(10);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse(), is(false));
}
@Test
@@ -82,17 +81,16 @@ public class ProximityClassifierTest extends ClassifierTest {
mClassifier.onProximityEvent(createSensorEvent(true, 1));
mClassifier.onProximityEvent(createSensorEvent(false, 2));
touchUp(20);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse(), is(false));
}
@Test
public void testPass_quickSettings() {
touchDown();
- when(mDataProvider.getInteractionType()).thenReturn(QUICK_SETTINGS);
mClassifier.onProximityEvent(createSensorEvent(true, 1));
mClassifier.onProximityEvent(createSensorEvent(false, 11));
touchUp(10);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(QUICK_SETTINGS, 0.5, 0).isFalse(), is(false));
}
@Test
@@ -101,7 +99,7 @@ public class ProximityClassifierTest extends ClassifierTest {
mClassifier.onProximityEvent(createSensorEvent(true, 1));
mClassifier.onProximityEvent(createSensorEvent(false, 11));
touchUp(10);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse(), is(true));
}
@Test
@@ -112,7 +110,7 @@ public class ProximityClassifierTest extends ClassifierTest {
mClassifier.onProximityEvent(createSensorEvent(true, 96));
mClassifier.onProximityEvent(createSensorEvent(false, 100));
touchUp(100);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse(), is(true));
}
@Test
@@ -122,7 +120,7 @@ public class ProximityClassifierTest extends ClassifierTest {
mClassifier.onProximityEvent(createSensorEvent(false, 11));
touchUp(10);
when(mDistanceClassifier.isLongSwipe()).thenReturn(mPassedResult);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(GENERIC, 0.5, 0).isFalse(), is(false));
}
private void touchDown() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java
index 62c876f99a15..15241073d191 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java
@@ -16,8 +16,8 @@
package com.android.systemui.classifier;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.when;
import android.testing.AndroidTestingRunner;
@@ -70,14 +70,14 @@ public class SingleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, TOUCH_SLOP, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
mMotionEvents.clear();
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, -TOUCH_SLOP + 2, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@@ -86,14 +86,14 @@ public class SingleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, 1, TOUCH_SLOP);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
mMotionEvents.clear();
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, 1, -TOUCH_SLOP + 2);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@@ -102,14 +102,14 @@ public class SingleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, TOUCH_SLOP + 1, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mMotionEvents.clear();
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, -TOUCH_SLOP - 1, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@@ -118,14 +118,14 @@ public class SingleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, 1, TOUCH_SLOP + 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
mMotionEvents.clear();
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, 1, -TOUCH_SLOP - 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -134,7 +134,7 @@ public class SingleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 1, MotionEvent.ACTION_MOVE, 1, TOUCH_SLOP + 1);
addMotionEvent(0, 2, MotionEvent.ACTION_UP, 1, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -142,12 +142,12 @@ public class SingleTapClassifierTest extends ClassifierTest {
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, 1, 1);
- assertThat(mClassifier.isTap(mMotionEvents).isFalse(), is(false));
+ assertThat(mClassifier.isTap(mMotionEvents).isFalse()).isFalse();
addMotionEvent(0, 0, MotionEvent.ACTION_DOWN, 1, 1);
addMotionEvent(0, 1, MotionEvent.ACTION_UP, 1, TOUCH_SLOP + 1);
- assertThat(mClassifier.isTap(mMotionEvents).isFalse(), is(true));
+ assertThat(mClassifier.isTap(mMotionEvents).isFalse()).isTrue();
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
index 4a896a8574b9..068a1e553cbf 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
@@ -25,8 +25,8 @@ import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.UNLOCK;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.when;
import android.testing.AndroidTestingRunner;
@@ -56,248 +56,225 @@ public class TypeClassifierTest extends ClassifierTest {
@Test
public void testPass_QuickSettings() {
- when(mDataProvider.getInteractionType()).thenReturn(QUICK_SETTINGS);
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(false); // right should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(QUICK_SETTINGS, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(QUICK_SETTINGS, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_QuickSettings() {
- when(mDataProvider.getInteractionType()).thenReturn(QUICK_SETTINGS);
-
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(QUICK_SETTINGS, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(QUICK_SETTINGS, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_PulseExpand() {
- when(mDataProvider.getInteractionType()).thenReturn(PULSE_EXPAND);
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(false); // right should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(PULSE_EXPAND, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(PULSE_EXPAND, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_PulseExpand() {
- when(mDataProvider.getInteractionType()).thenReturn(PULSE_EXPAND);
-
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(PULSE_EXPAND, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(PULSE_EXPAND, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_NotificationDragDown() {
- when(mDataProvider.getInteractionType()).thenReturn(NOTIFICATION_DRAG_DOWN);
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(false); // right should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DRAG_DOWN, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DRAG_DOWN, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_NotificationDragDown() {
- when(mDataProvider.getInteractionType()).thenReturn(NOTIFICATION_DRAG_DOWN);
-
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DRAG_DOWN, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DRAG_DOWN, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_NotificationDismiss() {
- when(mDataProvider.getInteractionType()).thenReturn(NOTIFICATION_DISMISS);
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false); // up and right should cause no effect.
when(mDataProvider.isRight()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_NotificationDismiss() {
- when(mDataProvider.getInteractionType()).thenReturn(NOTIFICATION_DISMISS);
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false); // up and right should cause no effect.
when(mDataProvider.isRight()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(NOTIFICATION_DISMISS, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_Unlock() {
- when(mDataProvider.getInteractionType()).thenReturn(UNLOCK);
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(false); // right should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(UNLOCK, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(UNLOCK, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_Unlock() {
- when(mDataProvider.getInteractionType()).thenReturn(UNLOCK);
-
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(UNLOCK, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(UNLOCK, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(UNLOCK, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_BouncerUnlock() {
- when(mDataProvider.getInteractionType()).thenReturn(BOUNCER_UNLOCK);
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(false); // right should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(BOUNCER_UNLOCK, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(BOUNCER_UNLOCK, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_BouncerUnlock() {
- when(mDataProvider.getInteractionType()).thenReturn(BOUNCER_UNLOCK);
-
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(BOUNCER_UNLOCK, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(BOUNCER_UNLOCK, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isVertical()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(BOUNCER_UNLOCK, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_LeftAffordance() {
- when(mDataProvider.getInteractionType()).thenReturn(LEFT_AFFORDANCE);
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(true);
when(mDataProvider.isVertical()).thenReturn(false); // vertical should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(LEFT_AFFORDANCE, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isVertical()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(LEFT_AFFORDANCE, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_LeftAffordance() {
- when(mDataProvider.getInteractionType()).thenReturn(LEFT_AFFORDANCE);
-
when(mDataProvider.isRight()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(LEFT_AFFORDANCE, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isRight()).thenReturn(true);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(LEFT_AFFORDANCE, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isRight()).thenReturn(false);
when(mDataProvider.isUp()).thenReturn(false);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(LEFT_AFFORDANCE, 0.5, 0).isFalse()).isTrue();
}
@Test
public void testPass_RightAffordance() {
- when(mDataProvider.getInteractionType()).thenReturn(RIGHT_AFFORDANCE);
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(false);
when(mDataProvider.isVertical()).thenReturn(false); // vertical should cause no effect.
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(RIGHT_AFFORDANCE, 0.5, 0).isFalse()).isFalse();
when(mDataProvider.isVertical()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(RIGHT_AFFORDANCE, 0.5, 0).isFalse()).isFalse();
}
@Test
public void testFalse_RightAffordance() {
- when(mDataProvider.getInteractionType()).thenReturn(RIGHT_AFFORDANCE);
-
when(mDataProvider.isUp()).thenReturn(true);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(RIGHT_AFFORDANCE, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(RIGHT_AFFORDANCE, 0.5, 0).isFalse()).isTrue();
when(mDataProvider.isUp()).thenReturn(false);
when(mDataProvider.isRight()).thenReturn(true);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(RIGHT_AFFORDANCE, 0.5, 0).isFalse()).isTrue();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java
index 09bee128c673..e004c30eae89 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java
@@ -16,8 +16,7 @@
package com.android.systemui.classifier;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static com.google.common.truth.Truth.assertThat;
import android.testing.AndroidTestingRunner;
@@ -51,11 +50,11 @@ public class ZigZagClassifierTest extends ClassifierTest {
@Test
public void testPass_fewTouchesVertical() {
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
appendMoveEvent(0, 0);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
appendMoveEvent(0, 100);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
@@ -63,16 +62,16 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(0, 100);
appendMoveEvent(0, 200);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
public void testPass_fewTouchesHorizontal() {
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
appendMoveEvent(0, 0);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
appendMoveEvent(100, 0);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
@@ -80,7 +79,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(100, 0);
appendMoveEvent(200, 0);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@@ -89,7 +88,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(0, 100);
appendMoveEvent(0, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -97,7 +96,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(100, 0);
appendMoveEvent(1, 0);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -105,7 +104,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(10, 10);
appendMoveEvent(20, 20);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
@@ -115,7 +114,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(5, 100);
appendMoveEvent(-5, 200);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
@@ -125,7 +124,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(100, 5);
appendMoveEvent(200, -5);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
}
@Test
@@ -135,7 +134,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(6, 10);
appendMoveEvent(-6, 20);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -145,7 +144,7 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(10, 5);
appendMoveEvent(20, -5);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -153,25 +152,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(100, 5);
appendMoveEvent(200, 10);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(100, 0);
appendMoveEvent(200, 10);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(100, -10);
appendMoveEvent(200, 10);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(100, -10);
appendMoveEvent(200, 50);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -179,25 +178,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(10, 50);
appendMoveEvent(8, 100);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(1, 800);
appendMoveEvent(2, 900);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-10, 600);
appendMoveEvent(30, 700);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(40, 100);
appendMoveEvent(0, 101);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -205,25 +204,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(-10, 50);
appendMoveEvent(-24, 100);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-20, 800);
appendMoveEvent(-20, 900);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(30, 600);
appendMoveEvent(-10, 700);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-80, 100);
appendMoveEvent(-10, 101);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -231,25 +230,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(-120, 10);
appendMoveEvent(-200, 20);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-20, 8);
appendMoveEvent(-40, 2);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-500, -2);
appendMoveEvent(-600, 70);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-80, 100);
appendMoveEvent(-100, 1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -257,25 +256,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(-120, -10);
appendMoveEvent(-200, -20);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-20, -8);
appendMoveEvent(-40, -2);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-500, 2);
appendMoveEvent(-600, -70);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-80, -100);
appendMoveEvent(-100, -1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -283,25 +282,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(-12, -20);
appendMoveEvent(-20, -40);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-20, -130);
appendMoveEvent(-40, -260);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(1, -100);
appendMoveEvent(-6, -200);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-80, -100);
appendMoveEvent(-10, -110);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -309,25 +308,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(12, -20);
appendMoveEvent(20, -40);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(20, -130);
appendMoveEvent(40, -260);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(-1, -100);
appendMoveEvent(6, -200);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(80, -100);
appendMoveEvent(10, -110);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test
@@ -335,25 +334,25 @@ public class ZigZagClassifierTest extends ClassifierTest {
appendMoveEvent(0, 0);
appendMoveEvent(120, -20);
appendMoveEvent(200, -40);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(200, -13);
appendMoveEvent(400, -30);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(100, 10);
appendMoveEvent(600, -20);
- assertThat(mClassifier.classifyGesture().isFalse(), is(false));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isFalse();
resetDataProvider();
appendMoveEvent(0, 0);
appendMoveEvent(80, -100);
appendMoveEvent(100, -1);
- assertThat(mClassifier.classifyGesture().isFalse(), is(true));
+ assertThat(mClassifier.classifyGesture(0, 0.5, 1).isFalse()).isTrue();
}
@Test