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

Commit 3ec2b325 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add null-safety check for DozeState" into tm-qpr-dev am: c518a734

parents 5bbd434c c518a734
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -224,10 +224,14 @@ class DozeLogger @Inject constructor(
        })
        })
    }
    }


    fun logPulseDropped(from: String, state: DozeMachine.State) {
    /**
     * Log why a pulse was dropped and the current doze machine state. The state can be null
     * if the DozeMachine is the middle of transitioning between states.
     */
    fun logPulseDropped(from: String, state: DozeMachine.State?) {
        buffer.log(TAG, INFO, {
        buffer.log(TAG, INFO, {
            str1 = from
            str1 = from
            str2 = state.name
            str2 = state?.name
        }, {
        }, {
            "Pulse dropped, cannot pulse from=$str1 state=$str2"
            "Pulse dropped, cannot pulse from=$str1 state=$str2"
        })
        })
+11 −10
Original line number Original line Diff line number Diff line
@@ -536,13 +536,13 @@ public class DozeTriggers implements DozeMachine.Part {
            return;
            return;
        }
        }


        if (!mAllowPulseTriggers || mDozeHost.isPulsePending() || !canPulse()) {
        if (!mAllowPulseTriggers || mDozeHost.isPulsePending() || !canPulse(dozeState)) {
            if (!mAllowPulseTriggers) {
            if (!mAllowPulseTriggers) {
                mDozeLog.tracePulseDropped("requestPulse - !mAllowPulseTriggers");
                mDozeLog.tracePulseDropped("requestPulse - !mAllowPulseTriggers");
            } else if (mDozeHost.isPulsePending()) {
            } else if (mDozeHost.isPulsePending()) {
                mDozeLog.tracePulseDropped("requestPulse - pulsePending");
                mDozeLog.tracePulseDropped("requestPulse - pulsePending");
            } else if (!canPulse()) {
            } else if (!canPulse(dozeState)) {
                mDozeLog.tracePulseDropped("requestPulse", dozeState);
                mDozeLog.tracePulseDropped("requestPulse - dozeState cannot pulse", dozeState);
            }
            }
            runIfNotNull(onPulseSuppressedListener);
            runIfNotNull(onPulseSuppressedListener);
            return;
            return;
@@ -559,15 +559,16 @@ public class DozeTriggers implements DozeMachine.Part {
                // not in pocket, continue pulsing
                // not in pocket, continue pulsing
                final boolean isPulsePending = mDozeHost.isPulsePending();
                final boolean isPulsePending = mDozeHost.isPulsePending();
                mDozeHost.setPulsePending(false);
                mDozeHost.setPulsePending(false);
                if (!isPulsePending || mDozeHost.isPulsingBlocked() || !canPulse()) {
                if (!isPulsePending || mDozeHost.isPulsingBlocked() || !canPulse(dozeState)) {
                    if (!isPulsePending) {
                    if (!isPulsePending) {
                        mDozeLog.tracePulseDropped("continuePulseRequest - pulse no longer"
                        mDozeLog.tracePulseDropped("continuePulseRequest - pulse no longer"
                                + " pending, pulse was cancelled before it could start"
                                + " pending, pulse was cancelled before it could start"
                                + " transitioning to pulsing state.");
                                + " transitioning to pulsing state.");
                    } else if (mDozeHost.isPulsingBlocked()) {
                    } else if (mDozeHost.isPulsingBlocked()) {
                        mDozeLog.tracePulseDropped("continuePulseRequest - pulsingBlocked");
                        mDozeLog.tracePulseDropped("continuePulseRequest - pulsingBlocked");
                    } else if (!canPulse()) {
                    } else if (!canPulse(dozeState)) {
                        mDozeLog.tracePulseDropped("continuePulseRequest", mMachine.getState());
                        mDozeLog.tracePulseDropped("continuePulseRequest"
                                + " - doze state cannot pulse", dozeState);
                    }
                    }
                    runIfNotNull(onPulseSuppressedListener);
                    runIfNotNull(onPulseSuppressedListener);
                    return;
                    return;
@@ -582,10 +583,10 @@ public class DozeTriggers implements DozeMachine.Part {
                .ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
                .ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
    }
    }


    private boolean canPulse() {
    private boolean canPulse(DozeMachine.State dozeState) {
        return mMachine.getState() == DozeMachine.State.DOZE
        return dozeState == DozeMachine.State.DOZE
                || mMachine.getState() == DozeMachine.State.DOZE_AOD
                || dozeState == DozeMachine.State.DOZE_AOD
                || mMachine.getState() == DozeMachine.State.DOZE_AOD_DOCKED;
                || dozeState == DozeMachine.State.DOZE_AOD_DOCKED;
    }
    }


    @Nullable
    @Nullable
+14 −2
Original line number Original line Diff line number Diff line
@@ -23,10 +23,10 @@ import static com.android.systemui.doze.DozeMachine.State.UNINITIALIZED;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
@@ -88,6 +88,8 @@ public class DozeTriggersTest extends SysuiTestCase {
    @Mock
    @Mock
    private ProximityCheck mProximityCheck;
    private ProximityCheck mProximityCheck;
    @Mock
    @Mock
    private DozeLog mDozeLog;
    @Mock
    private AuthController mAuthController;
    private AuthController mAuthController;
    @Mock
    @Mock
    private UiEventLogger mUiEventLogger;
    private UiEventLogger mUiEventLogger;
@@ -127,7 +129,7 @@ public class DozeTriggersTest extends SysuiTestCase {


        mTriggers = new DozeTriggers(mContext, mHost, config, dozeParameters,
        mTriggers = new DozeTriggers(mContext, mHost, config, dozeParameters,
                asyncSensorManager, wakeLock, mDockManager, mProximitySensor,
                asyncSensorManager, wakeLock, mDockManager, mProximitySensor,
                mProximityCheck, mock(DozeLog.class), mBroadcastDispatcher, new FakeSettings(),
                mProximityCheck, mDozeLog, mBroadcastDispatcher, new FakeSettings(),
                mAuthController, mUiEventLogger, mSessionTracker, mKeyguardStateController,
                mAuthController, mUiEventLogger, mSessionTracker, mKeyguardStateController,
                mDevicePostureController);
                mDevicePostureController);
        mTriggers.setDozeMachine(mMachine);
        mTriggers.setDozeMachine(mMachine);
@@ -342,6 +344,16 @@ public class DozeTriggersTest extends SysuiTestCase {
        verify(mProximityCheck).destroy();
        verify(mProximityCheck).destroy();
    }
    }


    @Test
    public void testIsExecutingTransition_dropPulse() {
        when(mHost.isPulsePending()).thenReturn(false);
        when(mMachine.isExecutingTransition()).thenReturn(true);

        mTriggers.onSensor(DozeLog.PULSE_REASON_SENSOR_LONG_PRESS, 100, 100, null);

        verify(mDozeLog).tracePulseDropped(anyString(), eq(null));
    }

    private void waitForSensorManager() {
    private void waitForSensorManager() {
        mExecutor.runAllReady();
        mExecutor.runAllReady();
    }
    }