package com.kaichunlin.transition.internal;
import android.support.annotation.CheckResult;
import com.kaichunlin.transition.transformer.ViewTransformer;
import java.util.ArrayList;
import java.util.List;
/**
* Aggregates a set of {@link ViewTransformer}s.
*/
public class CustomTransitionController extends TransitionController<CustomTransitionController> implements Cloneable {
private List<ViewTransformer> mViewTransformerList = new ArrayList<>();
public CustomTransitionController() {
super(null);
updateProgressWidth();
}
public void addViewTransformer(ViewTransformer mViewTransformer) {
mViewTransformerList.add(mViewTransformer);
}
@Override
public void updateProgress(float progress) {
for (int i = 0, count = mViewTransformerList.size(); i < count; ++i) {
mViewTransformerList.get(i).updateView(this, getTarget(), progress);
}
}
@CheckResult
@Override
public CustomTransitionController clone() {
CustomTransitionController newCopy = (CustomTransitionController) super.clone();
newCopy.mViewTransformerList = new ArrayList<>(mViewTransformerList.size());
newCopy.mViewTransformerList.addAll(mViewTransformerList);
return newCopy;
}
protected CustomTransitionController self() {
return this;
}
}