package me.tatarka.bindingcollectionadapter2;
import android.databinding.BindingAdapter;
import android.support.v7.widget.RecyclerView;
import java.util.List;
/**
* @see {@link BindingCollectionAdapters}
*/
public class BindingRecyclerViewAdapters {
// RecyclerView
@SuppressWarnings("unchecked")
@BindingAdapter(value = {"itemBinding", "items", "adapter", "itemIds", "viewHolder"}, requireAll = false)
public static <T> void setAdapter(RecyclerView recyclerView, ItemBinding<T> itemBinding, List<T> items, BindingRecyclerViewAdapter<T> adapter, BindingRecyclerViewAdapter.ItemIds<? super T> itemIds, BindingRecyclerViewAdapter.ViewHolderFactory viewHolderFactory) {
if (itemBinding == null) {
throw new IllegalArgumentException("itemBinding must not be null");
}
BindingRecyclerViewAdapter oldAdapter = (BindingRecyclerViewAdapter) recyclerView.getAdapter();
if (adapter == null) {
if (oldAdapter == null) {
adapter = new BindingRecyclerViewAdapter<>();
} else {
adapter = oldAdapter;
}
}
adapter.setItemBinding(itemBinding);
adapter.setItems(items);
adapter.setItemIds(itemIds);
adapter.setViewHolderFactory(viewHolderFactory);
if (oldAdapter != adapter) {
recyclerView.setAdapter(adapter);
}
}
@BindingAdapter("layoutManager")
public static void setLayoutManager(RecyclerView recyclerView, LayoutManagers.LayoutManagerFactory layoutManagerFactory) {
recyclerView.setLayoutManager(layoutManagerFactory.create(recyclerView));
}
}