-
- recalculatePausing();
- }
-
- private void onBrightnessReady(boolean brightnessReady) {
- // Post because this is sometimes called during state transitions and we cannot query
- // the machine's state while it's transitioning.
- mHandler.post(this::recalculatePausing);
- }
-
- private void recalculatePausing() {
- boolean brightnessReady = mDozeScreenBrightness.isReady();
- Boolean proxCurrentlyFar = mDozeSensors.isProximityCurrentlyFar();
-
- // Treat UNKNOWN the same as FAR, such that we don't pause the display just because
- // the prox has unknown state.
- boolean proximityFar = proxCurrentlyFar == null || proxCurrentlyFar;
- recalculatePausing(proximityFar, brightnessReady);
- }
-
- @VisibleForTesting
- void recalculatePausing(boolean proximityFar, boolean brightnessReady) {
- final boolean near = !proximityFar;
- final DozeMachine.State state = mMachine.getState();
- final boolean paused = (state == DozeMachine.State.DOZE_AOD_PAUSED);
- final boolean pausing = (state == DozeMachine.State.DOZE_AOD_PAUSING);
- final boolean aod = (state == DozeMachine.State.DOZE_AOD);
-
- if (proximityFar && (pausing || paused && brightnessReady)) {