package com.airbnb.epoxy;
import android.widget.FrameLayout;
import org.robolectric.RuntimeEnvironment;
import java.util.List;
class ControllerLifecycleHelper {
private EpoxyViewHolder viewHolder;
void buildModelsAndBind(EpoxyController controller) {
controller.requestModelBuild();
bindModels(controller);
}
void bindModels(EpoxyController controller) {
bindModels(controller.getAdapter());
}
void bindModels(BaseEpoxyAdapter adapter) {
List<EpoxyModel<?>> models = adapter.getCurrentModels();
for (int i = 0; i < models.size(); i++) {
viewHolder = createViewHolder(adapter, i);
adapter.onBindViewHolder(viewHolder, i);
}
}
static EpoxyViewHolder createViewHolder(BaseEpoxyAdapter adapter, int position) {
int itemViewType = adapter.getItemViewType(position);
return adapter.onCreateViewHolder(
new FrameLayout(RuntimeEnvironment.application),
itemViewType
);
}
void recycleLastBoundModel(EpoxyController controller) {
controller.getAdapter().onViewRecycled(viewHolder);
}
}