blob: 2f4f9f83cc739f81b1ba7c4ab69a6b9e04e564a9 [file] [log] [blame]
alisiond295ec22013-05-17 10:12:13 -04001package com.savoirfairelinux.sflphone.adapters;
2
3import java.io.InputStream;
4import java.util.ArrayList;
5import java.util.concurrent.ExecutorService;
6import java.util.concurrent.Executors;
7
8import android.content.ContentResolver;
9import android.content.ContentUris;
10import android.content.Context;
11import android.database.Cursor;
12import android.graphics.Bitmap;
13import android.graphics.BitmapFactory;
14import android.net.Uri;
15import android.provider.ContactsContract;
16import android.view.LayoutInflater;
17import android.view.View;
18import android.view.ViewGroup;
19import android.widget.BaseAdapter;
20import android.widget.ImageView;
21import android.widget.TextView;
22
23import com.savoirfairelinux.sflphone.R;
24import com.savoirfairelinux.sflphone.model.CallContact;
25
26public class ContactsAdapter extends BaseAdapter {
27
28 private ExecutorService infos_fetcher = Executors.newCachedThreadPool();
29 private ArrayList<CallContact> dataset;
30 Context mContext;
31
32 private static final String TAG = ContactsAdapter.class.getSimpleName();
33
34 public ContactsAdapter(Context context) {
35 super();
36 mContext = context;
37 dataset = new ArrayList<CallContact>();
38 }
39
40 public void removeAll() {
41 dataset.clear();
42 notifyDataSetChanged();
43 }
44
45 public void addAll(ArrayList<CallContact> arrayList) {
46 dataset.addAll(arrayList);
47 notifyDataSetChanged();
48 }
49
50 @Override
51 public int getCount() {
52 return dataset.size();
53 }
54
55 @Override
56 public CallContact getItem(int index) {
57 return dataset.get(index);
58 }
59
60 @Override
61 public long getItemId(int index) {
62 return dataset.get(index).getId();
63 }
64
65 @Override
66 public View getView(int pos, View convView, ViewGroup parent) {
67
68 View v = convView;
69 LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
70
71 if (v == null) {
72 v = inflater.inflate(R.layout.item_contact, null);
73 }
74
75 CallContact item = dataset.get(pos);
76
77 ((TextView) v.findViewById(R.id.display_name)).setText(item.getmDisplayName());
78 ImageView photo_view = (ImageView) v.findViewById(R.id.photo);
79
80 infos_fetcher.execute(new ContactPictureLoader(mContext, photo_view, item.getId()));
81
82 return v;
83 }
84
85}