Merge "Don't turn on prox when wirelessly charging." into rvc-d1-dev
This commit is contained in:
@@ -22,7 +22,6 @@ import android.content.Context;
|
|||||||
import android.hardware.SensorManager;
|
import android.hardware.SensorManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.DeviceConfig;
|
import android.provider.DeviceConfig;
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -62,7 +61,7 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
|
|||||||
private static final String PROXIMITY_SENSOR_TAG = "FalsingManager";
|
private static final String PROXIMITY_SENSOR_TAG = "FalsingManager";
|
||||||
|
|
||||||
private final ProximitySensor mProximitySensor;
|
private final ProximitySensor mProximitySensor;
|
||||||
private final DisplayMetrics mDisplayMetrics;
|
private final FalsingDataProvider mFalsingDataProvider;
|
||||||
private FalsingManager mInternalFalsingManager;
|
private FalsingManager mInternalFalsingManager;
|
||||||
private DeviceConfig.OnPropertiesChangedListener mDeviceConfigListener;
|
private DeviceConfig.OnPropertiesChangedListener mDeviceConfigListener;
|
||||||
private final DeviceConfigProxy mDeviceConfig;
|
private final DeviceConfigProxy mDeviceConfig;
|
||||||
@@ -74,18 +73,19 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
FalsingManagerProxy(Context context, PluginManager pluginManager, @Main Executor executor,
|
FalsingManagerProxy(Context context, PluginManager pluginManager, @Main Executor executor,
|
||||||
DisplayMetrics displayMetrics, ProximitySensor proximitySensor,
|
ProximitySensor proximitySensor,
|
||||||
DeviceConfigProxy deviceConfig, DockManager dockManager,
|
DeviceConfigProxy deviceConfig, DockManager dockManager,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
DumpManager dumpManager,
|
DumpManager dumpManager,
|
||||||
@UiBackground Executor uiBgExecutor,
|
@UiBackground Executor uiBgExecutor,
|
||||||
StatusBarStateController statusBarStateController) {
|
StatusBarStateController statusBarStateController,
|
||||||
mDisplayMetrics = displayMetrics;
|
FalsingDataProvider falsingDataProvider) {
|
||||||
mProximitySensor = proximitySensor;
|
mProximitySensor = proximitySensor;
|
||||||
mDockManager = dockManager;
|
mDockManager = dockManager;
|
||||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
mUiBgExecutor = uiBgExecutor;
|
mUiBgExecutor = uiBgExecutor;
|
||||||
mStatusBarStateController = statusBarStateController;
|
mStatusBarStateController = statusBarStateController;
|
||||||
|
mFalsingDataProvider = falsingDataProvider;
|
||||||
mProximitySensor.setTag(PROXIMITY_SENSOR_TAG);
|
mProximitySensor.setTag(PROXIMITY_SENSOR_TAG);
|
||||||
mProximitySensor.setDelay(SensorManager.SENSOR_DELAY_GAME);
|
mProximitySensor.setDelay(SensorManager.SENSOR_DELAY_GAME);
|
||||||
mDeviceConfig = deviceConfig;
|
mDeviceConfig = deviceConfig;
|
||||||
@@ -143,7 +143,7 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
|
|||||||
mInternalFalsingManager = new FalsingManagerImpl(context, mUiBgExecutor);
|
mInternalFalsingManager = new FalsingManagerImpl(context, mUiBgExecutor);
|
||||||
} else {
|
} else {
|
||||||
mInternalFalsingManager = new BrightLineFalsingManager(
|
mInternalFalsingManager = new BrightLineFalsingManager(
|
||||||
new FalsingDataProvider(mDisplayMetrics),
|
mFalsingDataProvider,
|
||||||
mKeyguardUpdateMonitor,
|
mKeyguardUpdateMonitor,
|
||||||
mProximitySensor,
|
mProximitySensor,
|
||||||
mDeviceConfig,
|
mDeviceConfig,
|
||||||
|
|||||||
@@ -132,8 +132,10 @@ public class BrightLineFalsingManager implements FalsingManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerSensors() {
|
private void registerSensors() {
|
||||||
|
if (!mDataProvider.isWirelessCharging()) {
|
||||||
mProximitySensor.register(mSensorEventListener);
|
mProximitySensor.register(mSensorEventListener);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void unregisterSensors() {
|
private void unregisterSensors() {
|
||||||
mProximitySensor.unregister(mSensorEventListener);
|
mProximitySensor.unregister(mSensorEventListener);
|
||||||
|
|||||||
@@ -22,10 +22,13 @@ import android.view.MotionEvent.PointerCoords;
|
|||||||
import android.view.MotionEvent.PointerProperties;
|
import android.view.MotionEvent.PointerProperties;
|
||||||
|
|
||||||
import com.android.systemui.classifier.Classifier;
|
import com.android.systemui.classifier.Classifier;
|
||||||
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Acts as a cache and utility class for FalsingClassifiers.
|
* Acts as a cache and utility class for FalsingClassifiers.
|
||||||
*/
|
*/
|
||||||
@@ -36,6 +39,7 @@ public class FalsingDataProvider {
|
|||||||
|
|
||||||
private final int mWidthPixels;
|
private final int mWidthPixels;
|
||||||
private final int mHeightPixels;
|
private final int mHeightPixels;
|
||||||
|
private final BatteryController mBatteryController;
|
||||||
private final float mXdpi;
|
private final float mXdpi;
|
||||||
private final float mYdpi;
|
private final float mYdpi;
|
||||||
|
|
||||||
@@ -50,11 +54,13 @@ public class FalsingDataProvider {
|
|||||||
private MotionEvent mFirstRecentMotionEvent;
|
private MotionEvent mFirstRecentMotionEvent;
|
||||||
private MotionEvent mLastMotionEvent;
|
private MotionEvent mLastMotionEvent;
|
||||||
|
|
||||||
public FalsingDataProvider(DisplayMetrics displayMetrics) {
|
@Inject
|
||||||
|
public FalsingDataProvider(DisplayMetrics displayMetrics, BatteryController batteryController) {
|
||||||
mXdpi = displayMetrics.xdpi;
|
mXdpi = displayMetrics.xdpi;
|
||||||
mYdpi = displayMetrics.ydpi;
|
mYdpi = displayMetrics.ydpi;
|
||||||
mWidthPixels = displayMetrics.widthPixels;
|
mWidthPixels = displayMetrics.widthPixels;
|
||||||
mHeightPixels = displayMetrics.heightPixels;
|
mHeightPixels = displayMetrics.heightPixels;
|
||||||
|
mBatteryController = batteryController;
|
||||||
|
|
||||||
FalsingClassifier.logInfo("xdpi, ydpi: " + getXdpi() + ", " + getYdpi());
|
FalsingClassifier.logInfo("xdpi, ydpi: " + getXdpi() + ", " + getYdpi());
|
||||||
FalsingClassifier.logInfo("width, height: " + getWidthPixels() + ", " + getHeightPixels());
|
FalsingClassifier.logInfo("width, height: " + getWidthPixels() + ", " + getHeightPixels());
|
||||||
@@ -177,6 +183,11 @@ public class FalsingDataProvider {
|
|||||||
return mLastMotionEvent.getY() < mFirstRecentMotionEvent.getY();
|
return mLastMotionEvent.getY() < mFirstRecentMotionEvent.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Returns true if phone is being charged without a cable. */
|
||||||
|
boolean isWirelessCharging() {
|
||||||
|
return mBatteryController.isWirelessCharging();
|
||||||
|
}
|
||||||
|
|
||||||
private void recalculateData() {
|
private void recalculateData() {
|
||||||
if (!mDirty) {
|
if (!mDirty) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -399,10 +399,13 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
break;
|
break;
|
||||||
case DOZE_PULSING:
|
case DOZE_PULSING:
|
||||||
case DOZE_PULSING_BRIGHT:
|
case DOZE_PULSING_BRIGHT:
|
||||||
case DOZE_AOD_DOCKED:
|
|
||||||
mWantProx = true;
|
mWantProx = true;
|
||||||
mWantTouchScreenSensors = false;
|
mWantTouchScreenSensors = false;
|
||||||
break;
|
break;
|
||||||
|
case DOZE_AOD_DOCKED:
|
||||||
|
mWantProx = false;
|
||||||
|
mWantTouchScreenSensors = false;
|
||||||
|
break;
|
||||||
case DOZE_PULSE_DONE:
|
case DOZE_PULSE_DONE:
|
||||||
mDozeSensors.requestTemporaryDisable();
|
mDozeSensors.requestTemporaryDisable();
|
||||||
// A pulse will temporarily disable sensors that require a touch screen.
|
// A pulse will temporarily disable sensors that require a touch screen.
|
||||||
|
|||||||
@@ -140,6 +140,10 @@ public abstract class SysuiTestCase {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected FakeBroadcastDispatcher getFakeBroadcastDispatcher() {
|
||||||
|
return mFakeBroadcastDispatcher;
|
||||||
|
}
|
||||||
|
|
||||||
public SysuiTestableContext getContext() {
|
public SysuiTestableContext getContext() {
|
||||||
return mContext;
|
return mContext;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ import androidx.test.filters.SmallTest;
|
|||||||
|
|
||||||
import com.android.internal.logging.testing.UiEventLoggerFake;
|
import com.android.internal.logging.testing.UiEventLoggerFake;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
import com.android.systemui.SysuiTestCase;
|
|
||||||
import com.android.systemui.classifier.brightline.BrightLineFalsingManager;
|
import com.android.systemui.classifier.brightline.BrightLineFalsingManager;
|
||||||
|
import com.android.systemui.classifier.brightline.FalsingDataProvider;
|
||||||
import com.android.systemui.dock.DockManager;
|
import com.android.systemui.dock.DockManager;
|
||||||
import com.android.systemui.dock.DockManagerFake;
|
import com.android.systemui.dock.DockManagerFake;
|
||||||
import com.android.systemui.dump.DumpManager;
|
import com.android.systemui.dump.DumpManager;
|
||||||
@@ -42,6 +42,8 @@ import com.android.systemui.util.DeviceConfigProxyFake;
|
|||||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||||
import com.android.systemui.util.sensors.ProximitySensor;
|
import com.android.systemui.util.sensors.ProximitySensor;
|
||||||
import com.android.systemui.util.time.FakeSystemClock;
|
import com.android.systemui.util.time.FakeSystemClock;
|
||||||
|
import com.android.systemui.utils.leaks.FakeBatteryController;
|
||||||
|
import com.android.systemui.utils.leaks.LeakCheckedTest;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -52,7 +54,7 @@ import org.mockito.MockitoAnnotations;
|
|||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
public class FalsingManagerProxyTest extends SysuiTestCase {
|
public class FalsingManagerProxyTest extends LeakCheckedTest {
|
||||||
@Mock(stubOnly = true)
|
@Mock(stubOnly = true)
|
||||||
PluginManager mPluginManager;
|
PluginManager mPluginManager;
|
||||||
@Mock(stubOnly = true)
|
@Mock(stubOnly = true)
|
||||||
@@ -62,7 +64,7 @@ public class FalsingManagerProxyTest extends SysuiTestCase {
|
|||||||
@Mock DumpManager mDumpManager;
|
@Mock DumpManager mDumpManager;
|
||||||
private FalsingManagerProxy mProxy;
|
private FalsingManagerProxy mProxy;
|
||||||
private DeviceConfigProxy mDeviceConfig;
|
private DeviceConfigProxy mDeviceConfig;
|
||||||
private DisplayMetrics mDisplayMetrics = new DisplayMetrics();
|
private FalsingDataProvider mFalsingDataProvider;
|
||||||
private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
private FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
||||||
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
||||||
private DockManager mDockManager = new DockManagerFake();
|
private DockManager mDockManager = new DockManagerFake();
|
||||||
@@ -75,6 +77,8 @@ public class FalsingManagerProxyTest extends SysuiTestCase {
|
|||||||
mDeviceConfig = new DeviceConfigProxyFake();
|
mDeviceConfig = new DeviceConfigProxyFake();
|
||||||
mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
|
mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
|
||||||
BRIGHTLINE_FALSING_MANAGER_ENABLED, "false", false);
|
BRIGHTLINE_FALSING_MANAGER_ENABLED, "false", false);
|
||||||
|
mFalsingDataProvider = new FalsingDataProvider(
|
||||||
|
new DisplayMetrics(), new FakeBatteryController(getLeakCheck()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@@ -86,9 +90,9 @@ public class FalsingManagerProxyTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_brightLineFalsingManagerDisabled() {
|
public void test_brightLineFalsingManagerDisabled() {
|
||||||
mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor, mDisplayMetrics,
|
mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor,
|
||||||
mProximitySensor, mDeviceConfig, mDockManager, mKeyguardUpdateMonitor,
|
mProximitySensor, mDeviceConfig, mDockManager, mKeyguardUpdateMonitor,
|
||||||
mDumpManager, mUiBgExecutor, mStatusBarStateController);
|
mDumpManager, mUiBgExecutor, mStatusBarStateController, mFalsingDataProvider);
|
||||||
assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class));
|
assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,17 +101,17 @@ public class FalsingManagerProxyTest extends SysuiTestCase {
|
|||||||
mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
|
mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
|
||||||
BRIGHTLINE_FALSING_MANAGER_ENABLED, "true", false);
|
BRIGHTLINE_FALSING_MANAGER_ENABLED, "true", false);
|
||||||
mExecutor.runAllReady();
|
mExecutor.runAllReady();
|
||||||
mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor, mDisplayMetrics,
|
mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor,
|
||||||
mProximitySensor, mDeviceConfig, mDockManager, mKeyguardUpdateMonitor,
|
mProximitySensor, mDeviceConfig, mDockManager, mKeyguardUpdateMonitor,
|
||||||
mDumpManager, mUiBgExecutor, mStatusBarStateController);
|
mDumpManager, mUiBgExecutor, mStatusBarStateController, mFalsingDataProvider);
|
||||||
assertThat(mProxy.getInternalFalsingManager(), instanceOf(BrightLineFalsingManager.class));
|
assertThat(mProxy.getInternalFalsingManager(), instanceOf(BrightLineFalsingManager.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test_brightLineFalsingManagerToggled() throws InterruptedException {
|
public void test_brightLineFalsingManagerToggled() throws InterruptedException {
|
||||||
mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor, mDisplayMetrics,
|
mProxy = new FalsingManagerProxy(getContext(), mPluginManager, mExecutor,
|
||||||
mProximitySensor, mDeviceConfig, mDockManager, mKeyguardUpdateMonitor,
|
mProximitySensor, mDeviceConfig, mDockManager, mKeyguardUpdateMonitor,
|
||||||
mDumpManager, mUiBgExecutor, mStatusBarStateController);
|
mDumpManager, mUiBgExecutor, mStatusBarStateController, mFalsingDataProvider);
|
||||||
assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class));
|
assertThat(mProxy.getInternalFalsingManager(), instanceOf(FalsingManagerImpl.class));
|
||||||
|
|
||||||
mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
|
mDeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI,
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.classifier.brightline;
|
package com.android.systemui.classifier.brightline;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
@@ -27,7 +28,6 @@ import android.util.DisplayMetrics;
|
|||||||
|
|
||||||
import com.android.internal.logging.testing.UiEventLoggerFake;
|
import com.android.internal.logging.testing.UiEventLoggerFake;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
import com.android.systemui.SysuiTestCase;
|
|
||||||
import com.android.systemui.dock.DockManager;
|
import com.android.systemui.dock.DockManager;
|
||||||
import com.android.systemui.dock.DockManagerFake;
|
import com.android.systemui.dock.DockManagerFake;
|
||||||
import com.android.systemui.statusbar.StatusBarState;
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
@@ -37,6 +37,8 @@ import com.android.systemui.util.DeviceConfigProxy;
|
|||||||
import com.android.systemui.util.DeviceConfigProxyFake;
|
import com.android.systemui.util.DeviceConfigProxyFake;
|
||||||
import com.android.systemui.util.sensors.ProximitySensor;
|
import com.android.systemui.util.sensors.ProximitySensor;
|
||||||
import com.android.systemui.util.sensors.ThresholdSensor;
|
import com.android.systemui.util.sensors.ThresholdSensor;
|
||||||
|
import com.android.systemui.utils.leaks.FakeBatteryController;
|
||||||
|
import com.android.systemui.utils.leaks.LeakCheckedTest;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -47,7 +49,7 @@ import org.mockito.MockitoAnnotations;
|
|||||||
@SmallTest
|
@SmallTest
|
||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
@TestableLooper.RunWithLooper
|
@TestableLooper.RunWithLooper
|
||||||
public class BrightLineFalsingManagerTest extends SysuiTestCase {
|
public class BrightLineFalsingManagerTest extends LeakCheckedTest {
|
||||||
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
@@ -55,23 +57,26 @@ public class BrightLineFalsingManagerTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private ProximitySensor mProximitySensor;
|
private ProximitySensor mProximitySensor;
|
||||||
private SysuiStatusBarStateController mStatusBarStateController;
|
private SysuiStatusBarStateController mStatusBarStateController;
|
||||||
|
private FalsingDataProvider mFalsingDataProvider;
|
||||||
|
private FakeBatteryController mFakeBatteryController;
|
||||||
|
|
||||||
private BrightLineFalsingManager mFalsingManager;
|
private BrightLineFalsingManager mFalsingManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
mFakeBatteryController = new FakeBatteryController(getLeakCheck());
|
||||||
DisplayMetrics dm = new DisplayMetrics();
|
DisplayMetrics dm = new DisplayMetrics();
|
||||||
dm.xdpi = 100;
|
dm.xdpi = 100;
|
||||||
dm.ydpi = 100;
|
dm.ydpi = 100;
|
||||||
dm.widthPixels = 100;
|
dm.widthPixels = 100;
|
||||||
dm.heightPixels = 100;
|
dm.heightPixels = 100;
|
||||||
FalsingDataProvider falsingDataProvider = new FalsingDataProvider(dm);
|
mFalsingDataProvider = new FalsingDataProvider(dm, mFakeBatteryController);
|
||||||
DeviceConfigProxy deviceConfigProxy = new DeviceConfigProxyFake();
|
DeviceConfigProxy deviceConfigProxy = new DeviceConfigProxyFake();
|
||||||
DockManager dockManager = new DockManagerFake();
|
DockManager dockManager = new DockManagerFake();
|
||||||
mStatusBarStateController = new StatusBarStateControllerImpl(new UiEventLoggerFake());
|
mStatusBarStateController = new StatusBarStateControllerImpl(new UiEventLoggerFake());
|
||||||
mStatusBarStateController.setState(StatusBarState.KEYGUARD);
|
mStatusBarStateController.setState(StatusBarState.KEYGUARD);
|
||||||
mFalsingManager = new BrightLineFalsingManager(falsingDataProvider,
|
mFalsingManager = new BrightLineFalsingManager(mFalsingDataProvider,
|
||||||
mKeyguardUpdateMonitor, mProximitySensor, deviceConfigProxy, dockManager,
|
mKeyguardUpdateMonitor, mProximitySensor, deviceConfigProxy, dockManager,
|
||||||
mStatusBarStateController);
|
mStatusBarStateController);
|
||||||
}
|
}
|
||||||
@@ -82,6 +87,13 @@ public class BrightLineFalsingManagerTest extends SysuiTestCase {
|
|||||||
verify(mProximitySensor).register(any(ThresholdSensor.Listener.class));
|
verify(mProximitySensor).register(any(ThresholdSensor.Listener.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNoProximityWhenWirelessCharging() {
|
||||||
|
mFakeBatteryController.setWirelessCharging(true);
|
||||||
|
mFalsingManager.onScreenTurningOn();
|
||||||
|
verify(mProximitySensor, never()).register(any(ThresholdSensor.Listener.class));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUnregisterSensor() {
|
public void testUnregisterSensor() {
|
||||||
mFalsingManager.onScreenTurningOn();
|
mFalsingManager.onScreenTurningOn();
|
||||||
|
|||||||
@@ -21,29 +21,30 @@ import static com.android.systemui.classifier.Classifier.UNLOCK;
|
|||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.utils.leaks.FakeBatteryController;
|
||||||
|
import com.android.systemui.utils.leaks.LeakCheckedTest;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ClassifierTest extends SysuiTestCase {
|
public class ClassifierTest extends LeakCheckedTest {
|
||||||
|
|
||||||
private FalsingDataProvider mDataProvider;
|
private FalsingDataProvider mDataProvider;
|
||||||
private List<MotionEvent> mMotionEvents = new ArrayList<>();
|
private List<MotionEvent> mMotionEvents = new ArrayList<>();
|
||||||
private float mOffsetX = 0;
|
private float mOffsetX = 0;
|
||||||
private float mOffsetY = 0;
|
private float mOffsetY = 0;
|
||||||
|
private FakeBatteryController mFakeBatteryController;
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setup() {
|
public void setup() {
|
||||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||||
displayMetrics.xdpi = 100;
|
displayMetrics.xdpi = 100;
|
||||||
displayMetrics.ydpi = 100;
|
displayMetrics.ydpi = 100;
|
||||||
displayMetrics.widthPixels = 1000;
|
displayMetrics.widthPixels = 1000;
|
||||||
displayMetrics.heightPixels = 1000;
|
displayMetrics.heightPixels = 1000;
|
||||||
mDataProvider = new FalsingDataProvider(displayMetrics);
|
mFakeBatteryController = new FakeBatteryController(getLeakCheck());
|
||||||
|
mDataProvider = new FalsingDataProvider(displayMetrics, mFakeBatteryController);
|
||||||
mDataProvider.setInteractionType(UNLOCK);
|
mDataProvider.setInteractionType(UNLOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,6 +57,10 @@ public class ClassifierTest extends SysuiTestCase {
|
|||||||
return mDataProvider;
|
return mDataProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FakeBatteryController getFakeBatteryController() {
|
||||||
|
return mFakeBatteryController;
|
||||||
|
}
|
||||||
|
|
||||||
void setOffsetX(float offsetX) {
|
void setOffsetX(float offsetX) {
|
||||||
mOffsetX = offsetX;
|
mOffsetX = offsetX;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ import android.view.MotionEvent;
|
|||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.systemui.utils.leaks.FakeBatteryController;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -37,17 +39,19 @@ import java.util.List;
|
|||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
public class FalsingDataProviderTest extends ClassifierTest {
|
public class FalsingDataProviderTest extends ClassifierTest {
|
||||||
|
|
||||||
|
private FakeBatteryController mFakeBatteryController;
|
||||||
private FalsingDataProvider mDataProvider;
|
private FalsingDataProvider mDataProvider;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
super.setup();
|
super.setup();
|
||||||
|
mFakeBatteryController = new FakeBatteryController(getLeakCheck());
|
||||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||||
displayMetrics.xdpi = 100;
|
displayMetrics.xdpi = 100;
|
||||||
displayMetrics.ydpi = 100;
|
displayMetrics.ydpi = 100;
|
||||||
displayMetrics.widthPixels = 1000;
|
displayMetrics.widthPixels = 1000;
|
||||||
displayMetrics.heightPixels = 1000;
|
displayMetrics.heightPixels = 1000;
|
||||||
mDataProvider = new FalsingDataProvider(displayMetrics);
|
mDataProvider = new FalsingDataProvider(displayMetrics, mFakeBatteryController);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@@ -246,4 +250,12 @@ public class FalsingDataProviderTest extends ClassifierTest {
|
|||||||
assertThat(mDataProvider.isUp(), is(false));
|
assertThat(mDataProvider.isUp(), is(false));
|
||||||
mDataProvider.onSessionEnd();
|
mDataProvider.onSessionEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_isWirelessCharging() {
|
||||||
|
assertThat(mDataProvider.isWirelessCharging(), is(false));
|
||||||
|
|
||||||
|
mFakeBatteryController.setWirelessCharging(true);
|
||||||
|
assertThat(mDataProvider.isWirelessCharging(), is(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import java.io.PrintWriter;
|
|||||||
|
|
||||||
public class FakeBatteryController extends BaseLeakChecker<BatteryStateChangeCallback>
|
public class FakeBatteryController extends BaseLeakChecker<BatteryStateChangeCallback>
|
||||||
implements BatteryController {
|
implements BatteryController {
|
||||||
|
private boolean mWirelessCharging;
|
||||||
|
|
||||||
public FakeBatteryController(LeakCheck test) {
|
public FakeBatteryController(LeakCheck test) {
|
||||||
super(test, "battery");
|
super(test, "battery");
|
||||||
}
|
}
|
||||||
@@ -58,4 +60,13 @@ public class FakeBatteryController extends BaseLeakChecker<BatteryStateChangeCal
|
|||||||
public boolean isAodPowerSave() {
|
public boolean isAodPowerSave() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWirelessCharging() {
|
||||||
|
return mWirelessCharging;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWirelessCharging(boolean wirelessCharging) {
|
||||||
|
mWirelessCharging = wirelessCharging;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user