From d98f4ba86c02714d94ec3b6f35345cb0b04f7778 Mon Sep 17 00:00:00 2001 From: George Mount Date: Mon, 14 Mar 2016 14:29:24 -0700 Subject: [PATCH] Add @SafeVarargs for methods using typevar varargs. Bug 27142336 Using a type variable in a varargs leads to a javac warning because type variables are treated as Object after compilation. Because these uses do not require a specific typed array, we can use @SafeVarargs to suppress the warning. Change-Id: I860bcc79667a9c85c381c7994fd1d798209d7c66 --- core/java/android/animation/ObjectAnimator.java | 4 ++++ core/java/android/animation/PropertyValuesHolder.java | 4 ++++ core/java/android/app/ActivityOptions.java | 1 + 3 files changed, 9 insertions(+) diff --git a/core/java/android/animation/ObjectAnimator.java b/core/java/android/animation/ObjectAnimator.java index 0b751b27afc94..efb9192a75836 100644 --- a/core/java/android/animation/ObjectAnimator.java +++ b/core/java/android/animation/ObjectAnimator.java @@ -373,6 +373,7 @@ public final class ObjectAnimator extends ValueAnimator { * @param values A set of values that the animation will animate between over time. * @return An ObjectAnimator object that is set up to animate between the given values. */ + @SafeVarargs public static ObjectAnimator ofMultiInt(Object target, String propertyName, TypeConverter converter, TypeEvaluator evaluator, T... values) { PropertyValuesHolder pvh = PropertyValuesHolder.ofMultiInt(propertyName, converter, @@ -569,6 +570,7 @@ public final class ObjectAnimator extends ValueAnimator { * @param values A set of values that the animation will animate between over time. * @return An ObjectAnimator object that is set up to animate between the given values. */ + @SafeVarargs public static ObjectAnimator ofMultiFloat(Object target, String propertyName, TypeConverter converter, TypeEvaluator evaluator, T... values) { PropertyValuesHolder pvh = PropertyValuesHolder.ofMultiFloat(propertyName, converter, @@ -642,6 +644,7 @@ public final class ObjectAnimator extends ValueAnimator { * @return An ObjectAnimator object that is set up to animate between the given values. */ @NonNull + @SafeVarargs public static ObjectAnimator ofObject(T target, Property property, TypeEvaluator evaluator, V... values) { ObjectAnimator anim = new ObjectAnimator(target, property); @@ -670,6 +673,7 @@ public final class ObjectAnimator extends ValueAnimator { * @return An ObjectAnimator object that is set up to animate between the given values. */ @NonNull + @SafeVarargs public static ObjectAnimator ofObject(T target, Property property, TypeConverter converter, TypeEvaluator evaluator, V... values) { PropertyValuesHolder pvh = PropertyValuesHolder.ofObject(property, converter, evaluator, diff --git a/core/java/android/animation/PropertyValuesHolder.java b/core/java/android/animation/PropertyValuesHolder.java index 6ba5b968dfe78..ffea6f5e0003b 100644 --- a/core/java/android/animation/PropertyValuesHolder.java +++ b/core/java/android/animation/PropertyValuesHolder.java @@ -236,6 +236,7 @@ public class PropertyValuesHolder implements Cloneable { * @see ObjectAnimator#ofMultiInt(Object, String, TypeConverter, TypeEvaluator, Object[]) * @see ObjectAnimator#ofPropertyValuesHolder(Object, PropertyValuesHolder...) */ + @SafeVarargs public static PropertyValuesHolder ofMultiInt(String propertyName, TypeConverter converter, TypeEvaluator evaluator, V... values) { return new MultiIntValuesHolder(propertyName, converter, evaluator, values); @@ -353,6 +354,7 @@ public class PropertyValuesHolder implements Cloneable { * @return PropertyValuesHolder The constructed PropertyValuesHolder object. * @see ObjectAnimator#ofMultiFloat(Object, String, TypeConverter, TypeEvaluator, Object[]) */ + @SafeVarargs public static PropertyValuesHolder ofMultiFloat(String propertyName, TypeConverter converter, TypeEvaluator evaluator, V... values) { return new MultiFloatValuesHolder(propertyName, converter, evaluator, values); @@ -438,6 +440,7 @@ public class PropertyValuesHolder implements Cloneable { * @param values The values that the property will animate between. * @return PropertyValuesHolder The constructed PropertyValuesHolder object. */ + @SafeVarargs public static PropertyValuesHolder ofObject(Property property, TypeEvaluator evaluator, V... values) { PropertyValuesHolder pvh = new PropertyValuesHolder(property); @@ -465,6 +468,7 @@ public class PropertyValuesHolder implements Cloneable { * @see #setConverter(TypeConverter) * @see TypeConverter */ + @SafeVarargs public static PropertyValuesHolder ofObject(Property property, TypeConverter converter, TypeEvaluator evaluator, T... values) { PropertyValuesHolder pvh = new PropertyValuesHolder(property); diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index 094950bfb3fd3..2b244ca743c7d 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -621,6 +621,7 @@ public class ActivityOptions { * @see android.transition.Transition#setEpicenterCallback( * android.transition.Transition.EpicenterCallback) */ + @SafeVarargs public static ActivityOptions makeSceneTransitionAnimation(Activity activity, Pair... sharedElements) { ActivityOptions opts = new ActivityOptions();