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 android.app.AlertDialog;
 7import android.app.Dialog;
 8import android.app.DialogFragment;
 9import android.os.Bundle;
10import android.view.LayoutInflater;
11import android.view.View;
12import android.widget.CheckBox;
13import android.widget.TextView;
14
15public class DialogContactDetails extends DialogFragment {
16	
17	private Contact contact = null;
18	boolean displayingInRoster = false;
19	
20	public void setContact(Contact contact) {
21		this.contact = contact;
22	}
23	
24	@Override
25	public Dialog onCreateDialog(Bundle savedInstanceState) {
26		final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
27		LayoutInflater inflater = getActivity().getLayoutInflater();
28		View view = inflater.inflate(R.layout.dialog_contact_details, null);
29		TextView contactJid = (TextView) view.findViewById(R.id.details_contact_jid);
30		TextView accountJid = (TextView) view.findViewById(R.id.details_account);
31		TextView status = (TextView) view.findViewById(R.id.details_contact_status);
32		CheckBox send = (CheckBox) view.findViewById(R.id.details_send_presence);
33		CheckBox receive = (CheckBox) view.findViewById(R.id.details_receive_presence);
34		
35		boolean subscriptionSend = false;
36		boolean subscriptionReceive = false;
37		if (contact.getSubscription().equals("both")) {
38			subscriptionReceive = true;
39			subscriptionSend = true;
40		} else if (contact.getSubscription().equals("from")) {
41			subscriptionSend = true;
42		} else if (contact.getSubscription().equals("to")) {
43			subscriptionReceive = true;
44		}
45		
46		switch (contact.getMostAvailableStatus()) {
47		case Presences.CHAT:
48			status.setText("free to chat");
49			break;
50		case Presences.ONLINE:
51			status.setText("online");
52			break;
53		case Presences.AWAY:
54			status.setText("away");
55			break;
56		case Presences.XA:
57			status.setText("extended away");
58			break;
59		case Presences.DND:
60			status.setText("do not disturb");
61			break;
62		case Presences.OFFLINE:
63			status.setText("offline");
64			break;
65		default:
66			status.setText("offline");
67			break;
68		}
69		
70		send.setChecked(subscriptionSend);
71		receive.setChecked(subscriptionReceive);
72		contactJid.setText(contact.getJid());
73		accountJid.setText(contact.getAccount().getJid());
74		
75		builder.setView(view);
76		builder.setTitle(contact.getDisplayName());
77		
78		builder.setNeutralButton("Done", null);
79		builder.setPositiveButton("Remove from roster", null);
80		return builder.create();
81	}
82}