diff --git a/src/com/android/launcher3/LauncherAnimUtils.java b/src/com/android/launcher3/LauncherAnimUtils.java index 808bf96f9f..0c7c3110c4 100644 --- a/src/com/android/launcher3/LauncherAnimUtils.java +++ b/src/com/android/launcher3/LauncherAnimUtils.java @@ -26,6 +26,7 @@ import android.util.FloatProperty; import android.util.IntProperty; import android.view.View; import android.view.ViewGroup.LayoutParams; +import android.widget.TextView; import com.android.launcher3.util.MultiScalePropertyFactory; @@ -115,6 +116,32 @@ public class LauncherAnimUtils { } }; + public static final IntProperty TEXT_COLOR = + new IntProperty("textColor") { + @Override + public Integer get(TextView view) { + return view.getTextColors().getDefaultColor(); + } + + @Override + public void setValue(TextView view, int color) { + view.setTextColor(color); + } + }; + + public static final IntProperty HINT_TEXT_COLOR = + new IntProperty("hintTextColor") { + @Override + public Integer get(TextView view) { + return view.getHintTextColors().getDefaultColor(); + } + + @Override + public void setValue(TextView view, int color) { + view.setHintTextColor(color); + } + }; + public static final FloatProperty VIEW_TRANSLATE_X = View.TRANSLATION_X instanceof FloatProperty ? (FloatProperty) View.TRANSLATION_X : new FloatProperty("translateX") { diff --git a/src/com/android/launcher3/anim/AnimatedPropertySetter.java b/src/com/android/launcher3/anim/AnimatedPropertySetter.java index 01301f2b57..82e645a7a0 100644 --- a/src/com/android/launcher3/anim/AnimatedPropertySetter.java +++ b/src/com/android/launcher3/anim/AnimatedPropertySetter.java @@ -97,6 +97,18 @@ public class AnimatedPropertySetter extends PropertySetter { return anim; } + @NonNull + @Override + public Animator setColor(T target, IntProperty property, int value, + TimeInterpolator interpolator) { + if (property.get(target) == value) { + return NO_OP; + } + Animator anim = ObjectAnimator.ofArgb(target, property, value); + anim.setInterpolator(interpolator); + add(anim); + return anim; + } /** * Adds a callback to be run on every frame of the animation diff --git a/src/com/android/launcher3/anim/PropertySetter.java b/src/com/android/launcher3/anim/PropertySetter.java index d2207f6351..b0ed2d2277 100644 --- a/src/com/android/launcher3/anim/PropertySetter.java +++ b/src/com/android/launcher3/anim/PropertySetter.java @@ -88,6 +88,16 @@ public abstract class PropertySetter { return NO_OP; } + /** + * Updates a color property of the target using the provided interpolator + */ + @NonNull + public Animator setColor(T target, IntProperty property, int value, + TimeInterpolator interpolator) { + property.setValue(target, value); + return NO_OP; + } + /** * Runs the animation as part of setting the property */