package org.robobinding.supportwidget.recyclerview;
import org.robobinding.widget.adapterview.DataSetAdapterUpdater;
import org.robobinding.widget.adapterview.ItemLayoutUpdater;
import org.robobinding.widget.adapterview.ItemLayoutsUpdater;
import org.robobinding.widget.adapterview.RowLayoutAttributeFactory.UpdaterProvider;
import org.robobinding.widget.adapterview.RowLayoutUpdater;
import org.robobinding.widget.adapterview.RowLayoutsUpdater;
import android.support.v7.widget.RecyclerView;
/**
* @since 1.0
* @author Cheng Wei
*
*/
public class ItemLayoutUpdaterProvider implements UpdaterProvider {
private final RecyclerView view;
private final DataSetAdapterBuilder dataSetAdapterBuilder;
public ItemLayoutUpdaterProvider(RecyclerView view, DataSetAdapterBuilder dataSetAdapterBuilder) {
this.view = view;
this.dataSetAdapterBuilder = dataSetAdapterBuilder;
}
@Override
public RowLayoutUpdater createRowLayoutUpdater() {
return new ItemLayoutUpdater(dataSetAdapterBuilder);
}
@Override
public RowLayoutsUpdater createRowLayoutsUpdater() {
return new ItemLayoutsUpdater(dataSetAdapterBuilder);
}
@Override
public DataSetAdapterUpdater createDataSetAdapterUpdater() {
return new DataSetAdapterUpdater() {
@Override
public void update() {
DataSetAdapter dataSetAdapter = dataSetAdapterBuilder.build();
view.setAdapter(dataSetAdapter);
}
};
}
}