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 switch (account.getStatus()) {
40 case DISABLED:
41 statusView.setText(getContext().getString(
42 R.string.account_status_disabled));
43 statusView.setTextColor(activity.getSecondaryTextColor());
44 break;
45 case ONLINE:
46 statusView.setText(getContext().getString(
47 R.string.account_status_online));
48 statusView.setTextColor(activity.getPrimaryColor());
49 break;
50 case CONNECTING:
51 statusView.setText(getContext().getString(
52 R.string.account_status_connecting));
53 statusView.setTextColor(activity.getSecondaryTextColor());
54 break;
55 case OFFLINE:
56 statusView.setText(getContext().getString(
57 R.string.account_status_offline));
58 statusView.setTextColor(activity.getWarningTextColor());
59 break;
60 case UNAUTHORIZED:
61 statusView.setText(getContext().getString(
62 R.string.account_status_unauthorized));
63 statusView.setTextColor(activity.getWarningTextColor());
64 break;
65 case SERVER_NOT_FOUND:
66 statusView.setText(getContext().getString(
67 R.string.account_status_not_found));
68 statusView.setTextColor(activity.getWarningTextColor());
69 break;
70 case NO_INTERNET:
71 statusView.setText(getContext().getString(
72 R.string.account_status_no_internet));
73 statusView.setTextColor(activity.getWarningTextColor());
74 break;
75 case REGISTRATION_FAILED:
76 statusView.setText(getContext().getString(
77 R.string.account_status_regis_fail));
78 statusView.setTextColor(activity.getWarningTextColor());
79 break;
80 case REGISTRATION_CONFLICT:
81 statusView.setText(getContext().getString(
82 R.string.account_status_regis_conflict));
83 statusView.setTextColor(activity.getWarningTextColor());
84 break;
85 case REGISTRATION_SUCCESSFUL:
86 statusView.setText(getContext().getString(
87 R.string.account_status_regis_success));
88 statusView.setTextColor(activity.getSecondaryTextColor());
89 break;
90 case REGISTRATION_NOT_SUPPORTED:
91 statusView.setText(getContext().getString(
92 R.string.account_status_regis_not_sup));
93 statusView.setTextColor(activity.getWarningTextColor());
94 break;
95 default:
96 statusView.setText("");
97 break;
98 }
99
100 return view;
101 }
102}