package com.android.launcher3.anim; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.view.View; import java.util.ArrayList; /** * Helper class to build a list of {@link PropertyValuesHolder} for view properties */ public class PropertyListBuilder { private final ArrayList mProperties = new ArrayList<>(); public PropertyListBuilder translationX(float value) { mProperties.add(PropertyValuesHolder.ofFloat(View.TRANSLATION_X, value)); return this; } public PropertyListBuilder translationY(float value) { mProperties.add(PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, value)); return this; } public PropertyListBuilder scaleX(float value) { mProperties.add(PropertyValuesHolder.ofFloat(View.SCALE_X, value)); return this; } public PropertyListBuilder scaleY(float value) { mProperties.add(PropertyValuesHolder.ofFloat(View.SCALE_Y, value)); return this; } /** * Helper method to set both scaleX and scaleY */ public PropertyListBuilder scale(float value) { return scaleX(value).scaleY(value); } public PropertyListBuilder alpha(float value) { mProperties.add(PropertyValuesHolder.ofFloat(View.ALPHA, value)); return this; } public ObjectAnimator build(View view) { return ObjectAnimator.ofPropertyValuesHolder(view, mProperties.toArray(new PropertyValuesHolder[mProperties.size()])); } }