package com.novoda.bonfire.user.view;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.novoda.bonfire.R;
import com.novoda.bonfire.user.displayer.UsersDisplayer;
import java.util.ArrayList;
import java.util.List;
class UsersAdapter extends RecyclerView.Adapter<UserViewHolder>{
private List<UsersView.SelectableUser> users = new ArrayList<>();
private final UsersDisplayer.SelectionListener selectionListener;
private final LayoutInflater inflater;
UsersAdapter(UsersDisplayer.SelectionListener selectionListener, LayoutInflater inflater) {
this.selectionListener = selectionListener;
this.inflater = inflater;
setHasStableIds(true);
}
public void update(List<UsersView.SelectableUser> users) {
this.users = users;
notifyDataSetChanged();
}
@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new UserViewHolder((UserView) inflater.inflate(R.layout.user_item_layout, parent, false));
}
@Override
public void onBindViewHolder(UserViewHolder holder, int position) {
final UsersView.SelectableUser user = users.get(position);
holder.bind(user, selectionListener);
}
@Override
public int getItemCount() {
return users.size();
}
@Override
public long getItemId(int position) {
return users.get(position).user.getId().hashCode();
}
}