BlockContactDialog.java

 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}