summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Stout <cstout@google.com>2014-08-07 15:25:04 -0700
committerCraig Stout <cstout@google.com>2014-08-08 11:17:50 -0700
commit7f9988f0f51e181f20fa22e17635d61893e5b74a (patch)
tree2ff24d939605b5da975aa722e545a240951d2e85
parent8abea424907159dcb0c8d551ccc0bbbec83df806 (diff)
downloadframeworks_base-7f9988f0f51e181f20fa22e17635d61893e5b74a.zip
frameworks_base-7f9988f0f51e181f20fa22e17635d61893e5b74a.tar.gz
frameworks_base-7f9988f0f51e181f20fa22e17635d61893e5b74a.tar.bz2
Fix NPEs when inflating a ValueAnimator.
Change-Id: I4489b9e80635053792668a2f8032635893fb4afd
-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;
}