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

Commit c3cc63ae authored by Pablo Gamito's avatar Pablo Gamito Committed by Automerger Merge Worker
Browse files

Merge "Start edge extension animations in sync" into tm-dev am: 7ecba896 am: 288efbce

parents 30998190 288efbce
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ class SurfaceAnimationRunner {
    void continueStartingAnimations() {
        synchronized (mLock) {
            mAnimationStartDeferred = false;
            if (!mPendingAnimations.isEmpty()) {
            if (!mPendingAnimations.isEmpty() && mPreProcessingAnimations.isEmpty()) {
                mChoreographer.postFrameCallback(this::startAnimations);
            }
        }
@@ -204,7 +204,7 @@ class SurfaceAnimationRunner {

                            mPreProcessingAnimations.remove(animationLeash);
                            mPendingAnimations.put(animationLeash, runningAnim);
                            if (!mAnimationStartDeferred) {
                            if (!mAnimationStartDeferred && mPreProcessingAnimations.isEmpty()) {
                                mChoreographer.postFrameCallback(this::startAnimations);
                            }
                        }
@@ -214,7 +214,7 @@ class SurfaceAnimationRunner {

            if (!requiresEdgeExtension) {
                mPendingAnimations.put(animationLeash, runningAnim);
                if (!mAnimationStartDeferred) {
                if (!mAnimationStartDeferred && mPreProcessingAnimations.isEmpty()) {
                    mChoreographer.postFrameCallback(this::startAnimations);
                }

@@ -330,6 +330,14 @@ class SurfaceAnimationRunner {

    private void startAnimations(long frameTimeNanos) {
        synchronized (mLock) {
            if (!mPreProcessingAnimations.isEmpty()) {
                // We only want to start running animations once all mPreProcessingAnimations have
                // been processed to ensure preprocessed animations start in sync.
                // NOTE: This means we might delay running animations that require preprocessing if
                // new animations that also require preprocessing are requested before the previous
                // ones have finished (see b/227449117).
                return;
            }
            startPendingAnimationsLocked();
        }
        mPowerManagerInternal.setPowerBoost(Boost.INTERACTION, 0);