package com.xabber.android.ui.adapter.contactlist;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.xabber.android.R;
import com.xabber.android.data.roster.AbstractContact;
import java.util.ArrayList;
import java.util.List;
public class ChatListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements ContactListItemViewHolder.ContactClickListener {
private List<AbstractContact> contacts;
private final ContactItemInflater contactItemInflater;
private final Listener listener;
public interface Listener {
void onRecentChatClick(AbstractContact contact);
}
public ChatListAdapter(Context context, Listener listener) {
this.listener = listener;
contacts = new ArrayList<>();
contactItemInflater = new ContactItemInflater(context);
}
public void updateContacts(List<AbstractContact> contacts) {
this.contacts = contacts;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ContactListItemViewHolder(LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_contact, parent, false), this);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
contactItemInflater.bindViewHolder((ContactListItemViewHolder) holder, contacts.get(position));
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemCount() {
return contacts.size();
}
@Override
public void onContactClick(int adapterPosition) {
listener.onRecentChatClick(contacts.get(adapterPosition));
}
@Override
public void onContactAvatarClick(int adapterPosition) {
contactItemInflater.onAvatarClick(contacts.get(adapterPosition));
}
@Override
public void onContactCreateContextMenu(int adapterPosition, ContextMenu menu) {
}
}