Merge "Defer display ready until brightness ramp completes." into klp-modular-dev
This commit is contained in:
@@ -544,6 +544,7 @@ final class DisplayPowerController {
|
|||||||
|
|
||||||
mScreenBrightnessRampAnimator = new RampAnimator<DisplayPowerState>(
|
mScreenBrightnessRampAnimator = new RampAnimator<DisplayPowerState>(
|
||||||
mPowerState, DisplayPowerState.SCREEN_BRIGHTNESS);
|
mPowerState, DisplayPowerState.SCREEN_BRIGHTNESS);
|
||||||
|
mScreenBrightnessRampAnimator.setListener(mRampAnimatorListener);
|
||||||
|
|
||||||
// Initialize screen state for battery stats.
|
// Initialize screen state for battery stats.
|
||||||
try {
|
try {
|
||||||
@@ -570,6 +571,13 @@ final class DisplayPowerController {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private final RampAnimator.Listener mRampAnimatorListener = new RampAnimator.Listener() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd() {
|
||||||
|
sendUpdatePowerState();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private void updatePowerState() {
|
private void updatePowerState() {
|
||||||
// Update the power state request.
|
// Update the power state request.
|
||||||
final boolean mustNotify;
|
final boolean mustNotify;
|
||||||
@@ -753,6 +761,7 @@ final class DisplayPowerController {
|
|||||||
&& !mScreenOnWasBlocked
|
&& !mScreenOnWasBlocked
|
||||||
&& !mElectronBeamOnAnimator.isStarted()
|
&& !mElectronBeamOnAnimator.isStarted()
|
||||||
&& !mElectronBeamOffAnimator.isStarted()
|
&& !mElectronBeamOffAnimator.isStarted()
|
||||||
|
&& !mScreenBrightnessRampAnimator.isAnimating()
|
||||||
&& mPowerState.waitUntilClean(mCleanListener)) {
|
&& mPowerState.waitUntilClean(mCleanListener)) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
if (!mPendingRequestChangedLocked) {
|
if (!mPendingRequestChangedLocked) {
|
||||||
@@ -1290,6 +1299,9 @@ final class DisplayPowerController {
|
|||||||
pw.println(" mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
|
pw.println(" mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
|
||||||
pw.println(" mTwilight.getCurrentState()=" + mTwilight.getCurrentState());
|
pw.println(" mTwilight.getCurrentState()=" + mTwilight.getCurrentState());
|
||||||
|
|
||||||
|
pw.println(" mScreenBrightnessRampAnimator.isAnimating()=" +
|
||||||
|
mScreenBrightnessRampAnimator.isAnimating());
|
||||||
|
|
||||||
if (mElectronBeamOnAnimator != null) {
|
if (mElectronBeamOnAnimator != null) {
|
||||||
pw.println(" mElectronBeamOnAnimator.isStarted()=" +
|
pw.println(" mElectronBeamOnAnimator.isStarted()=" +
|
||||||
mElectronBeamOnAnimator.isStarted());
|
mElectronBeamOnAnimator.isStarted());
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ final class RampAnimator<T> {
|
|||||||
|
|
||||||
private boolean mFirstTime = true;
|
private boolean mFirstTime = true;
|
||||||
|
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
public RampAnimator(T object, IntProperty<T> property) {
|
public RampAnimator(T object, IntProperty<T> property) {
|
||||||
mObject = object;
|
mObject = object;
|
||||||
mProperty = property;
|
mProperty = property;
|
||||||
@@ -92,6 +94,20 @@ final class RampAnimator<T> {
|
|||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the animation is running.
|
||||||
|
*/
|
||||||
|
public boolean isAnimating() {
|
||||||
|
return mAnimating;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a listener to watch for animation events.
|
||||||
|
*/
|
||||||
|
public void setListener(Listener listener) {
|
||||||
|
mListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
private void postCallback() {
|
private void postCallback() {
|
||||||
mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mCallback, null);
|
mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mCallback, null);
|
||||||
}
|
}
|
||||||
@@ -131,7 +147,14 @@ final class RampAnimator<T> {
|
|||||||
postCallback();
|
postCallback();
|
||||||
} else {
|
} else {
|
||||||
mAnimating = false;
|
mAnimating = false;
|
||||||
|
if (mListener != null) {
|
||||||
|
mListener.onAnimationEnd();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public interface Listener {
|
||||||
|
void onAnimationEnd();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user