Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4618d347 authored by Luca Zuccarini's avatar Luca Zuccarini Committed by Android (Google) Code Review
Browse files

Merge "Add support for text color animations in PropertySetter." into tm-qpr-dev

parents 291115ce 8009c1d4
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -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<TextView> TEXT_COLOR =
            new IntProperty<TextView>("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<TextView> HINT_TEXT_COLOR =
            new IntProperty<TextView>("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> VIEW_TRANSLATE_X =
            View.TRANSLATION_X instanceof FloatProperty ? (FloatProperty) View.TRANSLATION_X
                    : new FloatProperty<View>("translateX") {
+12 −0
Original line number Diff line number Diff line
@@ -97,6 +97,18 @@ public class AnimatedPropertySetter extends PropertySetter {
        return anim;
    }

    @NonNull
    @Override
    public <T> Animator setColor(T target, IntProperty<T> 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
+10 −0
Original line number Diff line number Diff line
@@ -88,6 +88,16 @@ public abstract class PropertySetter {
        return NO_OP;
    }

    /**
     * Updates a color property of the target using the provided interpolator
     */
    @NonNull
    public <T> Animator setColor(T target, IntProperty<T> property, int value,
            TimeInterpolator interpolator) {
        property.setValue(target, value);
        return NO_OP;
    }

    /**
     * Runs the animation as part of setting the property
     */