DialogContactDetails.java

  1package de.gultsch.chat.ui;
  2
  3import de.gultsch.chat.R;
  4import de.gultsch.chat.entities.Contact;
  5import de.gultsch.chat.entities.Presences;
  6import de.gultsch.chat.utils.UIHelper;
  7import android.app.AlertDialog;
  8import android.app.Dialog;
  9import android.app.DialogFragment;
 10import android.net.Uri;
 11import android.os.Bundle;
 12import android.view.LayoutInflater;
 13import android.view.View;
 14import android.widget.CheckBox;
 15import android.widget.ImageView;
 16import android.widget.TextView;
 17
 18public class DialogContactDetails extends DialogFragment {
 19	
 20	private Contact contact = null;
 21	boolean displayingInRoster = false;
 22	
 23	public void setContact(Contact contact) {
 24		this.contact = contact;
 25	}
 26	
 27	@Override
 28	public Dialog onCreateDialog(Bundle savedInstanceState) {
 29		final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 30		LayoutInflater inflater = getActivity().getLayoutInflater();
 31		View view = inflater.inflate(R.layout.dialog_contact_details, null);
 32		TextView contactJid = (TextView) view.findViewById(R.id.details_contactjid);
 33		TextView accountJid = (TextView) view.findViewById(R.id.details_account);
 34		TextView status = (TextView) view.findViewById(R.id.details_contactstatus);
 35		CheckBox send = (CheckBox) view.findViewById(R.id.details_send_presence);
 36		CheckBox receive = (CheckBox) view.findViewById(R.id.details_receive_presence);
 37		ImageView contactPhoto = (ImageView) view.findViewById(R.id.details_contact_picture);
 38		
 39		boolean subscriptionSend = false;
 40		boolean subscriptionReceive = false;
 41		if (contact.getSubscription()!=null) {
 42			if (contact.getSubscription().equals("both")) {
 43				subscriptionReceive = true;
 44				subscriptionSend = true;
 45			} else if (contact.getSubscription().equals("from")) {
 46				subscriptionSend = true;
 47			} else if (contact.getSubscription().equals("to")) {
 48				subscriptionReceive = true;
 49			}
 50		}
 51		
 52		switch (contact.getMostAvailableStatus()) {
 53		case Presences.CHAT:
 54			status.setText("free to chat");
 55			status.setTextColor(0xFF83b600);
 56			break;
 57		case Presences.ONLINE:
 58			status.setText("online");
 59			status.setTextColor(0xFF83b600);
 60			break;
 61		case Presences.AWAY:
 62			status.setText("away");
 63			status.setTextColor(0xFFffa713);
 64			break;
 65		case Presences.XA:
 66			status.setText("extended away");
 67			status.setTextColor(0xFFffa713);
 68			break;
 69		case Presences.DND:
 70			status.setText("do not disturb");
 71			status.setTextColor(0xFFe92727);
 72			break;
 73		case Presences.OFFLINE:
 74			status.setText("offline");
 75			status.setTextColor(0xFFe92727);
 76			break;
 77		default:
 78			status.setText("offline");
 79			status.setTextColor(0xFFe92727);
 80			break;
 81		}
 82		
 83		send.setChecked(subscriptionSend);
 84		receive.setChecked(subscriptionReceive);
 85		contactJid.setText(contact.getJid());
 86		accountJid.setText(contact.getAccount().getJid());
 87		
 88		if (contact.getProfilePhoto()!=null) {
 89			contactPhoto.setImageURI(Uri.parse(contact.getProfilePhoto()));
 90		} else {
 91			contactPhoto.setImageBitmap(UIHelper.getUnknownContactPicture(contact.getDisplayName(), 300));
 92		}
 93		
 94		builder.setView(view);
 95		builder.setTitle(contact.getDisplayName());
 96		
 97		builder.setNeutralButton("Done", null);
 98		builder.setPositiveButton("Remove from roster", null);
 99		return builder.create();
100	}
101}