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

Commit 79885f4c authored by Mateusz Cicheński's avatar Mateusz Cicheński
Browse files

Fix a stale animator reference being used on bounds change

The call to setDestinationBounds applies the shadow if animation
type is alpha and it's called on each keep clear area change event,
when sometimes the enter PiP animation has not started yet (hence
there is a stale reference to old animator that should have been
cleaned up in onTaskVanished).

Bug: 275646078
Test: before http://recall/-/ekEuGtt9d9HWqkUtAzpHx8/dXniGevCFIEI5nyLN0zw1V
but only if the .isRuning condition is removed from updateAnimatorBounds
Test: after http://recall/-/ekEuGtt9d9HWqkUtAzpHx8/c3FwTxsPWiRT67JjxcWrMw

Change-Id: I34cb5b7621bf7c087d9c6e5a736b240e01d18a6a
parent 90a7bd1f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -188,6 +188,11 @@ public class PipAnimationController {
        return mCurrentAnimator;
    }

    /** Reset animator state to prevent it from being used after its lifetime. */
    public void resetAnimatorState() {
        mCurrentAnimator = null;
    }

    private PipTransitionAnimator setupPipTransitionAnimator(PipTransitionAnimator animator) {
        animator.setSurfaceTransactionHelper(mSurfaceTransactionHelper);
        animator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
+1 −0
Original line number Diff line number Diff line
@@ -1823,6 +1823,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
                        animator::clearContentOverlay);
            }
            PipAnimationController.quietCancel(animator);
            mPipAnimationController.resetAnimatorState();
        }
    }