diff options
| author | 2013-03-15 22:50:51 +0000 | |
|---|---|---|
| committer | 2013-03-15 22:50:51 +0000 | |
| commit | 2de8dac82dfa23f2382a6f6b1f9a2a995ef366eb (patch) | |
| tree | 863b66be16ca09f0d0f26afd784e5cfad98c45bd | |
| parent | d2e1e4474dbdd87a51a8d75c946d1a027b6655e4 (diff) | |
| parent | 2076316ce118f3685f3a28ed0e895b2c3697b191 (diff) | |
Merge "Log warning when animator detects NaN value" into jb-mr2-dev
| -rw-r--r-- | core/java/android/animation/KeyframeSet.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/core/java/android/animation/KeyframeSet.java b/core/java/android/animation/KeyframeSet.java index 6172aabb41c7..4026f7ff5b10 100644 --- a/core/java/android/animation/KeyframeSet.java +++ b/core/java/android/animation/KeyframeSet.java @@ -21,6 +21,7 @@ import java.util.Arrays; import android.animation.Keyframe.IntKeyframe; import android.animation.Keyframe.FloatKeyframe; import android.animation.Keyframe.ObjectKeyframe; +import android.util.Log; /** * This class holds a collection of Keyframe objects and is called by ValueAnimator to calculate @@ -56,24 +57,36 @@ class KeyframeSet { } else { keyframes[0] = (IntKeyframe) Keyframe.ofInt(0f, values[0]); for (int i = 1; i < numKeyframes; ++i) { - keyframes[i] = (IntKeyframe) Keyframe.ofInt((float) i / (numKeyframes - 1), values[i]); + keyframes[i] = + (IntKeyframe) Keyframe.ofInt((float) i / (numKeyframes - 1), values[i]); } } return new IntKeyframeSet(keyframes); } public static KeyframeSet ofFloat(float... values) { + boolean badValue = false; int numKeyframes = values.length; FloatKeyframe keyframes[] = new FloatKeyframe[Math.max(numKeyframes,2)]; if (numKeyframes == 1) { keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f); keyframes[1] = (FloatKeyframe) Keyframe.ofFloat(1f, values[0]); + if (Float.isNaN(values[0])) { + badValue = true; + } } else { keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f, values[0]); for (int i = 1; i < numKeyframes; ++i) { - keyframes[i] = (FloatKeyframe) Keyframe.ofFloat((float) i / (numKeyframes - 1), values[i]); + keyframes[i] = + (FloatKeyframe) Keyframe.ofFloat((float) i / (numKeyframes - 1), values[i]); + if (Float.isNaN(values[i])) { + badValue = true; + } } } + if (badValue) { + Log.w("Animator", "Bad value (NaN) in float animator"); + } return new FloatKeyframeSet(keyframes); } |