Fixing stateManager not correctly deduping existing animations

Bug: 79251716
Change-Id: I40c3ebf0ec4d49aa1fe1948ad3d83eb87cc1c5f1
This commit is contained in:
Sunny Goyal
2018-05-04 10:09:41 -07:00
committed by Tony
parent 729020d186
commit a6616dec28
@@ -374,7 +374,18 @@ public class LauncherStateManager {
*/
public void setCurrentAnimation(AnimatorSet anim, Animator... childAnimations) {
for (Animator childAnim : childAnimations) {
if (childAnim != null && mConfig.mCurrentAnimation == childAnim) {
if (childAnim == null) {
continue;
}
if (mConfig.playbackController != null
&& mConfig.playbackController.getTarget() == childAnim) {
if (mConfig.mCurrentAnimation != null) {
mConfig.mCurrentAnimation.removeListener(mConfig);
mConfig.mCurrentAnimation = null;
}
mConfig.playbackController = null;
break;
} else if (mConfig.mCurrentAnimation == childAnim) {
mConfig.mCurrentAnimation.removeListener(mConfig);
mConfig.mCurrentAnimation = null;
break;