summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java)54
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/DiagonalClassifier.java)8
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/DistanceClassifier.java)8
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/DoubleTapClassifier.java)14
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/FalsingClassifier.java)6
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/FalsingModule.java53
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/PointerCountClassifier.java)9
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/ProximityClassifier.java)10
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/SingleTapClassifier.java)13
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/TimeLimitedMotionEventBuffer.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/TimeLimitedMotionEventBuffer.java)4
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/TypeClassifier.java)7
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java (renamed from packages/SystemUI/src/com/android/systemui/classifier/brightline/ZigZagClassifier.java)8
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/qualifiers/TestHarness.java34
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java164
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java)6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java)6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DoubleTapClassifierTest.java)7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java)6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java)6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/SingleTapClassifierTest.java)7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/TimeLimitedMotionEventBufferTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TimeLimitedMotionEventBufferTest.java)4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java)7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java (renamed from packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java)5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java7
27 files changed, 355 insertions, 110 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
index 70a57cc8bd2a..e24a513437ea 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/BrightLineFalsingManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,44 +14,39 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.FalsingManagerProxy.FALSING_SUCCESS;
+import static com.android.systemui.classifier.FalsingModule.BRIGHT_LINE_GESTURE_CLASSIFERS;
-import android.app.ActivityManager;
-import android.content.res.Resources;
import android.net.Uri;
import android.os.Build;
import android.util.IndentingPrintWriter;
import android.util.Log;
import android.view.MotionEvent;
-import android.view.ViewConfiguration;
import androidx.annotation.NonNull;
import com.android.internal.logging.MetricsLogger;
-import com.android.systemui.R;
-import com.android.systemui.classifier.Classifier;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.classifier.FalsingDataProvider.SessionListener;
-import com.android.systemui.dagger.qualifiers.Main;
+import com.android.systemui.dagger.qualifiers.TestHarness;
import com.android.systemui.dock.DockManager;
import com.android.systemui.plugins.FalsingManager;
-import com.android.systemui.statusbar.phone.NotificationTapHelper;
-import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.sensors.ThresholdSensor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayDeque;
-import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Queue;
+import java.util.Set;
import java.util.StringJoiner;
import java.util.stream.Collectors;
import javax.inject.Inject;
+import javax.inject.Named;
/**
* FalsingManager designed to make clear why a touch was rejected.
@@ -68,6 +63,7 @@ public class BrightLineFalsingManager implements FalsingManager {
private final DockManager mDockManager;
private final SingleTapClassifier mSingleTapClassifier;
private final DoubleTapClassifier mDoubleTapClassifier;
+ private final boolean mTestHarness;
private final MetricsLogger mMetricsLogger;
private int mIsFalseTouchCalls;
private static final Queue<String> RECENT_INFO_LOG =
@@ -75,7 +71,7 @@ public class BrightLineFalsingManager implements FalsingManager {
private static final Queue<DebugSwipeRecord> RECENT_SWIPES =
new ArrayDeque<>(RECENT_SWIPE_LOG_SIZE + 1);
- private final List<FalsingClassifier> mClassifiers;
+ private final Collection<FalsingClassifier> mClassifiers;
private final SessionListener mSessionListener = new SessionListener() {
@Override
@@ -93,29 +89,17 @@ public class BrightLineFalsingManager implements FalsingManager {
@Inject
public BrightLineFalsingManager(FalsingDataProvider falsingDataProvider,
- DeviceConfigProxy deviceConfigProxy, @Main Resources resources,
- ViewConfiguration viewConfiguration, DockManager dockManager) {
+ DockManager dockManager, MetricsLogger metricsLogger,
+ @Named(BRIGHT_LINE_GESTURE_CLASSIFERS) Set<FalsingClassifier> classifiers,
+ SingleTapClassifier singleTapClassifier, DoubleTapClassifier doubleTapClassifier,
+ @TestHarness boolean testHarness) {
mDataProvider = falsingDataProvider;
mDockManager = dockManager;
-
- mMetricsLogger = new MetricsLogger();
- mClassifiers = new ArrayList<>();
- DistanceClassifier distanceClassifier =
- new DistanceClassifier(mDataProvider, deviceConfigProxy);
- ProximityClassifier proximityClassifier =
- new ProximityClassifier(distanceClassifier, mDataProvider, deviceConfigProxy);
- mClassifiers.add(new PointerCountClassifier(mDataProvider));
- mClassifiers.add(new TypeClassifier(mDataProvider));
- mClassifiers.add(new DiagonalClassifier(mDataProvider, deviceConfigProxy));
- mClassifiers.add(distanceClassifier);
- mClassifiers.add(proximityClassifier);
- mClassifiers.add(new ZigZagClassifier(mDataProvider, deviceConfigProxy));
-
- mSingleTapClassifier = new SingleTapClassifier(
- mDataProvider, viewConfiguration.getScaledTouchSlop());
- mDoubleTapClassifier = new DoubleTapClassifier(mDataProvider, mSingleTapClassifier,
- resources.getDimension(R.dimen.double_tap_slop),
- NotificationTapHelper.DOUBLE_TAP_TIMEOUT_MS);
+ mMetricsLogger = metricsLogger;
+ mClassifiers = classifiers;
+ mSingleTapClassifier = singleTapClassifier;
+ mDoubleTapClassifier = doubleTapClassifier;
+ mTestHarness = testHarness;
mDataProvider.addSessionListener(mSessionListener);
}
@@ -132,7 +116,7 @@ public class BrightLineFalsingManager implements FalsingManager {
return mPreviousResult;
}
- mPreviousResult = !ActivityManager.isRunningInUserTestHarness()
+ mPreviousResult = !mTestHarness
&& !mDataProvider.isJustUnlockedWithFace() && !mDockManager.isDocked()
&& mClassifiers.stream().anyMatch(falsingClassifier -> {
boolean result = falsingClassifier.isFalseTouch();
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/DiagonalClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java
index a73ccf575249..92dd8b74e959 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/DiagonalClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DiagonalClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DIAGONAL_HORIZONTAL_ANGLE_RANGE;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DIAGONAL_VERTICAL_ANGLE_RANGE;
@@ -23,11 +23,12 @@ import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
import android.provider.DeviceConfig;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxy;
import java.util.Locale;
+import javax.inject.Inject;
+
/**
* False on swipes that are too close to 45 degrees.
*
@@ -47,6 +48,7 @@ class DiagonalClassifier extends FalsingClassifier {
private final float mHorizontalAngleRange;
private final float mVerticalAngleRange;
+ @Inject
DiagonalClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) {
super(dataProvider);
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/DistanceClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
index 524d524f38b6..50d55f6f6028 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/DistanceClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DISTANCE_HORIZONTAL_FLING_THRESHOLD_IN;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_DISTANCE_HORIZONTAL_SWIPE_THRESHOLD_IN;
@@ -27,12 +27,13 @@ import android.provider.DeviceConfig;
import android.view.MotionEvent;
import android.view.VelocityTracker;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxy;
import java.util.List;
import java.util.Locale;
+import javax.inject.Inject;
+
/**
* Ensure that the swipe + momentum covers a minimum distance.
*/
@@ -54,6 +55,7 @@ class DistanceClassifier extends FalsingClassifier {
private boolean mDistanceDirty;
private DistanceVectors mCachedDistance;
+ @Inject
DistanceClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) {
super(dataProvider);
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/DoubleTapClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java
index a27ea6172414..1c8f4208edba 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/DoubleTapClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DoubleTapClassifier.java
@@ -14,15 +14,19 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
-import android.view.MotionEvent;
+import static com.android.systemui.classifier.FalsingModule.DOUBLE_TAP_TIMEOUT_MS;
+import static com.android.systemui.classifier.FalsingModule.DOUBLE_TAP_TOUCH_SLOP;
-import com.android.systemui.classifier.FalsingDataProvider;
+import android.view.MotionEvent;
import java.util.List;
import java.util.Queue;
+import javax.inject.Inject;
+import javax.inject.Named;
+
/**
* Returns a false touch if the most two recent gestures are not taps or are too far apart.
*/
@@ -34,8 +38,10 @@ public class DoubleTapClassifier extends FalsingClassifier {
private StringBuilder mReason = new StringBuilder();
+ @Inject
DoubleTapClassifier(FalsingDataProvider dataProvider, SingleTapClassifier singleTapClassifier,
- float doubleTapSlop, long doubleTapTimeMs) {
+ @Named(DOUBLE_TAP_TOUCH_SLOP) float doubleTapSlop,
+ @Named(DOUBLE_TAP_TIMEOUT_MS) long doubleTapTimeMs) {
super(dataProvider);
mSingleTapClassifier = singleTapClassifier;
mDoubleTapSlop = doubleTapSlop;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/FalsingClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java
index 568dc432729f..82575c3e639e 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/FalsingClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,12 +14,10 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import android.view.MotionEvent;
-import com.android.systemui.classifier.Classifier;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.sensors.ProximitySensor;
import java.util.List;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
index b29871c1c3d0..009b311f2363 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingDataProvider.java
@@ -21,9 +21,6 @@ import android.view.MotionEvent;
import android.view.MotionEvent.PointerCoords;
import android.view.MotionEvent.PointerProperties;
-import com.android.systemui.classifier.brightline.BrightLineFalsingManager;
-import com.android.systemui.classifier.brightline.FalsingClassifier;
-import com.android.systemui.classifier.brightline.TimeLimitedMotionEventBuffer;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.util.time.SystemClock;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
index 74629411c13d..d4f58c324d39 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
@@ -24,7 +24,6 @@ import android.view.MotionEvent;
import androidx.annotation.NonNull;
import com.android.systemui.Dumpable;
-import com.android.systemui.classifier.brightline.BrightLineFalsingManager;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingModule.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingModule.java
index 937bcbaa6222..7b7f17e1568b 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingModule.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingModule.java
@@ -16,16 +16,69 @@
package com.android.systemui.classifier;
+import android.content.res.Resources;
+import android.view.ViewConfiguration;
+
+import com.android.systemui.R;
import com.android.systemui.dagger.SysUISingleton;
+import com.android.systemui.dagger.qualifiers.Main;
+import com.android.systemui.statusbar.phone.NotificationTapHelper;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.inject.Named;
import dagger.Binds;
import dagger.Module;
+import dagger.Provides;
+import dagger.multibindings.ElementsIntoSet;
/** Dagger Module for Falsing. */
@Module
public interface FalsingModule {
+ String BRIGHT_LINE_GESTURE_CLASSIFERS = "bright_line_gesture_classifiers";
+ String SINGLE_TAP_TOUCH_SLOP = "falsing_single_tap_touch_slop";
+ String DOUBLE_TAP_TOUCH_SLOP = "falsing_double_tap_touch_slop";
+ String DOUBLE_TAP_TIMEOUT_MS = "falsing_double_tap_timeout_ms";
+
/** */
@Binds
@SysUISingleton
FalsingCollector bindsFalsingCollector(FalsingCollectorImpl impl);
+
+ /** */
+ @Provides
+ @ElementsIntoSet
+ @Named(BRIGHT_LINE_GESTURE_CLASSIFERS)
+ static Set<FalsingClassifier> providesBrightLineGestureClassifiers(
+ DistanceClassifier distanceClassifier, ProximityClassifier proximityClassifier,
+ PointerCountClassifier pointerCountClassifier, TypeClassifier typeClassifier,
+ DiagonalClassifier diagonalClassifier, ZigZagClassifier zigZagClassifier) {
+ return new HashSet<>(Arrays.asList(
+ pointerCountClassifier, typeClassifier, diagonalClassifier, distanceClassifier,
+ proximityClassifier, zigZagClassifier));
+ }
+
+ /** */
+ @Provides
+ @Named(DOUBLE_TAP_TIMEOUT_MS)
+ static long providesDoubleTapTimeoutMs() {
+ return NotificationTapHelper.DOUBLE_TAP_TIMEOUT_MS;
+ }
+
+ /** */
+ @Provides
+ @Named(DOUBLE_TAP_TOUCH_SLOP)
+ static float providesDoubleTapTouchSlop(@Main Resources resources) {
+ return resources.getDimension(R.dimen.double_tap_slop);
+ }
+
+ /** */
+ @Provides
+ @Named(SINGLE_TAP_TOUCH_SLOP)
+ static float providesSingleTapTouchSlop(ViewConfiguration viewConfiguration) {
+ return viewConfiguration.getScaledTouchSlop();
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/PointerCountClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java
index dd5d8a8f557b..0565165e1e8d 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/PointerCountClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/PointerCountClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.NOTIFICATION_DRAG_DOWN;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import android.view.MotionEvent;
-import com.android.systemui.classifier.FalsingDataProvider;
-
import java.util.Locale;
+import javax.inject.Inject;
+
/**
* False touch if more than one finger touches the screen.
*
@@ -37,6 +37,7 @@ class PointerCountClassifier extends FalsingClassifier {
private static final int MAX_ALLOWED_POINTERS_SWIPE_DOWN = 2;
private int mMaxPointerCount;
+ @Inject
PointerCountClassifier(FalsingDataProvider dataProvider) {
super(dataProvider);
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/ProximityClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
index 3551c241e71e..6e73fc06de4c 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/ProximityClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_PROXIMITY_PERCENT_COVERED_THRESHOLD;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
@@ -22,12 +22,13 @@ import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import android.provider.DeviceConfig;
import android.view.MotionEvent;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.sensors.ProximitySensor;
import java.util.Locale;
+import javax.inject.Inject;
+
/**
* False touch if proximity sensor is covered for more than a certain percentage of the gesture.
@@ -47,10 +48,11 @@ class ProximityClassifier extends FalsingClassifier {
private long mNearDurationNs;
private float mPercentNear;
+ @Inject
ProximityClassifier(DistanceClassifier distanceClassifier,
FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) {
super(dataProvider);
- this.mDistanceClassifier = distanceClassifier;
+ mDistanceClassifier = distanceClassifier;
mPercentCoveredThreshold = deviceConfigProxy.getFloat(
DeviceConfig.NAMESPACE_SYSTEMUI,
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/SingleTapClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java
index 8c7648149e44..6b7a1413bc74 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/SingleTapClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/SingleTapClassifier.java
@@ -14,14 +14,17 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
-import android.view.MotionEvent;
+import static com.android.systemui.classifier.FalsingModule.SINGLE_TAP_TOUCH_SLOP;
-import com.android.systemui.classifier.FalsingDataProvider;
+import android.view.MotionEvent;
import java.util.List;
+import javax.inject.Inject;
+import javax.inject.Named;
+
/**
* Falsing classifier that accepts or rejects a single gesture as a tap.
*/
@@ -29,7 +32,9 @@ public class SingleTapClassifier extends FalsingClassifier {
private final float mTouchSlop;
private String mReason;
- SingleTapClassifier(FalsingDataProvider dataProvider, float touchSlop) {
+ @Inject
+ SingleTapClassifier(FalsingDataProvider dataProvider,
+ @Named(SINGLE_TAP_TOUCH_SLOP) float touchSlop) {
super(dataProvider);
mTouchSlop = touchSlop;
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/TimeLimitedMotionEventBuffer.java b/packages/SystemUI/src/com/android/systemui/classifier/TimeLimitedMotionEventBuffer.java
index 7430a1eda920..7969b4e83ac0 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/TimeLimitedMotionEventBuffer.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/TimeLimitedMotionEventBuffer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import android.view.MotionEvent;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/TypeClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
index f62871f383b3..711a0fc0f478 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/TypeClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.BOUNCER_UNLOCK;
@@ -26,12 +26,13 @@ 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 com.android.systemui.classifier.FalsingDataProvider;
+import javax.inject.Inject;
/**
* Ensure that the swipe direction generally matches that of the interaction type.
*/
public class TypeClassifier extends FalsingClassifier {
+ @Inject
TypeClassifier(FalsingDataProvider dataProvider) {
super(dataProvider);
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/ZigZagClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java
index 9ca77d364bc4..383dda498b49 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/ZigZagClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/ZigZagClassifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_ZIGZAG_X_PRIMARY_DEVIANCE;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_ZIGZAG_X_SECONDARY_DEVIANCE;
@@ -25,13 +25,14 @@ import android.graphics.Point;
import android.provider.DeviceConfig;
import android.view.MotionEvent;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxy;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import javax.inject.Inject;
+
/**
* Penalizes gestures that change direction in either the x or y too much.
*/
@@ -56,6 +57,7 @@ class ZigZagClassifier extends FalsingClassifier {
private float mLastMaxXDeviance;
private float mLastMaxYDeviance;
+ @Inject
ZigZagClassifier(FalsingDataProvider dataProvider, DeviceConfigProxy deviceConfigProxy) {
super(dataProvider);
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java b/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java
index 53383d65e379..d683a74aedcc 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/GlobalModule.java
@@ -16,11 +16,13 @@
package com.android.systemui.dagger;
+import android.app.ActivityManager;
import android.content.Context;
import android.util.DisplayMetrics;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl;
+import com.android.systemui.dagger.qualifiers.TestHarness;
import com.android.systemui.util.concurrency.GlobalConcurrencyModule;
import com.android.wm.shell.animation.FlingAnimationUtils;
@@ -66,4 +68,10 @@ public class GlobalModule {
static UiEventLogger provideUiEventLogger() {
return new UiEventLoggerImpl();
}
+
+ @Provides
+ @TestHarness
+ static boolean provideIsTestHarness() {
+ return ActivityManager.isRunningInUserTestHarness();
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/qualifiers/TestHarness.java b/packages/SystemUI/src/com/android/systemui/dagger/qualifiers/TestHarness.java
new file mode 100644
index 000000000000..f68ab188c93c
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/dagger/qualifiers/TestHarness.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.dagger.qualifiers;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+
+import javax.inject.Qualifier;
+
+
+/**
+ * An annotation for injecting whether or not we are running in a test environment.
+ */
+@Qualifier
+@Documented
+@Retention(RUNTIME)
+public @interface TestHarness {
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
new file mode 100644
index 000000000000..19f0a15c8936
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/BrightLineClassifierTest.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.classifier;
+
+import static com.android.systemui.util.mockito.KotlinMockitoHelpersKt.any;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.testing.AndroidTestingRunner;
+import android.view.MotionEvent;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.testing.FakeMetricsLogger;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.dock.DockManagerFake;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+public class BrightLineClassifierTest extends SysuiTestCase {
+ private BrightLineFalsingManager mBrightLineFalsingManager;
+ @Mock
+ private FalsingDataProvider mFalsingDataProvider;
+ private final DockManagerFake mDockManager = new DockManagerFake();
+ private final MetricsLogger mMetricsLogger = new FakeMetricsLogger();
+ private final Set<FalsingClassifier> mClassifiers = new HashSet<>();
+ @Mock
+ private SingleTapClassifier mSingleTapClassfier;
+ @Mock
+ private DoubleTapClassifier mDoubleTapClassifier;
+ @Mock
+ private FalsingClassifier mClassifierA;
+ @Mock
+ private FalsingClassifier mClassifierB;
+ private final List<MotionEvent> mMotionEventList = new ArrayList<>();
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mClassifiers.add(mClassifierA);
+ mClassifiers.add(mClassifierB);
+ when(mFalsingDataProvider.isDirty()).thenReturn(true);
+ when(mFalsingDataProvider.getRecentMotionEvents()).thenReturn(mMotionEventList);
+ mBrightLineFalsingManager = new BrightLineFalsingManager(mFalsingDataProvider, mDockManager,
+ mMetricsLogger, mClassifiers, mSingleTapClassfier, mDoubleTapClassifier, false);
+ }
+
+ @Test
+ public void testRegisterSessionListener() {
+ verify(mFalsingDataProvider).addSessionListener(
+ any(FalsingDataProvider.SessionListener.class));
+
+ mBrightLineFalsingManager.cleanup();
+ verify(mFalsingDataProvider).removeSessionListener(
+ any(FalsingDataProvider.SessionListener.class));
+ }
+
+ @Test
+ public void testIsFalseTouch_NoClassifiers() {
+ mClassifiers.clear();
+
+ assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
+ }
+
+ @Test
+ public void testIsFalseTouch_ClassffiersPass() {
+ assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
+ }
+
+ @Test
+ public void testIsFalseTouch_ClassifierARejects() {
+ when(mClassifierA.isFalseTouch()).thenReturn(true);
+ assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isTrue();
+ }
+
+ @Test
+ public void testIsFalseTouch_ClassifierBRejects() {
+ when(mClassifierB.isFalseTouch()).thenReturn(true);
+ assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isTrue();
+ }
+
+ @Test
+ public void testIsFalseTouch_FaceAuth() {
+ // Even when the classifiers report a false, we should allow.
+ when(mClassifierA.isFalseTouch()).thenReturn(true);
+ when(mFalsingDataProvider.isJustUnlockedWithFace()).thenReturn(true);
+
+ assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
+ }
+
+ @Test
+ public void testIsFalseTouch_Docked() {
+ // Even when the classifiers report a false, we should allow.
+ when(mClassifierA.isFalseTouch()).thenReturn(true);
+ mDockManager.setIsDocked(true);
+
+ assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isFalse();
+ }
+
+ @Test
+ public void testIsFalseTap_BasicCheck() {
+ when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(false);
+
+ assertThat(mBrightLineFalsingManager.isFalseTap(false)).isTrue();
+
+ when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(true);
+
+ assertThat(mBrightLineFalsingManager.isFalseTap(false)).isFalse();
+ }
+
+ @Test
+ public void testIsFalseTap_RobustCheck_NoFaceAuth() {
+ when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(true);
+ mFalsingDataProvider.setJustUnlockedWithFace(false);
+ assertThat(mBrightLineFalsingManager.isFalseTap(true)).isTrue();
+ }
+
+ @Test
+ public void testIsFalseTap_RobustCheck_FaceAuth() {
+ when(mSingleTapClassfier.isTap(mMotionEventList)).thenReturn(true);
+ when(mFalsingDataProvider.isJustUnlockedWithFace()).thenReturn(true);
+ assertThat(mBrightLineFalsingManager.isFalseTap(true)).isFalse();
+ }
+
+ @Test
+ public void testIsFalseDoubleTap() {
+ when(mDoubleTapClassifier.isFalseTouch()).thenReturn(false);
+
+ assertThat(mBrightLineFalsingManager.isFalseDoubleTap()).isFalse();
+
+ when(mDoubleTapClassifier.isFalseTouch()).thenReturn(true);
+
+ assertThat(mBrightLineFalsingManager.isFalseDoubleTap()).isTrue();
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java
index 714d6581ff00..7659db8cc9ef 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DiagonalClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.LEFT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
@@ -27,8 +27,6 @@ import android.testing.AndroidTestingRunner;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxyFake;
import org.junit.After;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
index d66c7a9d43a5..013fa369e876 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -23,8 +23,6 @@ import android.testing.AndroidTestingRunner;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxyFake;
import org.junit.After;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DoubleTapClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java
index 288ab0ad6596..4c4108a0cb90 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DoubleTapClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DoubleTapClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -27,9 +27,6 @@ import android.view.MotionEvent;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-import com.android.systemui.classifier.FalsingDataProvider;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java
index b512f0d6ef32..ee289b5b922d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/PointerCountClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
@@ -26,8 +26,6 @@ import android.view.MotionEvent;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java
index c2e290f166a3..38b025f675ee 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/ProximityClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.GENERIC;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
@@ -28,8 +28,6 @@ import android.view.MotionEvent;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-import com.android.systemui.classifier.FalsingDataProvider;
import com.android.systemui.util.DeviceConfigProxyFake;
import com.android.systemui.util.sensors.ProximitySensor;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/SingleTapClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java
index d67f2b833deb..941e12e475f9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/SingleTapClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/SingleTapClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -25,9 +25,6 @@ import android.view.MotionEvent;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-import com.android.systemui.classifier.FalsingDataProvider;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TimeLimitedMotionEventBufferTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/TimeLimitedMotionEventBufferTest.java
index 1dfffb271f02..6e312594a2e4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TimeLimitedMotionEventBufferTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/TimeLimitedMotionEventBufferTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
index 5f3b84c2f7ae..6b9bb4fedd16 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.BOUNCER_UNLOCK;
import static com.android.systemui.classifier.Classifier.LEFT_AFFORDANCE;
@@ -33,9 +33,6 @@ import android.testing.AndroidTestingRunner;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
-import com.android.systemui.classifier.FalsingDataProvider;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java
index e49262f5099f..339dd9e9e6d2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/ZigZagClassifierTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.systemui.classifier.brightline;
+package com.android.systemui.classifier;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -23,7 +23,6 @@ import android.testing.AndroidTestingRunner;
import androidx.test.filters.SmallTest;
-import com.android.systemui.classifier.ClassifierTest;
import com.android.systemui.util.DeviceConfigProxyFake;
import org.junit.After;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java b/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java
index a6355880c660..37540621557f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java
@@ -22,6 +22,7 @@ package com.android.systemui.dock;
public class DockManagerFake implements DockManager {
DockEventListener mCallback;
AlignmentStateListener mAlignmentListener;
+ private boolean mDocked;
@Override
public void addListener(DockEventListener callback) {
@@ -45,7 +46,11 @@ public class DockManagerFake implements DockManager {
@Override
public boolean isDocked() {
- return false;
+ return mDocked;
+ }
+
+ public void setIsDocked(boolean docked) {
+ mDocked = docked;
}
@Override