blob: 2f4f9f83cc739f81b1ba7c4ab69a6b9e04e564a9 [file] [log] [blame]
package com.savoirfairelinux.sflphone.adapters;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.ContactsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.model.CallContact;
public class ContactsAdapter extends BaseAdapter {
private ExecutorService infos_fetcher = Executors.newCachedThreadPool();
private ArrayList<CallContact> dataset;
Context mContext;
private static final String TAG = ContactsAdapter.class.getSimpleName();
public ContactsAdapter(Context context) {
super();
mContext = context;
dataset = new ArrayList<CallContact>();
}
public void removeAll() {
dataset.clear();
notifyDataSetChanged();
}
public void addAll(ArrayList<CallContact> arrayList) {
dataset.addAll(arrayList);
notifyDataSetChanged();
}
@Override
public int getCount() {
return dataset.size();
}
@Override
public CallContact getItem(int index) {
return dataset.get(index);
}
@Override
public long getItemId(int index) {
return dataset.get(index).getId();
}
@Override
public View getView(int pos, View convView, ViewGroup parent) {
View v = convView;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (v == null) {
v = inflater.inflate(R.layout.item_contact, null);
}
CallContact item = dataset.get(pos);
((TextView) v.findViewById(R.id.display_name)).setText(item.getmDisplayName());
ImageView photo_view = (ImageView) v.findViewById(R.id.photo);
infos_fetcher.execute(new ContactPictureLoader(mContext, photo_view, item.getId()));
return v;
}
}