DialogMucDetails.java

  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}