Merge "Clone animators before running in StateListAnimator"
diff --git a/core/java/android/animation/StateListAnimator.java b/core/java/android/animation/StateListAnimator.java
index bc4843d..810f050 100644
--- a/core/java/android/animation/StateListAnimator.java
+++ b/core/java/android/animation/StateListAnimator.java
@@ -141,7 +141,7 @@
return;
}
if (mLastMatch != null) {
- cancel(mLastMatch);
+ cancel();
}
mLastMatch = match;
if (match != null) {
@@ -151,13 +151,15 @@
private void start(Tuple match) {
match.mAnimator.setTarget(getTarget());
- mRunningAnimator = match.mAnimator;
- match.mAnimator.start();
+ mRunningAnimator = match.mAnimator.clone();
+ mRunningAnimator.start();
}
- private void cancel(Tuple lastMatch) {
- lastMatch.mAnimator.cancel();
- lastMatch.mAnimator.setTarget(null);
+ private void cancel() {
+ if (mRunningAnimator != null) {
+ mRunningAnimator.cancel();
+ mRunningAnimator = null;
+ }
}
/**