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

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

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

parents d5b85d4e 2f49a75e
Loading
Loading
Loading
Loading
+6 −2
Original line number 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, {
            str1 = from
            str2 = state.name
            str2 = state?.name
        }, {
            "Pulse dropped, cannot pulse from=$str1 state=$str2"
        })
+11 −10
Original line number Diff line number Diff line
@@ -536,13 +536,13 @@ public class DozeTriggers implements DozeMachine.Part {
            return;
        }

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

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

    @Nullable
+14 −2
Original line number 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.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -88,6 +88,8 @@ public class DozeTriggersTest extends SysuiTestCase {
    @Mock
    private ProximityCheck mProximityCheck;
    @Mock
    private DozeLog mDozeLog;
    @Mock
    private AuthController mAuthController;
    @Mock
    private UiEventLogger mUiEventLogger;
@@ -127,7 +129,7 @@ public class DozeTriggersTest extends SysuiTestCase {

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