diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java index 905ae1d4ca808..75ee447cdf499 100644 --- a/services/core/java/com/android/server/display/DisplayPowerController.java +++ b/services/core/java/com/android/server/display/DisplayPowerController.java @@ -1204,6 +1204,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call } assert(state != Display.STATE_UNKNOWN); + boolean skipRampBecauseOfProximityChangeToNegative = false; // Apply the proximity sensor. if (mProximitySensor != null) { if (mPowerRequest.useProximitySensor && state != Display.STATE_OFF) { @@ -1241,6 +1242,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call // the screen back on. Also turn it back on if we've been asked to ignore the // prox sensor temporarily. mScreenOffBecauseOfProximity = false; + skipRampBecauseOfProximityChangeToNegative = true; sendOnProximityNegativeWithWakelock(); } } else { @@ -1523,8 +1525,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call final boolean wasOrWillBeInVr = (state == Display.STATE_VR || oldState == Display.STATE_VR); - final boolean initialRampSkip = - state == Display.STATE_ON && mSkipRampState != RAMP_STATE_SKIP_NONE; + final boolean initialRampSkip = (state == Display.STATE_ON && mSkipRampState + != RAMP_STATE_SKIP_NONE) || skipRampBecauseOfProximityChangeToNegative; // While dozing, sometimes the brightness is split into buckets. Rather than animating // through the buckets, which is unlikely to be smooth in the first place, just jump // right to the suggested brightness.