summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/animation/AnimatorInflater.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/core/java/android/animation/AnimatorInflater.java b/core/java/android/animation/AnimatorInflater.java
index 0f5e954..e57be83 100644
--- a/core/java/android/animation/AnimatorInflater.java
+++ b/core/java/android/animation/AnimatorInflater.java
@@ -244,8 +244,7 @@ public class AnimatorInflater {
}
/**
- * @param anim Null if this is a ValueAnimator, otherwise this is an
- * ObjectAnimator
+ * @param anim The animator, must not be null
* @param arrayAnimator Incoming typed array for Animator's attributes.
* @param arrayObjectAnimator Incoming typed array for Object Animator's
* attributes.
@@ -259,10 +258,6 @@ public class AnimatorInflater {
int valueType = arrayAnimator.getInt(R.styleable.Animator_valueType,
VALUE_TYPE_FLOAT);
- if (anim == null) {
- anim = new ValueAnimator();
- }
-
TypeEvaluator evaluator = null;
boolean getFloats = (valueType == VALUE_TYPE_FLOAT);
@@ -592,6 +587,11 @@ public class AnimatorInflater {
arrayObjectAnimator = res.obtainAttributes(attrs, R.styleable.PropertyAnimator);
}
}
+
+ if (anim == null) {
+ anim = new ValueAnimator();
+ }
+
parseAnimatorFromTypeArray(anim, arrayAnimator, arrayObjectAnimator);
final int resID =
@@ -601,7 +601,9 @@ public class AnimatorInflater {
}
arrayAnimator.recycle();
- arrayObjectAnimator.recycle();
+ if (arrayObjectAnimator != null) {
+ arrayObjectAnimator.recycle();
+ }
return anim;
}