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}