1package eu.siacs.conversations.ui.adapter;
2
3import java.util.List;
4
5import eu.siacs.conversations.R;
6import eu.siacs.conversations.entities.ListItem;
7import eu.siacs.conversations.ui.XmppActivity;
8import eu.siacs.conversations.xmpp.jid.Jid;
9
10import android.content.Context;
11import android.content.SharedPreferences;
12import android.preference.PreferenceManager;
13import android.view.LayoutInflater;
14import android.view.View;
15import android.view.ViewGroup;
16import android.widget.ArrayAdapter;
17import android.widget.ImageView;
18import android.widget.LinearLayout;
19import android.widget.TextView;
20
21public class ListItemAdapter extends ArrayAdapter<ListItem> {
22
23 protected XmppActivity activity;
24 protected boolean showDynamicTags = false;
25
26 public ListItemAdapter(XmppActivity activity, List<ListItem> objects) {
27 super(activity, 0, objects);
28 this.activity = activity;
29 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
30 this.showDynamicTags = preferences.getBoolean("show_dynamic_tags",false);
31 }
32
33 @Override
34 public View getView(int position, View view, ViewGroup parent) {
35 LayoutInflater inflater = (LayoutInflater) getContext()
36 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
37 ListItem item = getItem(position);
38 if (view == null) {
39 view = inflater.inflate(R.layout.contact, parent, false);
40 }
41 TextView tvName = (TextView) view.findViewById(R.id.contact_display_name);
42 TextView tvJid = (TextView) view.findViewById(R.id.contact_jid);
43 ImageView picture = (ImageView) view.findViewById(R.id.contact_photo);
44 LinearLayout tagLayout = (LinearLayout) view.findViewById(R.id.tags);
45
46 List<ListItem.Tag> tags = item.getTags();
47 if (tags.size() == 0 || !this.showDynamicTags) {
48 tagLayout.setVisibility(View.GONE);
49 } else {
50 tagLayout.setVisibility(View.VISIBLE);
51 tagLayout.removeAllViewsInLayout();
52 for(ListItem.Tag tag : tags) {
53 TextView tv = (TextView) inflater.inflate(R.layout.list_item_tag,tagLayout,false);
54 tv.setText(tag.getName());
55 tv.setBackgroundColor(tag.getColor());
56 tagLayout.addView(tv);
57 }
58 }
59 final Jid jid = item.getJid();
60 if (jid != null) {
61 tvJid.setText(jid.toString());
62 } else {
63 tvJid.setText("");
64 }
65 tvName.setText(item.getDisplayName());
66 picture.setImageBitmap(activity.avatarService().get(item,
67 activity.getPixel(48)));
68 return view;
69 }
70
71}