package com.mega4tech.whatsappapi;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.mega4tech.whatsappapilibrary.model.WContact;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
public class ContactCardRecyclerViewAdapter extends RecyclerView.Adapter<ContactCardRecyclerViewAdapter.ViewHolder> {
private RecycleItemClickListener mItemClickListener;
private List<WContact> mObjects = new LinkedList<>();
HashMap<WContact, Integer> mDictionary;
private Context mContext;
private LayoutInflater layoutInflater;
String[] mContacts;
boolean[] mSelectedContacts;
public ContactCardRecyclerViewAdapter(Context context,List<WContact> items, String[] contacts, boolean[] selectedContacts, HashMap<WContact, Integer> dictionary) {
this.mObjects = items;
this.mContext = context;
this.layoutInflater = LayoutInflater.from(context);
mContacts = contacts;
mSelectedContacts = selectedContacts;
mDictionary = dictionary;
}
@Override
public int getItemCount() {
return this.mObjects.size();
}
@Override
public void onBindViewHolder(ContactCardRecyclerViewAdapter.ViewHolder holder, int position) {
WContact item = this.mObjects.get(position);
Log.d("ABDULL55", item.toString());
holder.contactNameTv.setText(item.getName());
holder.contactRemoveIv.setTag(item);
holder.contactRemoveIv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WContact contact = (WContact) v.getTag();
if(mDictionary.containsKey(contact))
mSelectedContacts[mDictionary.get(contact)] = false;
mObjects.remove(contact);
mDictionary.remove(contact);
notifyDataSetChanged();
}
});
Log.d("ABDULL!", item.toString());
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final LayoutInflater mInflater = LayoutInflater.from(parent.getContext());
final View sView = mInflater.inflate(R.layout.contact_card, parent, false);
return new ContactCardRecyclerViewAdapter.ViewHolder(sView, mItemClickListener);
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private RecycleItemClickListener mItemClickListener;
private TextView contactNameTv;
private ImageView contactRemoveIv;
public ViewHolder(View view, RecycleItemClickListener itemClickListener) {
super(view);
contactNameTv = (TextView) view.findViewById(R.id.contact_name_tv);
contactRemoveIv = (ImageView) view.findViewById(R.id.contact_remove_iv);
mItemClickListener = itemClickListener;
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (mItemClickListener != null) {
mItemClickListener.onItemClick(v, getPosition());
}
}
}
public void setOnItemClickListener(RecycleItemClickListener listener) {
this.mItemClickListener = listener;
}
public interface RecycleItemClickListener {
public void onItemClick(View view, int position);
}
public void setmObjects(List<WContact> mObjects) {
this.mObjects = mObjects;
notifyDataSetChanged();
}
}