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

Commit b33201d2 authored by Dave Mankoff's avatar Dave Mankoff Committed by Automerger Merge Worker
Browse files

Merge "Don't turn on prox until after screen is off/dozed" into rvc-d1-dev am:...

Merge "Don't turn on prox until after screen is off/dozed" into rvc-d1-dev am: 6f718bba am: 42cc90e8

Change-Id: I5f0c05dd9df5b8602e1725bb20250ca8fa02972d
parents 6c35fe03 42cc90e8
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -199,6 +199,12 @@ public class DozeMachine {
        requestState(State.DOZE_REQUEST_PULSE, pulseReason);
    }

    void onScreenState(int state) {
        for (Part part : mParts) {
            part.onScreenState(state);
        }
    }

    private void requestState(State requestedState, int pulseReason) {
        Assert.isMainThread();
        if (DEBUG) {
@@ -423,6 +429,9 @@ public class DozeMachine {

        /** Give the Part a chance to clean itself up. */
        default void destroy() {}

        /** Alerts that the screenstate is being changed. */
        default void onScreenState(int state) {}
    }

    /** A wrapper interface for {@link android.service.dreams.DreamService} */
+13 −8
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.SystemProperties;
import android.os.Trace;
import android.os.UserHandle;
import android.provider.Settings;
import android.view.Display;

import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -68,6 +69,7 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
     * --ei brightness_bucket 1}
     */
    private int mDebugBrightnessBucket = -1;
    private DozeMachine.State mState;

    @VisibleForTesting
    public DozeScreenBrightness(Context context, DozeMachine.Service service,
@@ -107,17 +109,10 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi

    @Override
    public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
        mState = newState;
        switch (newState) {
            case INITIALIZED:
                resetBrightnessToDefault();
                break;
            case DOZE_AOD:
            case DOZE_REQUEST_PULSE:
            case DOZE_AOD_DOCKED:
                setLightSensorEnabled(true);
                break;
            case DOZE:
                setLightSensorEnabled(false);
                resetBrightnessToDefault();
                break;
            case FINISH:
@@ -130,6 +125,16 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
        }
    }

    @Override
    public void onScreenState(int state) {
        if (mState == DozeMachine.State.FINISH && !mScreenOff
                && (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND)) {
            setLightSensorEnabled(true);
        } else {
            setLightSensorEnabled(false);
        }
    }

    private void onDestroy() {
        setLightSensorEnabled(false);
        if (mDebuggable) {
+1 −19
Original line number Diff line number Diff line
@@ -66,7 +66,6 @@ public class DozeSensors {
    private final AlarmManager mAlarmManager;
    private final AsyncSensorManager mSensorManager;
    private final ContentResolver mResolver;
    private final TriggerSensor mPickupSensor;
    private final DozeParameters mDozeParameters;
    private final AmbientDisplayConfiguration mConfig;
    private final WakeLock mWakeLock;
@@ -80,7 +79,6 @@ public class DozeSensors {
    private long mDebounceFrom;
    private boolean mSettingRegistered;
    private boolean mListening;
    private boolean mPaused;

    @VisibleForTesting
    public enum DozeSensorsUiEvent implements UiEventLogger.UiEventEnum {
@@ -121,7 +119,7 @@ public class DozeSensors {
                        dozeParameters.getPulseOnSigMotion(),
                        DozeLog.PULSE_REASON_SENSOR_SIGMOTION, false /* touchCoords */,
                        false /* touchscreen */, dozeLog),
                mPickupSensor = new TriggerSensor(
                new TriggerSensor(
                        mSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE),
                        Settings.Secure.DOZE_PICK_UP_GESTURE,
                        true /* settingDef */,
@@ -231,18 +229,6 @@ public class DozeSensors {
        updateListening();
    }

    /**
     * Unregister sensors, when listening, unless they are prox gated.
     * @see #setListening(boolean)
     */
    public void setPaused(boolean paused) {
        if (mPaused == paused) {
            return;
        }
        mPaused = paused;
        updateListening();
    }

    /**
     * Registers/unregisters sensors based on internal state.
     */
@@ -304,10 +290,6 @@ public class DozeSensors {
        }
    };

    public void setDisableSensorsInterferingWithProximity(boolean disable) {
        mPickupSensor.setDisabled(disable);
    }

    /** Ignore the setting value of only the sensors that require the touchscreen. */
    public void ignoreTouchScreenSensorsSettingInterferingWithDocking(boolean ignore) {
        for (TriggerSensor sensor : mSensors) {
+6 −0
Original line number Diff line number Diff line
@@ -130,4 +130,10 @@ public class DozeService extends DreamService
            mDozeMachine.requestState(DozeMachine.State.DOZE);
        }
    }

    @Override
    public void setDozeScreenState(int state) {
        super.setDozeScreenState(state);
        mDozeMachine.onScreenState(state);
    }
}
+23 −8
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.os.SystemClock;
import android.os.UserHandle;
import android.text.format.Formatter;
import android.util.Log;
import android.view.Display;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
@@ -93,6 +94,9 @@ public class DozeTriggers implements DozeMachine.Part {
    private boolean mPulsePending;

    private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
    private boolean mWantProx;
    private boolean mWantSensors;
    private boolean mWantTouchScreenSensors;

    @VisibleForTesting
    public enum DozingUpdateUiEvent implements UiEventLogger.UiEventEnum {
@@ -384,24 +388,22 @@ public class DozeTriggers implements DozeMachine.Part {
                break;
            case DOZE:
            case DOZE_AOD:
                mDozeSensors.setProxListening(newState != DozeMachine.State.DOZE);
                mDozeSensors.setListening(true);
                mDozeSensors.setPaused(false);
                mWantProx = newState != DozeMachine.State.DOZE;
                mWantSensors = true;
                mWantTouchScreenSensors = true;
                if (newState == DozeMachine.State.DOZE_AOD && !sWakeDisplaySensorState) {
                    onWakeScreen(false, newState);
                }
                break;
            case DOZE_AOD_PAUSED:
            case DOZE_AOD_PAUSING:
                mDozeSensors.setProxListening(true);
                mDozeSensors.setPaused(true);
                mWantProx = true;
                break;
            case DOZE_PULSING:
            case DOZE_PULSING_BRIGHT:
            case DOZE_AOD_DOCKED:
                mDozeSensors.setTouchscreenSensorsListening(false);
                mDozeSensors.setProxListening(true);
                mDozeSensors.setPaused(false);
                mWantProx = true;
                mWantTouchScreenSensors = false;
                break;
            case DOZE_PULSE_DONE:
                mDozeSensors.requestTemporaryDisable();
@@ -420,6 +422,19 @@ public class DozeTriggers implements DozeMachine.Part {
        }
    }

    @Override
    public void onScreenState(int state) {
        if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND
                || state == Display.STATE_OFF) {
            mDozeSensors.setProxListening(mWantProx);
            mDozeSensors.setListening(mWantSensors);
            mDozeSensors.setTouchscreenSensorsListening(mWantTouchScreenSensors);
        } else {
            mDozeSensors.setProxListening(false);
            mDozeSensors.setListening(false);
        }
    }

    private void checkTriggersAtInit() {
        if (mUiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR
                || mDozeHost.isBlockingDoze()
Loading