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
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user