ListItemAdapter.java

 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}