diff options
author | Craig Stout <cstout@google.com> | 2014-08-07 15:25:04 -0700 |
---|---|---|
committer | Craig Stout <cstout@google.com> | 2014-08-08 11:17:50 -0700 |
commit | 7f9988f0f51e181f20fa22e17635d61893e5b74a (patch) | |
tree | 2ff24d939605b5da975aa722e545a240951d2e85 | |
parent | 8abea424907159dcb0c8d551ccc0bbbec83df806 (diff) | |
download | frameworks_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.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 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; } |