1package eu.siacs.conversations.ui;
2
3
4import eu.siacs.conversations.R;
5import eu.siacs.conversations.entities.Conversation;
6import eu.siacs.conversations.entities.MucOptions;
7import android.app.AlertDialog;
8import android.app.Dialog;
9import android.app.DialogFragment;
10import android.content.DialogInterface;
11import android.content.DialogInterface.OnClickListener;
12import android.os.Bundle;
13import android.view.LayoutInflater;
14import android.view.View;
15import android.widget.EditText;
16import android.widget.TextView;
17
18public class DialogMucDetails extends DialogFragment {
19 private XmppActivity activity;
20 private Conversation conversation;
21 private EditText mYourNick;
22 private OnClickListener changeNickListener = new OnClickListener() {
23
24 @Override
25 public void onClick(DialogInterface dialog, int which) {
26 MucOptions options = conversation.getMucOptions();
27 String nick = mYourNick.getText().toString();
28 if (!options.getNick().equals(nick)) {
29 activity.xmppConnectionService.renameInMuc(conversation,nick,activity);
30 }
31 }
32 };
33
34 @Override
35 public Dialog onCreateDialog(Bundle savedInstanceState) {
36 this.activity = (XmppActivity) getActivity();
37 AlertDialog.Builder builder = new AlertDialog.Builder(this.activity);
38 LayoutInflater inflater = getActivity().getLayoutInflater();
39 View view = inflater.inflate(R.layout.muc_options, null);
40 builder.setView(view);
41 builder.setTitle(getString(R.string.conference_details));
42 mYourNick = (EditText) view.findViewById(R.id.muc_your_nick);
43 TextView mTextModerators = (TextView) view.findViewById(R.id.muc_moderators);
44 TextView mTextParticipants = (TextView) view.findViewById(R.id.muc_participants);
45 TextView mTextVisiotors = (TextView) view.findViewById(R.id.muc_visitors);
46 TextView mTextModeratorsHead = (TextView) view.findViewById(R.id.muc_moderators_header);
47 TextView mTextParticipantsHead = (TextView) view.findViewById(R.id.muc_participants_header);
48 TextView mTextVisiotorsHead = (TextView) view.findViewById(R.id.muc_visitors_header);
49 StringBuilder mods = new StringBuilder();
50 StringBuilder participants = new StringBuilder();
51 StringBuilder visitors = new StringBuilder();
52 for(MucOptions.User user : conversation.getMucOptions().getUsers()) {
53 if (user.getRole() == MucOptions.User.ROLE_MODERATOR) {
54 if (mods.length()>=1) {
55 mods.append("\n, "+user.getName());
56 } else {
57 mods.append(user.getName());
58 }
59 } else if (user.getRole() == MucOptions.User.ROLE_PARTICIPANT) {
60 if (participants.length()>=1) {
61 participants.append("\n, "+user.getName());
62 } else {
63 participants.append(user.getName());
64 }
65 } else {
66 if (visitors.length()>=1) {
67 visitors.append("\n, "+user.getName());
68 } else {
69 visitors.append(user.getName());
70 }
71 }
72 }
73 if (mods.length()>0) {
74 mTextModerators.setText(mods.toString());
75 } else {
76 mTextModerators.setVisibility(View.GONE);
77 mTextModeratorsHead.setVisibility(View.GONE);
78 }
79 if (participants.length()>0) {
80 mTextParticipants.setText(participants.toString());
81 } else {
82 mTextParticipants.setVisibility(View.GONE);
83 mTextParticipantsHead.setVisibility(View.GONE);
84 }
85 if (visitors.length()>0) {
86 mTextVisiotors.setText(visitors.toString());
87 } else {
88 mTextVisiotors.setVisibility(View.GONE);
89 mTextVisiotorsHead.setVisibility(View.GONE);
90 }
91 mYourNick.setText(conversation.getMucOptions().getNick());
92 builder.setPositiveButton("Done", this.changeNickListener );
93 builder.setNegativeButton("Cancel", null);
94 return builder.create();
95 }
96
97 public void setConversation(Conversation conversation) {
98 this.conversation = conversation;
99 }
100}