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

Commit be5b4e19 authored by Josh Tsuji's avatar Josh Tsuji
Browse files

Use reference equality for AnimatableScaleMatrix equals().

When we recreate the stack, we also create a new AnimatableScaleMatrix and get a PhysicsAnimator instance for it. Since the matrices can have identical values, we sometimes end up getting the animator instance for the previous stack's matrix if it hasn't yet been garbage collected. This means we're animating a matrix that has no effect on the current stack, so the expanded view scale stays at 0% forever.

Bug: 159719888
Test: this one is really hard since it's nondeterministic, but just create/dismiss bubbles a lot
Change-Id: Ib5e390caba0ac621ccf7a1da71adc9d15f51fd65
parent 16868fbe
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -134,4 +134,11 @@ public class AnimatableScaleMatrix extends Matrix {
    public float getPivotY() {
        return mPivotY;
    }

    @Override
    public boolean equals(Object obj) {
        // Use object equality to allow this matrix to be used as a map key (which is required for
        // PhysicsAnimator's animator caching).
        return obj == this;
    }
}