diff options
author | Christian Schneppe <christian@pix-art.de> | 2019-07-17 20:44:34 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2019-07-17 20:44:34 +0200 |
commit | d52f09b6f4f165fda2d147cd968dcee23524c339 (patch) | |
tree | 74b2e4c17421cf285aee45801f189d577c01d057 /src/main/java/de/pixart/messenger/services | |
parent | c88523b1b84e9226e524e8d9b7ef6987118cd2cd (diff) |
handle blocking and unblocking of full jids
Diffstat (limited to 'src/main/java/de/pixart/messenger/services')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/AvatarService.java | 7 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/services/XmppConnectionService.java | 16 |
2 files changed, 12 insertions, 11 deletions
diff --git a/src/main/java/de/pixart/messenger/services/AvatarService.java b/src/main/java/de/pixart/messenger/services/AvatarService.java index c38fdcc99..a07b3a6e5 100644 --- a/src/main/java/de/pixart/messenger/services/AvatarService.java +++ b/src/main/java/de/pixart/messenger/services/AvatarService.java @@ -38,6 +38,7 @@ import de.pixart.messenger.entities.Conversational; import de.pixart.messenger.entities.ListItem; import de.pixart.messenger.entities.Message; import de.pixart.messenger.entities.MucOptions; +import de.pixart.messenger.entities.RawBlockable; import de.pixart.messenger.http.services.MuclumbusService; import de.pixart.messenger.utils.UIHelper; import de.pixart.messenger.xmpp.OnAdvancedStreamFeaturesLoaded; @@ -86,7 +87,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { } else if (avatarable instanceof MuclumbusService.Room) { return get((MuclumbusService.Room) avatarable, size, cachedOnly); } - throw new AssertionError("AvatarService does not know how to generate avatar from "+avatarable.getClass().getName()); + throw new AssertionError("AvatarService does not know how to generate avatar from " + avatarable.getClass().getName()); } private Bitmap get(final MuclumbusService.Room result, final int size, boolean cacheOnly) { @@ -275,7 +276,9 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { } public Bitmap get(ListItem item, int size, boolean cachedOnly) { - if (item instanceof Contact) { + if (item instanceof RawBlockable) { + return get(item.getDisplayName(), item.getJid().toEscapedString(), size, cachedOnly); + } else if (item instanceof Contact) { return get((Contact) item, size, cachedOnly); } else if (item instanceof Bookmark) { Bookmark bookmark = (Bookmark) item; diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index cb18a1d7e..a0d298d47 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -4606,17 +4606,15 @@ public class XmppConnectionService extends Service { public boolean sendBlockRequest(final Blockable blockable, boolean reportSpam) { if (blockable != null && blockable.getBlockedJid() != null) { final Jid jid = blockable.getBlockedJid(); - this.sendIqPacket(blockable.getAccount(), getIqGenerator().generateSetBlockRequest(jid, reportSpam), new OnIqPacketReceived() { - - @Override - public void onIqPacketReceived(final Account account, final IqPacket packet) { - if (packet.getType() == IqPacket.TYPE.RESULT) { - account.getBlocklist().add(jid); - updateBlocklistUi(OnUpdateBlocklist.Status.BLOCKED); - } + this.sendIqPacket(blockable.getAccount(), getIqGenerator().generateSetBlockRequest(jid, reportSpam), (a, response) -> { + if (response.getType() == IqPacket.TYPE.RESULT) { + a.getBlocklist().add(jid); + updateBlocklistUi(OnUpdateBlocklist.Status.BLOCKED); } }); - if (removeBlockedConversations(blockable.getAccount(), jid)) { + if (blockable.getBlockedJid().isFullJid()) { + return false; + } else if (removeBlockedConversations(blockable.getAccount(), jid)) { updateConversationUi(); return true; } else { |