diff options
| author | 2014-08-11 15:12:29 +0000 | |
|---|---|---|
| committer | 2014-08-10 19:43:29 +0000 | |
| commit | 362dac08e4265372ba3b1506eb273aa7ae9e9f0f (patch) | |
| tree | ebb92ca77e0cf76a1a6feee621ae8190337dd025 | |
| parent | c8f3003533319502b139d18a450bd71ecfe92d7a (diff) | |
| parent | 7f9988f0f51e181f20fa22e17635d61893e5b74a (diff) | |
Merge "Fix NPEs when inflating a ValueAnimator." into lmp-dev
| -rw-r--r-- | core/java/android/animation/AnimatorInflater.java | 16 |
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; } |