1package eu.siacs.conversations.ui.adapter;
2
3import java.util.List;
4
5import eu.siacs.conversations.R;
6import eu.siacs.conversations.entities.Account;
7import eu.siacs.conversations.ui.XmppActivity;
8import android.content.Context;
9import android.view.LayoutInflater;
10import android.view.View;
11import android.view.ViewGroup;
12import android.widget.ArrayAdapter;
13import android.widget.ImageView;
14import android.widget.TextView;
15
16public class AccountAdapter extends ArrayAdapter<Account> {
17
18 private XmppActivity activity;
19
20 public AccountAdapter(XmppActivity activity, List<Account> objects) {
21 super(activity, 0, objects);
22 this.activity = activity;
23 }
24
25 @Override
26 public View getView(int position, View view, ViewGroup parent) {
27 Account account = getItem(position);
28 if (view == null) {
29 LayoutInflater inflater = (LayoutInflater) getContext()
30 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
31 view = inflater.inflate(R.layout.account_row, parent, false);
32 }
33 TextView jid = (TextView) view.findViewById(R.id.account_jid);
34 jid.setText(account.getJid().toBareJid().toString());
35 TextView statusView = (TextView) view.findViewById(R.id.account_status);
36 ImageView imageView = (ImageView) view.findViewById(R.id.account_image);
37 imageView.setImageBitmap(activity.avatarService().get(account,
38 activity.getPixel(48)));
39 statusView.setText(getContext().getString(account.getStatus().getReadableId()));
40 switch (account.getStatus()) {
41 case ONLINE:
42 statusView.setTextColor(activity.getOnlineColor());
43 break;
44 case DISABLED:
45 case CONNECTING:
46 statusView.setTextColor(activity.getSecondaryTextColor());
47 break;
48 default:
49 statusView.setTextColor(activity.getWarningTextColor());
50 break;
51 }
52 return view;
53 }
54}