Display's transition phase checked before DPC init.
DisplayPowerController checks to see if a display is in a transition as part of it's display state calculation. However, this was happening only after the initialization call in DPC on the first loop of updatePowerState. This meant that a display added in a TRANSITION phase would get incorrectly initialized to ON instead of OFF. Test: Manually verify in logs that new displays are not initialized to ON during the fold action of a foldable device. Bug: 199123716 Change-Id: I8a2b3154cf4c36bc5fe924e787a3db1d11933f79
This commit is contained in:
@@ -1052,11 +1052,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
}
|
||||
assert(state != Display.STATE_UNKNOWN);
|
||||
|
||||
// Initialize things the first time the power state is changed.
|
||||
if (mustInitialize) {
|
||||
initialize(state);
|
||||
}
|
||||
|
||||
// Apply the proximity sensor.
|
||||
if (mProximitySensor != null) {
|
||||
if (mPowerRequest.useProximitySensor && state != Display.STATE_OFF) {
|
||||
@@ -1107,6 +1102,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
||||
state = Display.STATE_OFF;
|
||||
}
|
||||
|
||||
// Initialize things the first time the power state is changed.
|
||||
if (mustInitialize) {
|
||||
initialize(state);
|
||||
}
|
||||
|
||||
// Animate the screen state change unless already animating.
|
||||
// The transition may be deferred, so after this point we will use the
|
||||
// actual state instead of the desired one.
|
||||
|
||||
Reference in New Issue
Block a user