aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-07-17 20:44:34 +0200
committerChristian Schneppe <christian@pix-art.de>2019-07-17 20:44:34 +0200
commitd52f09b6f4f165fda2d147cd968dcee23524c339 (patch)
tree74b2e4c17421cf285aee45801f189d577c01d057 /src/main/java/de/pixart/messenger/services
parentc88523b1b84e9226e524e8d9b7ef6987118cd2cd (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.java7
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java16
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 {