Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed708194 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Don't immediately start listening to Prox in DozeSensors."

parents 7ccb5abe 86c7344d
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -80,8 +80,7 @@ public class DozeSensors {

    public DozeSensors(Context context, AlarmManager alarmManager, AsyncSensorManager sensorManager,
            DozeParameters dozeParameters, AmbientDisplayConfiguration config, WakeLock wakeLock,
            Callback callback, Consumer<Boolean> proxCallback, AlwaysOnDisplayPolicy policy,
            DozeLog dozeLog) {
            Callback callback, Consumer<Boolean> proxCallback, DozeLog dozeLog) {
        mContext = context;
        mAlarmManager = alarmManager;
        mSensorManager = sensorManager;
@@ -154,7 +153,7 @@ public class DozeSensors {
        };

        mProximitySensor = new ProximitySensor(context.getResources(), sensorManager);

        setProxListening(false);  // Don't immediately start listening when we register.
        mProximitySensor.register(
                proximityEvent -> {
                    if (proximityEvent != null) {
+1 −2
Original line number Diff line number Diff line
@@ -103,8 +103,7 @@ public class DozeTriggers implements DozeMachine.Part {
        mWakeLock = wakeLock;
        mAllowPulseTriggers = allowPulseTriggers;
        mDozeSensors = new DozeSensors(context, alarmManager, mSensorManager, dozeParameters,
                config, wakeLock, this::onSensor, this::onProximityFar,
                dozeParameters.getPolicy(), dozeLog);
                config, wakeLock, this::onSensor, this::onProximityFar, dozeLog);
        mUiModeManager = mContext.getSystemService(UiModeManager.class);
        mDockManager = dockManager;
        mProxCheck = new ProximitySensor.ProximityCheck(proximitySensor, handler);
+16 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import static org.mockito.Mockito.when;

import android.app.AlarmManager;
import android.database.ContentObserver;
import android.hardware.Sensor;
import android.hardware.display.AmbientDisplayConfiguration;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -80,6 +81,8 @@ public class DozeSensorsTest extends SysuiTestCase {
    private TriggerSensor mTriggerSensor;
    @Mock
    private DozeLog mDozeLog;
    @Mock
    private Sensor mProximitySensor;
    private SensorManagerPlugin.SensorEventListener mWakeLockScreenListener;
    private TestableLooper mTestableLooper;
    private DozeSensors mDozeSensors;
@@ -90,6 +93,7 @@ public class DozeSensorsTest extends SysuiTestCase {
        mTestableLooper = TestableLooper.get(this);
        when(mAmbientDisplayConfiguration.getWakeLockScreenDebounce()).thenReturn(5000L);
        when(mAmbientDisplayConfiguration.alwaysOnEnabled(anyInt())).thenReturn(true);
        when(mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)).thenReturn(mProximitySensor);
        doAnswer(invocation -> {
            ((Runnable) invocation.getArgument(0)).run();
            return null;
@@ -97,6 +101,14 @@ public class DozeSensorsTest extends SysuiTestCase {
        mDozeSensors = new TestableDozeSensors();
    }

    @Test
    public void testRegisterProx() {
        // We should not register with the sensor manager initially.
        verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
        mDozeSensors.setProxListening(true);
        verify(mSensorManager).registerListener(any(), any(Sensor.class), anyInt());
    }

    @Test
    public void testSensorDebounce() {
        mDozeSensors.setListening(true);
@@ -116,6 +128,7 @@ public class DozeSensorsTest extends SysuiTestCase {

    @Test
    public void testSetListening_firstTrue_registerSettingsObserver() {
        verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
        mDozeSensors.setListening(true);

        verify(mTriggerSensor).registerSettingsObserver(any(ContentObserver.class));
@@ -123,6 +136,7 @@ public class DozeSensorsTest extends SysuiTestCase {

    @Test
    public void testSetListening_twiceTrue_onlyRegisterSettingsObserverOnce() {
        verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
        mDozeSensors.setListening(true);
        mDozeSensors.setListening(true);

@@ -131,6 +145,7 @@ public class DozeSensorsTest extends SysuiTestCase {

    @Test
    public void testSetPaused_doesntPause_sensors() {
        verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
        mDozeSensors.setListening(true);
        verify(mTriggerSensor).setListening(eq(true));

@@ -147,8 +162,7 @@ public class DozeSensorsTest extends SysuiTestCase {

        TestableDozeSensors() {
            super(getContext(), mAlarmManager, mSensorManager, mDozeParameters,
                    mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback,
                    mAlwaysOnDisplayPolicy, mDozeLog);
                    mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog);
            for (TriggerSensor sensor : mSensors) {
                if (sensor instanceof PluginSensor
                        && ((PluginSensor) sensor).mPluginSensor.getType()