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 = 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 Account.STATUS_DISABLED:
 41			statusView.setText(getContext().getString(
 42					R.string.account_status_disabled));
 43			statusView.setTextColor(activity.getSecondaryTextColor());
 44			break;
 45		case Account.STATUS_ONLINE:
 46			statusView.setText(getContext().getString(
 47					R.string.account_status_online));
 48			statusView.setTextColor(activity.getPrimaryColor());
 49			break;
 50		case Account.STATUS_CONNECTING:
 51			statusView.setText(getContext().getString(
 52					R.string.account_status_connecting));
 53			statusView.setTextColor(activity.getSecondaryTextColor());
 54			break;
 55		case Account.STATUS_OFFLINE:
 56			statusView.setText(getContext().getString(
 57					R.string.account_status_offline));
 58			statusView.setTextColor(activity.getWarningTextColor());
 59			break;
 60		case Account.STATUS_UNAUTHORIZED:
 61			statusView.setText(getContext().getString(
 62					R.string.account_status_unauthorized));
 63			statusView.setTextColor(activity.getWarningTextColor());
 64			break;
 65		case Account.STATUS_SERVER_NOT_FOUND:
 66			statusView.setText(getContext().getString(
 67					R.string.account_status_not_found));
 68			statusView.setTextColor(activity.getWarningTextColor());
 69			break;
 70		case Account.STATUS_NO_INTERNET:
 71			statusView.setText(getContext().getString(
 72					R.string.account_status_no_internet));
 73			statusView.setTextColor(activity.getWarningTextColor());
 74			break;
 75		case Account.STATUS_REGISTRATION_FAILED:
 76			statusView.setText(getContext().getString(
 77					R.string.account_status_regis_fail));
 78			statusView.setTextColor(activity.getWarningTextColor());
 79			break;
 80		case Account.STATUS_REGISTRATION_CONFLICT:
 81			statusView.setText(getContext().getString(
 82					R.string.account_status_regis_conflict));
 83			statusView.setTextColor(activity.getWarningTextColor());
 84			break;
 85		case Account.STATUS_REGISTRATION_SUCCESSFULL:
 86			statusView.setText(getContext().getString(
 87					R.string.account_status_regis_success));
 88			statusView.setTextColor(activity.getSecondaryTextColor());
 89			break;
 90		case Account.STATUS_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}