From e1ff6b02f53ef6fcd3732b78607beedd88da916a Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 9 Mar 2017 19:31:40 +0100 Subject: added an option to directly add a jid to block list from blocklist activity --- .../de/pixart/messenger/ui/BlocklistActivity.java | 43 +++++++++++++++++++++- .../pixart/messenger/ui/EditAccountActivity.java | 2 - src/main/res/menu/choose_contact.xml | 7 ++++ src/main/res/values/strings.xml | 1 + 4 files changed, 50 insertions(+), 3 deletions(-) (limited to 'src/main') diff --git a/src/main/java/de/pixart/messenger/ui/BlocklistActivity.java b/src/main/java/de/pixart/messenger/ui/BlocklistActivity.java index cb5a0112b..c1d388231 100644 --- a/src/main/java/de/pixart/messenger/ui/BlocklistActivity.java +++ b/src/main/java/de/pixart/messenger/ui/BlocklistActivity.java @@ -2,18 +2,23 @@ package de.pixart.messenger.ui; import android.os.Bundle; import android.text.Editable; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; +import de.pixart.messenger.R; import de.pixart.messenger.entities.Account; import de.pixart.messenger.entities.Contact; import de.pixart.messenger.xmpp.OnUpdateBlocklist; import de.pixart.messenger.xmpp.jid.Jid; public class BlocklistActivity extends AbstractSearchableListItemActivity implements OnUpdateBlocklist { - + private List mKnownHosts = new ArrayList(); private Account account = null; @Override @@ -41,6 +46,7 @@ public class BlocklistActivity extends AbstractSearchableListItemActivity implem } } filterContacts(); + this.mKnownHosts = xmppConnectionService.getKnownHosts(); } @Override @@ -58,6 +64,41 @@ public class BlocklistActivity extends AbstractSearchableListItemActivity implem getListItemAdapter().notifyDataSetChanged(); } + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + super.onCreateOptionsMenu(menu); + menu.findItem(R.id.action_add_contact).setVisible(true); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_add_contact: + showEnterJidDialog(); + return true; + } + return super.onOptionsItemSelected(item); + } + + protected void showEnterJidDialog() { + EnterJidDialog dialog = new EnterJidDialog( + this, mKnownHosts, null, + getString(R.string.block_jabber_id), getString(R.string.block), + null, account.getJid().toBareJid().toString(), true + ); + + dialog.setOnEnterJidDialogPositiveListener(new EnterJidDialog.OnEnterJidDialogPositiveListener() { + @Override + public boolean onEnterJidDialogPositive(Jid accountJid, Jid contactJid) throws EnterJidDialog.JidError { + Contact contact = account.getRoster().getContact(contactJid); + xmppConnectionService.sendBlockRequest(contact, false); + return true; + } + }); + dialog.show(); + } + protected void refreshUiReal() { final Editable editable = getSearchEditText().getText(); if (editable != null) { diff --git a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java index c578a5931..fd18df172 100644 --- a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java +++ b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java @@ -575,8 +575,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat if (mAccount != null && mAccount.isOnlineAndConnected()) { if (!mAccount.getXmppConnection().getFeatures().blocking()) { showBlocklist.setVisible(false); - } else { - showBlocklist.setEnabled(mAccount.getBlocklist().size() > 0); } if (!mAccount.getXmppConnection().getFeatures().register()) { changePassword.setVisible(false); diff --git a/src/main/res/menu/choose_contact.xml b/src/main/res/menu/choose_contact.xml index 6c4d82153..c91fd122b 100644 --- a/src/main/res/menu/choose_contact.xml +++ b/src/main/res/menu/choose_contact.xml @@ -14,4 +14,11 @@ android:showAsAction="always" android:title="@string/create_contact" android:visible="false" /> + + diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 0003d131e..133cfa250 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -746,4 +746,5 @@ Start chtatting… Switch to maximum brightness while watching videos or images in fullscreen. Maximum brightness + Block Jabber ID -- cgit v1.2.3