From 9febfeb0970734321815b1d5653713a9fd9fb3ec Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Wed, 18 Dec 2019 12:18:00 -0500 Subject: [PATCH] Disable falsing when resting on a Dock. Fix typo: Classifer -> Classifier. Use Executor instead of Handler in falsing related code. Show a dump of BrightLingFalsing related information. Bug: 139785197 Test: atest SystemUITests && manual. Change-Id: I3be68cb9f27ccfb5a686947cc85aae74f21f099c --- .../statusbar/car/CarBatteryController.java | 5 ++ .../systemui/plugins/FalsingManager.java | 4 +- .../src/com/android/systemui/SwipeHelper.java | 2 +- .../classifier/FalsingManagerFake.java | 2 +- .../classifier/FalsingManagerImpl.java | 6 +- .../classifier/FalsingManagerProxy.java | 25 ++++--- .../brightline/BrightLineFalsingManager.java | 72 ++++++++++++------- .../phone/NotificationPanelView.java | 2 +- .../systemui/statusbar/phone/PanelView.java | 2 +- .../statusbar/policy/BatteryController.java | 5 ++ .../policy/BatteryControllerImpl.java | 5 ++ .../classifier/FalsingManagerProxyTest.java | 31 ++++---- .../brightline/DiagonalClassifierTest.java | 2 - .../brightline/DistanceClassifierTest.java | 2 - .../brightline/FalsingDataProviderTest.java | 2 - .../PointerCountClassifierTest.java | 2 - .../brightline/ProximityClassifierTest.java | 2 - .../brightline/TypeClassifierTest.java | 2 - .../brightline/ZigZagClassifierTest.java | 2 - .../utils/leaks/FakeBatteryController.java | 5 ++ 20 files changed, 107 insertions(+), 73 deletions(-) diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java index d79849ccafc63..4e0fd4ab459de 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarBatteryController.java @@ -251,6 +251,11 @@ public class CarBatteryController extends BroadcastReceiver implements BatteryCo // TODO: Car demo mode. } + @Override + public boolean isPluggedIn() { + return true; + } + @Override public boolean isPowerSave() { // Power save is not valid for the car, so always return false. diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/FalsingManager.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/FalsingManager.java index 52ec1f0bb3309..0a2dd6c027dec 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/FalsingManager.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/FalsingManager.java @@ -30,7 +30,7 @@ import java.io.PrintWriter; */ @ProvidesInterface(version = FalsingManager.VERSION) public interface FalsingManager { - int VERSION = 2; + int VERSION = 3; void onSucccessfulUnlock(); @@ -48,7 +48,7 @@ public interface FalsingManager { void setNotificationExpanded(); - boolean isClassiferEnabled(); + boolean isClassifierEnabled(); void onQsDown(); diff --git a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java index 4728327d51b8c..02a452182d366 100644 --- a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java +++ b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java @@ -694,7 +694,7 @@ public class SwipeHelper implements Gefingerpoken { public boolean isFalseGesture(MotionEvent ev) { boolean falsingDetected = mCallback.isAntiFalsingNeeded(); - if (mFalsingManager.isClassiferEnabled()) { + if (mFalsingManager.isClassifierEnabled()) { falsingDetected = falsingDetected && mFalsingManager.isFalseTouch(); } else { falsingDetected = falsingDetected && !mTouchAboveFalsingThreshold; diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java index ea175edf0be15..099909d000f9f 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java @@ -90,7 +90,7 @@ public class FalsingManagerFake implements FalsingManager { } @Override - public boolean isClassiferEnabled() { + public boolean isClassifierEnabled() { return mIsClassiferEnabled; } diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java index eb014ed0fc48d..d6faed5413d8c 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java @@ -213,7 +213,7 @@ public class FalsingManagerImpl implements FalsingManager { private void onSessionStart() { if (FalsingLog.ENABLED) { - FalsingLog.i("onSessionStart", "classifierEnabled=" + isClassiferEnabled()); + FalsingLog.i("onSessionStart", "classifierEnabled=" + isClassifierEnabled()); clearPendingWtf(); } mBouncerOn = false; @@ -246,7 +246,7 @@ public class FalsingManagerImpl implements FalsingManager { } } - public boolean isClassiferEnabled() { + public boolean isClassifierEnabled() { return mHumanInteractionClassifier.isEnabled(); } @@ -544,7 +544,7 @@ public class FalsingManagerImpl implements FalsingManager { public void dump(PrintWriter pw) { pw.println("FALSING MANAGER"); - pw.print("classifierEnabled="); pw.println(isClassiferEnabled() ? 1 : 0); + pw.print("classifierEnabled="); pw.println(isClassifierEnabled() ? 1 : 0); pw.print("mSessionActive="); pw.println(mSessionActive ? 1 : 0); pw.print("mBouncerOn="); pw.println(mSessionActive ? 1 : 0); pw.print("mState="); pw.println(StatusBarState.toShortString(mState)); diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java index f475948b43f76..b2131e72be56d 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java @@ -21,8 +21,8 @@ import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHT import android.content.Context; import android.hardware.SensorManager; import android.net.Uri; -import android.os.Handler; import android.provider.DeviceConfig; +import android.util.DisplayMetrics; import android.view.MotionEvent; import com.android.internal.annotations.VisibleForTesting; @@ -32,6 +32,7 @@ import com.android.systemui.classifier.brightline.BrightLineFalsingManager; import com.android.systemui.classifier.brightline.FalsingDataProvider; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.UiBackground; +import com.android.systemui.dock.DockManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.FalsingPlugin; import com.android.systemui.plugins.PluginListener; @@ -56,19 +57,22 @@ public class FalsingManagerProxy implements FalsingManager { private static final String PROXIMITY_SENSOR_TAG = "FalsingManager"; private final ProximitySensor mProximitySensor; + private final DisplayMetrics mDisplayMetrics; private FalsingManager mInternalFalsingManager; private DeviceConfig.OnPropertiesChangedListener mDeviceConfigListener; private final DeviceConfigProxy mDeviceConfig; private boolean mBrightlineEnabled; + private final DockManager mDockManager; private Executor mUiBgExecutor; @Inject - FalsingManagerProxy(Context context, PluginManager pluginManager, - @Main Handler handler, - ProximitySensor proximitySensor, - DeviceConfigProxy deviceConfig, + FalsingManagerProxy(Context context, PluginManager pluginManager, @Main Executor executor, + DisplayMetrics displayMetrics, ProximitySensor proximitySensor, + DeviceConfigProxy deviceConfig, DockManager dockManager, @UiBackground Executor uiBgExecutor) { + mDisplayMetrics = displayMetrics; mProximitySensor = proximitySensor; + mDockManager = dockManager; mUiBgExecutor = uiBgExecutor; mProximitySensor.setTag(PROXIMITY_SENSOR_TAG); mProximitySensor.setSensorDelay(SensorManager.SENSOR_DELAY_GAME); @@ -78,7 +82,7 @@ public class FalsingManagerProxy implements FalsingManager { setupFalsingManager(context); mDeviceConfig.addOnPropertiesChangedListener( DeviceConfig.NAMESPACE_SYSTEMUI, - handler::post, + executor, mDeviceConfigListener ); @@ -125,10 +129,11 @@ public class FalsingManagerProxy implements FalsingManager { mInternalFalsingManager = new FalsingManagerImpl(context, mUiBgExecutor); } else { mInternalFalsingManager = new BrightLineFalsingManager( - new FalsingDataProvider(context.getResources().getDisplayMetrics()), + new FalsingDataProvider(mDisplayMetrics), Dependency.get(KeyguardUpdateMonitor.class), mProximitySensor, - mDeviceConfig + mDeviceConfig, + mDockManager ); } } @@ -182,8 +187,8 @@ public class FalsingManagerProxy implements FalsingManager { } @Override - public boolean isClassiferEnabled() { - return mInternalFalsingManager.isClassiferEnabled(); + public boolean isClassifierEnabled() { + return mInternalFalsingManager.isClassifierEnabled(); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java b/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java index bd0906a633705..b2e61a2564d32 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/brightline/BrightLineFalsingManager.java @@ -25,17 +25,21 @@ import android.util.Log; import android.view.MotionEvent; import com.android.internal.logging.MetricsLogger; +import com.android.internal.util.IndentingPrintWriter; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.classifier.Classifier; +import com.android.systemui.dock.DockManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.util.DeviceConfigProxy; import com.android.systemui.util.sensors.ProximitySensor; import java.io.PrintWriter; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.List; import java.util.Locale; +import java.util.Queue; /** * FalsingManager designed to make clear why a touch was rejected. @@ -44,16 +48,20 @@ public class BrightLineFalsingManager implements FalsingManager { static final boolean DEBUG = false; private static final String TAG = "FalsingManager"; + private static final int RECENT_INFO_LOG_SIZE = 20; private final FalsingDataProvider mDataProvider; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final ProximitySensor mProximitySensor; + private final DockManager mDockManager; private boolean mSessionStarted; private MetricsLogger mMetricsLogger; private int mIsFalseTouchCalls; private boolean mShowingAod; private boolean mScreenOn; private boolean mJustUnlockedWithFace; + private static final Queue RECENT_INFO_LOG = + new ArrayDeque<>(RECENT_INFO_LOG_SIZE + 1); private final List mClassifiers; @@ -71,14 +79,14 @@ public class BrightLineFalsingManager implements FalsingManager { } }; - public BrightLineFalsingManager( - FalsingDataProvider falsingDataProvider, - KeyguardUpdateMonitor keyguardUpdateMonitor, - ProximitySensor proximitySensor, - DeviceConfigProxy deviceConfigProxy) { + public BrightLineFalsingManager(FalsingDataProvider falsingDataProvider, + KeyguardUpdateMonitor keyguardUpdateMonitor, ProximitySensor proximitySensor, + DeviceConfigProxy deviceConfigProxy, + DockManager dockManager) { mKeyguardUpdateMonitor = keyguardUpdateMonitor; mDataProvider = falsingDataProvider; mProximitySensor = proximitySensor; + mDockManager = dockManager; mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateCallback); mMetricsLogger = new MetricsLogger(); @@ -134,29 +142,30 @@ public class BrightLineFalsingManager implements FalsingManager { } @Override - public boolean isClassiferEnabled() { + public boolean isClassifierEnabled() { return true; } @Override public boolean isFalseTouch() { - boolean r = !mJustUnlockedWithFace && mClassifiers.stream().anyMatch(falsingClassifier -> { - boolean result = falsingClassifier.isFalseTouch(); - if (result) { - logInfo(String.format( - (Locale) null, - "{classifier=%s, interactionType=%d}", - falsingClassifier.getClass().getName(), - mDataProvider.getInteractionType())); - String reason = falsingClassifier.getReason(); - if (reason != null) { - logInfo(reason); - } - } else { - logDebug(falsingClassifier.getClass().getName() + ": false"); - } - return result; - }); + boolean r = !mJustUnlockedWithFace && !mDockManager.isDocked() + && mClassifiers.stream().anyMatch(falsingClassifier -> { + boolean result = falsingClassifier.isFalseTouch(); + if (result) { + logInfo(String.format( + (Locale) null, + "{classifier=%s, interactionType=%d}", + falsingClassifier.getClass().getName(), + mDataProvider.getInteractionType())); + String reason = falsingClassifier.getReason(); + if (reason != null) { + logInfo(reason); + } + } else { + logDebug(falsingClassifier.getClass().getName() + ": false"); + } + return result; + }); logDebug("Is false touch? " + r); @@ -336,7 +345,18 @@ public class BrightLineFalsingManager implements FalsingManager { } @Override - public void dump(PrintWriter printWriter) { + public void dump(PrintWriter pw) { + IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); + ipw.println("BRIGHTLINE FALSING MANAGER"); + ipw.print("classifierEnabled="); pw.println(isClassifierEnabled() ? 1 : 0); + ipw.print("mJustUnlockedWithFace="); pw.println(mJustUnlockedWithFace ? 1 : 0); + ipw.print("isDocked="); pw.println(mDockManager.isDocked() ? 1 : 0); + ipw.println(); + ipw.println("Recent falsing info:"); + ipw.increaseIndent(); + for (String msg : RECENT_INFO_LOG) { + ipw.println(msg); + } } @Override @@ -357,6 +377,10 @@ public class BrightLineFalsingManager implements FalsingManager { static void logInfo(String msg) { Log.i(TAG, msg); + RECENT_INFO_LOG.add(msg); + while (RECENT_INFO_LOG.size() > RECENT_INFO_LOG_SIZE) { + RECENT_INFO_LOG.remove(); + } } static void logError(String msg) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 199d52f76c93f..c74286dfe3ff1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -1299,7 +1299,7 @@ public class NotificationPanelView extends PanelView implements if (!needsAntiFalsing()) { return false; } - if (mFalsingManager.isClassiferEnabled()) { + if (mFalsingManager.isClassifierEnabled()) { return mFalsingManager.isFalseTouch(); } return !mQsTouchAboveFalsingThreshold; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 78a5eb237297b..cd56d06512755 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -710,7 +710,7 @@ public abstract class PanelView extends FrameLayout { if (!mStatusBar.isFalsingThresholdNeeded()) { return false; } - if (mFalsingManager.isClassiferEnabled()) { + if (mFalsingManager.isClassifierEnabled()) { return mFalsingManager.isFalseTouch(); } if (!mTouchAboveFalsingThreshold) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java index 738d076e13c5c..cf9d8e1d85ecd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java @@ -37,6 +37,11 @@ public interface BatteryController extends DemoMode, Dumpable, */ void setPowerSaveMode(boolean powerSave); + /** + * Returns {@code true} if the device is currently plugged in. + */ + boolean isPluggedIn(); + /** * Returns {@code true} if the device is currently in power save mode. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java index f132058b5329c..d3e6f53098754 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java @@ -192,6 +192,11 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC } } + @Override + public boolean isPluggedIn() { + return mPluggedIn; + } + @Override public boolean isPowerSave() { return mPowerSave; diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingManagerProxyTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingManagerProxyTest.java index a19d1df8a713e..25efd320e5540 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingManagerProxyTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/FalsingManagerProxyTest.java @@ -21,16 +21,17 @@ import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHT import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertThat; -import android.os.Handler; import android.provider.DeviceConfig; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; +import android.util.DisplayMetrics; import androidx.test.filters.SmallTest; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.SysuiTestCase; import com.android.systemui.classifier.brightline.BrightLineFalsingManager; +import com.android.systemui.dock.DockManager; +import com.android.systemui.dock.DockManagerFake; import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.util.DeviceConfigProxy; import com.android.systemui.util.DeviceConfigProxyFake; @@ -47,24 +48,22 @@ import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class FalsingManagerProxyTest extends SysuiTestCase { @Mock(stubOnly = true) PluginManager mPluginManager; @Mock(stubOnly = true) ProximitySensor mProximitySensor; - private Handler mHandler; private FalsingManagerProxy mProxy; private DeviceConfigProxy mDeviceConfig; - private TestableLooper mTestableLooper; + private DisplayMetrics mDisplayMetrics = new DisplayMetrics(); + private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock()); private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock()); + private DockManager mDockManager = new DockManagerFake(); @Before public void setup() { MockitoAnnotations.initMocks(this); mDependency.injectMockDependency(KeyguardUpdateMonitor.class); - mTestableLooper = TestableLooper.get(this); - mHandler = new Handler(mTestableLooper.getLooper()); mDeviceConfig = new DeviceConfigProxyFake(); mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, "false", false); @@ -79,8 +78,8 @@ public class FalsingManagerProxyTest extends SysuiTestCase { @Test public void test_brightLineFalsingManagerDisabled() { - mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mHandler, mProximitySensor, - mDeviceConfig, mUiBgExecutor); + mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor, mDisplayMetrics, + mProximitySensor, mDeviceConfig, mDockManager, mUiBgExecutor); assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class)); } @@ -88,27 +87,27 @@ public class FalsingManagerProxyTest extends SysuiTestCase { public void test_brightLineFalsingManagerEnabled() throws InterruptedException { mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, "true", false); - mTestableLooper.processAllMessages(); - mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mHandler, mProximitySensor, - mDeviceConfig, mUiBgExecutor); + mExecutor.runAllReady(); + mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor, mDisplayMetrics, + mProximitySensor, mDeviceConfig, mDockManager, mUiBgExecutor); assertThat(mProxy.getInternalFalsingManager(), instanceOf(BrightLineFalsingManager.class)); } @Test public void test_brightLineFalsingManagerToggled() throws InterruptedException { - mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mHandler, mProximitySensor, - mDeviceConfig, mUiBgExecutor); + mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor, mDisplayMetrics, + mProximitySensor, mDeviceConfig, mDockManager, mUiBgExecutor); assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class)); mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, "true", false); - mTestableLooper.processAllMessages(); + mExecutor.runAllReady(); assertThat(mProxy.getInternalFalsingManager(), instanceOf(BrightLineFalsingManager.class)); mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, "false", false); - mTestableLooper.processAllMessages(); + mExecutor.runAllReady(); assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class)); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java index afe4200a3a437..e88ff2df60ca1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DiagonalClassifierTest.java @@ -24,7 +24,6 @@ import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import androidx.test.filters.SmallTest; @@ -39,7 +38,6 @@ import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class DiagonalClassifierTest extends ClassifierTest { // Next variable is not actually five, but is very close. 5 degrees is currently the value diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java index f0f5fc719272f..44454d9578693 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/DistanceClassifierTest.java @@ -20,7 +20,6 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import androidx.test.filters.SmallTest; @@ -33,7 +32,6 @@ import org.junit.runner.RunWith; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class DistanceClassifierTest extends ClassifierTest { private FalsingDataProvider mDataProvider; diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/FalsingDataProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/FalsingDataProviderTest.java index 748c1377f7a0b..448c2f7b33ad9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/FalsingDataProviderTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/FalsingDataProviderTest.java @@ -21,7 +21,6 @@ import static org.hamcrest.Matchers.closeTo; import static org.junit.Assert.assertThat; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import android.util.DisplayMetrics; import android.view.MotionEvent; @@ -36,7 +35,6 @@ import java.util.List; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class FalsingDataProviderTest extends ClassifierTest { private FalsingDataProvider mDataProvider; diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java index 96b2028da3260..4f8e7c801d041 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/PointerCountClassifierTest.java @@ -22,7 +22,6 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import android.view.MotionEvent; import androidx.test.filters.SmallTest; @@ -34,7 +33,6 @@ import org.junit.runner.RunWith; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class PointerCountClassifierTest extends ClassifierTest { private FalsingClassifier mClassifier; diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java index 35d59c1c97261..5b32a39403cd3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ProximityClassifierTest.java @@ -24,7 +24,6 @@ import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import android.view.MotionEvent; import androidx.test.filters.SmallTest; @@ -41,7 +40,6 @@ import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class ProximityClassifierTest extends ClassifierTest { private static final long NS_PER_MS = 1000000; diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java index 0355dc362593f..4346e7df088fc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/TypeClassifierTest.java @@ -30,7 +30,6 @@ import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import androidx.test.filters.SmallTest; @@ -42,7 +41,6 @@ import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class TypeClassifierTest extends ClassifierTest { @Mock diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java index 387c0daad3994..a8cce00ba9968 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/brightline/ZigZagClassifierTest.java @@ -20,7 +20,6 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import android.testing.AndroidTestingRunner; -import android.testing.TestableLooper; import androidx.test.filters.SmallTest; @@ -35,7 +34,6 @@ import java.util.Random; @SmallTest @RunWith(AndroidTestingRunner.class) -@TestableLooper.RunWithLooper public class ZigZagClassifierTest extends ClassifierTest { private FalsingClassifier mClassifier; diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeBatteryController.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeBatteryController.java index df76f01494f3e..8ec4cb8b927b3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeBatteryController.java +++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeBatteryController.java @@ -44,6 +44,11 @@ public class FakeBatteryController extends BaseLeakChecker