1package eu.siacs.conversations.ui;
2
3import android.app.AlertDialog;
4import android.content.Context;
5import android.content.DialogInterface;
6
7import eu.siacs.conversations.R;
8import eu.siacs.conversations.entities.Blockable;
9import eu.siacs.conversations.services.XmppConnectionService;
10
11public final class BlockContactDialog {
12 public static void show(final Context context,
13 final XmppConnectionService xmppConnectionService,
14 final Blockable blockable) {
15 final AlertDialog.Builder builder = new AlertDialog.Builder(context);
16 final boolean isBlocked = blockable.isBlocked();
17 builder.setNegativeButton(R.string.cancel, null);
18
19 if (blockable.getJid().isDomainJid() || blockable.getAccount().isBlocked(blockable.getJid().toDomainJid())) {
20 builder.setTitle(isBlocked ? R.string.action_unblock_domain : R.string.action_block_domain);
21 builder.setMessage(context.getResources().getString(isBlocked ? R.string.unblock_domain_text : R.string.block_domain_text,
22 blockable.getJid().toDomainJid()));
23 } else {
24 builder.setTitle(isBlocked ? R.string.action_unblock_contact : R.string.action_block_contact);
25 builder.setMessage(context.getResources().getString(isBlocked ? R.string.unblock_contact_text : R.string.block_contact_text,
26 blockable.getJid().toBareJid()));
27 }
28 builder.setPositiveButton(isBlocked ? R.string.unblock : R.string.block, new DialogInterface.OnClickListener() {
29
30 @Override
31 public void onClick(final DialogInterface dialog, final int which) {
32 if (isBlocked) {
33 xmppConnectionService.sendUnblockRequest(blockable);
34 } else {
35 xmppConnectionService.sendBlockRequest(blockable);
36 }
37 }
38 });
39 builder.create().show();
40 }
41}