AccountAdapter.java

  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}