Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9beccf9f authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Defer display ready until brightness ramp completes." into klp-modular-dev

parents 6fb904bf 4255869a
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -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());
+23 −0
Original line number Original line Diff line number Diff line
@@ -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();
    }
}
}