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

Commit f25ecd27 authored by Chandru S's avatar Chandru S Committed by Automerger Merge Worker
Browse files

Merge "Plumb through the reason for wakeup from Doze." into tm-qpr-dev am: 8055d0e9

parents a81dbf5f 8055d0e9
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -269,9 +269,10 @@ public class DozeMachine {
        return mPulseReason;
    }

    /** Requests the PowerManager to wake up now. */
    public void wakeUp() {
        mDozeService.requestWakeUp();
    /** Requests the PowerManager to wake up now.
     * @param reason {@link DozeLog.Reason} that woke up the device.*/
    public void wakeUp(@DozeLog.Reason int reason) {
        mDozeService.requestWakeUp(reason);
    }

    public boolean isExecutingTransition() {
@@ -469,7 +470,7 @@ public class DozeMachine {
        void setDozeScreenState(int state);

        /** Request waking up. */
        void requestWakeUp();
        void requestWakeUp(@DozeLog.Reason int reason);

        /** Set screen brightness */
        void setDozeScreenBrightness(int brightness);
@@ -492,8 +493,8 @@ public class DozeMachine {
            }

            @Override
            public void requestWakeUp() {
                mDelegate.requestWakeUp();
            public void requestWakeUp(@DozeLog.Reason int reason) {
                mDelegate.requestWakeUp(reason);
            }

            @Override
+2 −2
Original line number Diff line number Diff line
@@ -113,10 +113,10 @@ public class DozeService extends DreamService
    }

    @Override
    public void requestWakeUp() {
    public void requestWakeUp(@DozeLog.Reason int reason) {
        PowerManager pm = getSystemService(PowerManager.class);
        pm.wakeUp(SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_GESTURE,
                "com.android.systemui:NODOZE");
                "com.android.systemui:NODOZE " + DozeLog.reasonToString(reason));
    }

    @Override
+21 −20
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.systemui.doze;

import static android.app.StatusBarManager.SESSION_KEYGUARD;

import static com.android.systemui.doze.DozeMachine.State.DOZE_SUSPEND_TRIGGERS;
import static com.android.systemui.doze.DozeMachine.State.FINISH;
import static com.android.systemui.doze.DozeMachine.State.UNINITIALIZED;
@@ -34,19 +36,19 @@ import android.util.Log;
import android.view.Display;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.InstanceId;
import com.android.internal.logging.UiEvent;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.biometrics.AuthController;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dock.DockManager;
import com.android.systemui.doze.DozeMachine.State;
import com.android.systemui.doze.dagger.DozeScope;
import com.android.systemui.log.SessionTracker;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.policy.DevicePostureController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.Assert;
import com.android.systemui.util.concurrency.DelayableExecutor;
import com.android.systemui.util.sensors.AsyncSensorManager;
import com.android.systemui.util.sensors.ProximityCheck;
import com.android.systemui.util.sensors.ProximitySensor;
@@ -80,6 +82,7 @@ public class DozeTriggers implements DozeMachine.Part {
    private static final int PROXIMITY_TIMEOUT_DELAY_MS = 500;

    private final Context mContext;
    private final SessionTracker mSessionTracker;
    private DozeMachine mMachine;
    private final DozeLog mDozeLog;
    private final DozeSensors mDozeSensors;
@@ -95,10 +98,8 @@ public class DozeTriggers implements DozeMachine.Part {
    private final ProximityCheck mProxCheck;
    private final BroadcastDispatcher mBroadcastDispatcher;
    private final AuthController mAuthController;
    private final DelayableExecutor mMainExecutor;
    private final KeyguardStateController mKeyguardStateController;
    private final UiEventLogger mUiEventLogger;
    private final DevicePostureController mDevicePostureController;

    private long mNotificationPulseTime;
    private boolean mPulsePending;
@@ -185,8 +186,8 @@ public class DozeTriggers implements DozeMachine.Part {
            ProximityCheck proxCheck,
            DozeLog dozeLog, BroadcastDispatcher broadcastDispatcher,
            SecureSettings secureSettings, AuthController authController,
            @Main DelayableExecutor mainExecutor,
            UiEventLogger uiEventLogger,
            SessionTracker sessionTracker,
            KeyguardStateController keyguardStateController,
            DevicePostureController devicePostureController) {
        mContext = context;
@@ -196,8 +197,8 @@ public class DozeTriggers implements DozeMachine.Part {
        mSensorManager = sensorManager;
        mWakeLock = wakeLock;
        mAllowPulseTriggers = true;
        mSessionTracker = sessionTracker;

        mDevicePostureController = devicePostureController;
        mDozeSensors = new DozeSensors(context, mSensorManager, dozeParameters,
                config, wakeLock, this::onSensor, this::onProximityFar, dozeLog, proximitySensor,
                secureSettings, authController, devicePostureController);
@@ -206,14 +207,9 @@ public class DozeTriggers implements DozeMachine.Part {
        mDozeLog = dozeLog;
        mBroadcastDispatcher = broadcastDispatcher;
        mAuthController = authController;
        mMainExecutor = mainExecutor;
        mUiEventLogger = uiEventLogger;
        mKeyguardStateController = keyguardStateController;
    }
    private final DevicePostureController.Callback mDevicePostureCallback =
            posture -> {

            };

    @Override
    public void setDozeMachine(DozeMachine dozeMachine) {
@@ -271,7 +267,7 @@ public class DozeTriggers implements DozeMachine.Part {
            mProxCheck.check(PROXIMITY_TIMEOUT_DELAY_MS, near -> {
                final long end = SystemClock.uptimeMillis();
                mDozeLog.traceProximityResult(
                        near == null ? false : near,
                        near != null && near,
                        end - start,
                        reason);
                callback.accept(near);
@@ -354,17 +350,17 @@ public class DozeTriggers implements DozeMachine.Part {
        return mKeyguardStateController.isOccluded();
    }

    private void gentleWakeUp(int reason) {
    private void gentleWakeUp(@DozeLog.Reason int reason) {
        // Log screen wake up reason (lift/pickup, tap, double-tap)
        Optional.ofNullable(DozingUpdateUiEvent.fromReason(reason))
                .ifPresent(mUiEventLogger::log);
                .ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
        if (mDozeParameters.getDisplayNeedsBlanking()) {
            // Let's prepare the display to wake-up by drawing black.
            // This will cover the hardware wake-up sequence, where the display
            // becomes black for a few frames.
            mDozeHost.setAodDimmingScrim(1f);
        }
        mMachine.wakeUp();
        mMachine.wakeUp(reason);
    }

    private void onProximityFar(boolean far) {
@@ -384,11 +380,10 @@ public class DozeTriggers implements DozeMachine.Part {

        if (state == DozeMachine.State.DOZE_PULSING
                || state == DozeMachine.State.DOZE_PULSING_BRIGHT) {
            boolean ignoreTouch = near;
            if (DEBUG) {
                Log.i(TAG, "Prox changed, ignore touch = " + ignoreTouch);
                Log.i(TAG, "Prox changed, ignore touch = " + near);
            }
            mDozeHost.onIgnoreTouchWhilePulsing(ignoreTouch);
            mDozeHost.onIgnoreTouchWhilePulsing(near);
        }

        if (far && (paused || pausing)) {
@@ -424,7 +419,8 @@ public class DozeTriggers implements DozeMachine.Part {
                    mMachine.requestState(DozeMachine.State.DOZE_AOD);
                    // Log sensor triggered
                    Optional.ofNullable(DozingUpdateUiEvent.fromReason(reason))
                            .ifPresent(mUiEventLogger::log);
                            .ifPresent(uiEventEnum ->
                                    mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
                }
            }, false /* alreadyPerformedProxCheck */, reason);
        } else {
@@ -564,7 +560,7 @@ public class DozeTriggers implements DozeMachine.Part {

        // Logs request pulse reason on AOD screen.
        Optional.ofNullable(DozingUpdateUiEvent.fromReason(reason))
                .ifPresent(mUiEventLogger::log);
                .ifPresent(uiEventEnum -> mUiEventLogger.log(uiEventEnum, getKeyguardSessionId()));
    }

    private boolean canPulse() {
@@ -583,6 +579,11 @@ public class DozeTriggers implements DozeMachine.Part {
        mMachine.requestPulse(reason);
    }

    @Nullable
    private InstanceId getKeyguardSessionId() {
        return mSessionTracker.getSessionId(SESSION_KEYGUARD);
    }

    @Override
    public void dump(PrintWriter pw) {
        pw.println(" mAodInterruptRunnable=" + mAodInterruptRunnable);
+1 −1
Original line number Diff line number Diff line
@@ -448,7 +448,7 @@ public class DozeMachineTest extends SysuiTestCase {

    @Test
    public void testWakeUp_wakesUp() {
        mMachine.wakeUp();
        mMachine.wakeUp(DozeLog.REASON_SENSOR_PICKUP);

        assertTrue(mServiceFake.requestedWakeup);
    }
+3 −3
Original line number Diff line number Diff line
@@ -75,9 +75,9 @@ public class DozeScreenStatePreventingAdapterTest extends SysuiTestCase {
    }

    @Test
    public void forwards_requestWakeUp() throws Exception {
        mWrapper.requestWakeUp();
        verify(mInner).requestWakeUp();
    public void forwards_requestWakeUp() {
        mWrapper.requestWakeUp(DozeLog.REASON_SENSOR_PICKUP);
        verify(mInner).requestWakeUp(DozeLog.REASON_SENSOR_PICKUP);
    }

    @Test
Loading