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>(
|
||||
mPowerState, DisplayPowerState.SCREEN_BRIGHTNESS);
|
||||
mScreenBrightnessRampAnimator.setListener(mRampAnimatorListener);
|
||||
|
||||
// Initialize screen state for battery stats.
|
||||
try {
|
||||
@@ -570,6 +571,13 @@ final class DisplayPowerController {
|
||||
}
|
||||
};
|
||||
|
||||
private final RampAnimator.Listener mRampAnimatorListener = new RampAnimator.Listener() {
|
||||
@Override
|
||||
public void onAnimationEnd() {
|
||||
sendUpdatePowerState();
|
||||
}
|
||||
};
|
||||
|
||||
private void updatePowerState() {
|
||||
// Update the power state request.
|
||||
final boolean mustNotify;
|
||||
@@ -753,6 +761,7 @@ final class DisplayPowerController {
|
||||
&& !mScreenOnWasBlocked
|
||||
&& !mElectronBeamOnAnimator.isStarted()
|
||||
&& !mElectronBeamOffAnimator.isStarted()
|
||||
&& !mScreenBrightnessRampAnimator.isAnimating()
|
||||
&& mPowerState.waitUntilClean(mCleanListener)) {
|
||||
synchronized (mLock) {
|
||||
if (!mPendingRequestChangedLocked) {
|
||||
@@ -1290,6 +1299,9 @@ final class DisplayPowerController {
|
||||
pw.println(" mLastScreenAutoBrightnessGamma=" + mLastScreenAutoBrightnessGamma);
|
||||
pw.println(" mTwilight.getCurrentState()=" + mTwilight.getCurrentState());
|
||||
|
||||
pw.println(" mScreenBrightnessRampAnimator.isAnimating()=" +
|
||||
mScreenBrightnessRampAnimator.isAnimating());
|
||||
|
||||
if (mElectronBeamOnAnimator != null) {
|
||||
pw.println(" mElectronBeamOnAnimator.isStarted()=" +
|
||||
mElectronBeamOnAnimator.isStarted());
|
||||
|
||||
@@ -39,6 +39,8 @@ final class RampAnimator<T> {
|
||||
|
||||
private boolean mFirstTime = true;
|
||||
|
||||
private Listener mListener;
|
||||
|
||||
public RampAnimator(T object, IntProperty<T> property) {
|
||||
mObject = object;
|
||||
mProperty = property;
|
||||
@@ -92,6 +94,20 @@ final class RampAnimator<T> {
|
||||
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() {
|
||||
mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mCallback, null);
|
||||
}
|
||||
@@ -131,7 +147,14 @@ final class RampAnimator<T> {
|
||||
postCallback();
|
||||
} else {
|
||||
mAnimating = false;
|
||||
if (mListener != null) {
|
||||
mListener.onAnimationEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public interface Listener {
|
||||
void onAnimationEnd();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user