Merge "Disable falsing when resting on a Dock."
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -90,7 +90,7 @@ public class FalsingManagerFake implements FalsingManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isClassiferEnabled() {
|
||||
public boolean isClassifierEnabled() {
|
||||
return mIsClassiferEnabled;
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<String> RECENT_INFO_LOG =
|
||||
new ArrayDeque<>(RECENT_INFO_LOG_SIZE + 1);
|
||||
|
||||
private final List<FalsingClassifier> 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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -192,6 +192,11 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPluggedIn() {
|
||||
return mPluggedIn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPowerSave() {
|
||||
return mPowerSave;
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -44,6 +44,11 @@ public class FakeBatteryController extends BaseLeakChecker<BatteryStateChangeCal
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPluggedIn() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPowerSave() {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user