package com.xabber.android.ui.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import com.xabber.android.R;
import com.xabber.android.data.Application;
import com.xabber.android.data.NetworkException;
import com.xabber.android.data.entity.AccountJid;
import com.xabber.android.data.roster.RosterManager;
public class GroupDeleteDialogFragment extends DialogFragment implements DialogInterface.OnClickListener {
public static final String ARGUMENT_ACCOUNT = "com.xabber.android.ui.dialog.GroupDeleteDialogFragment.ARGUMENT_ACCOUNT";
public static final String ARGUMENT_GROUP = "com.xabber.android.ui.dialog.GroupDeleteDialogFragment.ARGUMENT_GROUP";
private AccountJid account;
private String group;
/**
* @param account can be <code>null</code> to be used for all accounts.
*/
public static DialogFragment newInstance(AccountJid account, String group) {
GroupDeleteDialogFragment fragment = new GroupDeleteDialogFragment();
Bundle arguments = new Bundle();
arguments.putParcelable(ARGUMENT_ACCOUNT, account);
arguments.putString(ARGUMENT_GROUP, group);
fragment.setArguments(arguments);
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = getArguments();
account = args.getParcelable(ARGUMENT_ACCOUNT);
group = args.getString(ARGUMENT_GROUP, null);
return new AlertDialog.Builder(getActivity())
.setMessage(getString(R.string.group_remove_confirm, group))
.setPositiveButton(R.string.group_remove, this)
.setNegativeButton(android.R.string.cancel, this)
.create();
}
@Override
public void onClick(DialogInterface dialog, int which) {
if (which != Dialog.BUTTON_POSITIVE) {
return;
}
try {
if (account == null)
RosterManager.getInstance().removeGroup(group);
else
RosterManager.getInstance().removeGroup(account, group);
} catch (NetworkException e) {
Application.getInstance().onError(e);
}
}
}