diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/BlockContactDialog.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/BlockContactDialog.java b/src/main/java/de/pixart/messenger/ui/BlockContactDialog.java index 3be0d9344..bf33c35d9 100644 --- a/src/main/java/de/pixart/messenger/ui/BlockContactDialog.java +++ b/src/main/java/de/pixart/messenger/ui/BlockContactDialog.java @@ -11,19 +11,18 @@ import android.view.View; import android.widget.CheckBox; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; import de.pixart.messenger.R; import de.pixart.messenger.entities.Blockable; -import de.pixart.messenger.services.XmppConnectionService; public final class BlockContactDialog { - public static void show(final Context context, - final XmppConnectionService xmppConnectionService, + public static void show(final XmppActivity xmppActivity, final Blockable blockable) { - final AlertDialog.Builder builder = new AlertDialog.Builder(context); + final AlertDialog.Builder builder = new AlertDialog.Builder(xmppActivity); final boolean isBlocked = blockable.isBlocked(); builder.setNegativeButton(R.string.cancel, null); - LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + LayoutInflater inflater = (LayoutInflater) xmppActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout view = (LinearLayout) inflater.inflate(R.layout.dialog_block_contact, null); TextView message = (TextView) view.findViewById(R.id.text); final CheckBox report = (CheckBox) view.findViewById(R.id.report_spam); @@ -36,11 +35,11 @@ public final class BlockContactDialog { if (blockable.getJid().isDomainJid() || blockable.getAccount().isBlocked(blockable.getJid().toDomainJid())) { builder.setTitle(isBlocked ? R.string.action_unblock_domain : R.string.action_block_domain); value = blockable.getJid().toDomainJid().toString(); - spannable = new SpannableString(context.getString(isBlocked ? R.string.unblock_domain_text : R.string.block_domain_text, value)); + spannable = new SpannableString(xmppActivity.getString(isBlocked ? R.string.unblock_domain_text : R.string.block_domain_text, value)); } else { builder.setTitle(isBlocked ? R.string.action_unblock_contact : R.string.action_block_contact); value = blockable.getJid().toBareJid().toString(); - spannable = new SpannableString(context.getString(isBlocked ? R.string.unblock_contact_text : R.string.block_contact_text, value)); + spannable = new SpannableString(xmppActivity.getString(isBlocked ? R.string.unblock_contact_text : R.string.block_contact_text, value)); } int start = spannable.toString().indexOf(value); if (start >= 0) { @@ -52,9 +51,19 @@ public final class BlockContactDialog { @Override public void onClick(final DialogInterface dialog, final int which) { if (isBlocked) { - xmppConnectionService.sendUnblockRequest(blockable); + xmppActivity.xmppConnectionService.sendUnblockRequest(blockable); } else { - xmppConnectionService.sendBlockRequest(blockable, report.isChecked()); + boolean toastShown = false; + if (xmppActivity.xmppConnectionService.sendBlockRequest(blockable, report.isChecked())) { + Toast.makeText(xmppActivity, R.string.corresponding_conversations_closed, Toast.LENGTH_SHORT).show(); + toastShown = true; + } + if (xmppActivity instanceof ContactDetailsActivity) { + if (!toastShown) { + Toast.makeText(xmppActivity, R.string.contact_blocked_past_tense, Toast.LENGTH_SHORT).show(); + } + xmppActivity.finish(); + } } } }); |