mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 08:16:49 +00:00
Static dependency does not work in the presence of multiple activities and when the main activity is not Launcher (eg in fallback recents). Instead creating FirstFrameAnimatorHelper on demand for individual animations. Change-Id: I17bb69bbaaca92f0db994fb56fd784302c57d543
53 lines
1.5 KiB
Java
53 lines
1.5 KiB
Java
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<PropertyValuesHolder> 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()]));
|
|
}
|
|
}
|