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 = (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());
35 TextView statusView = (TextView) view.findViewById(R.id.account_status);
36 ImageView imageView = (ImageView) view.findViewById(R.id.account_image);
37 imageView.setImageBitmap(account.getImage(activity, 48));
38 switch (account.getStatus()) {
39 case Account.STATUS_DISABLED:
40 statusView.setText(getContext().getString(
41 R.string.account_status_disabled));
42 statusView.setTextColor(activity.getSecondaryTextColor());
43 break;
44 case Account.STATUS_ONLINE:
45 statusView.setText(getContext().getString(
46 R.string.account_status_online));
47 statusView.setTextColor(activity.getPrimaryColor());
48 break;
49 case Account.STATUS_CONNECTING:
50 statusView.setText(getContext().getString(
51 R.string.account_status_connecting));
52 statusView.setTextColor(activity.getSecondaryTextColor());
53 break;
54 case Account.STATUS_OFFLINE:
55 statusView.setText(getContext().getString(
56 R.string.account_status_offline));
57 statusView.setTextColor(activity.getWarningTextColor());
58 break;
59 case Account.STATUS_UNAUTHORIZED:
60 statusView.setText(getContext().getString(
61 R.string.account_status_unauthorized));
62 statusView.setTextColor(activity.getWarningTextColor());
63 break;
64 case Account.STATUS_SERVER_NOT_FOUND:
65 statusView.setText(getContext().getString(
66 R.string.account_status_not_found));
67 statusView.setTextColor(activity.getWarningTextColor());
68 break;
69 case Account.STATUS_NO_INTERNET:
70 statusView.setText(getContext().getString(
71 R.string.account_status_no_internet));
72 statusView.setTextColor(activity.getWarningTextColor());
73 break;
74 case Account.STATUS_REGISTRATION_FAILED:
75 statusView.setText(getContext().getString(
76 R.string.account_status_regis_fail));
77 statusView.setTextColor(activity.getWarningTextColor());
78 break;
79 case Account.STATUS_REGISTRATION_CONFLICT:
80 statusView.setText(getContext().getString(
81 R.string.account_status_regis_conflict));
82 statusView.setTextColor(activity.getWarningTextColor());
83 break;
84 case Account.STATUS_REGISTRATION_SUCCESSFULL:
85 statusView.setText(getContext().getString(
86 R.string.account_status_regis_success));
87 statusView.setTextColor(activity.getSecondaryTextColor());
88 break;
89 case Account.STATUS_REGISTRATION_NOT_SUPPORTED:
90 statusView.setText(getContext().getString(
91 R.string.account_status_regis_not_sup));
92 statusView.setTextColor(activity.getWarningTextColor());
93 break;
94 default:
95 statusView.setText("");
96 break;
97 }
98
99 return view;
100 }
101}