summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Craig Stout <cstout@google.com> 2014-08-11 15:12:29 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-08-10 19:43:29 +0000
commit362dac08e4265372ba3b1506eb273aa7ae9e9f0f (patch)
treeebb92ca77e0cf76a1a6feee621ae8190337dd025
parentc8f3003533319502b139d18a450bd71ecfe92d7a (diff)
parent7f9988f0f51e181f20fa22e17635d61893e5b74a (diff)
Merge "Fix NPEs when inflating a ValueAnimator." into lmp-dev
-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 0f5e95428173..e57be83a5579 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;
}