From d35ebbae226b99a239e3da7f4a70685cfaad6c43 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Fri, 4 Oct 2024 21:24:27 -0500 Subject: [PATCH] Loosen requirement to have occupant id to send reaction --- .../siacs/conversations/entities/Reaction.java | 16 ++++++++++++++++ .../services/XmppConnectionService.java | 6 +----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Reaction.java b/src/main/java/eu/siacs/conversations/entities/Reaction.java index 0f654a1285772bec5621ea4fb43bd38f041d9028..734fe46803ed7b16317fab19a5135a22295f4f82 100644 --- a/src/main/java/eu/siacs/conversations/entities/Reaction.java +++ b/src/main/java/eu/siacs/conversations/entities/Reaction.java @@ -94,6 +94,22 @@ public class Reaction { } } + public static Collection withMine( + final Collection existing, + final Collection reactions, + final boolean received, + final Jid from, + final Jid trueJid, + final String occupantId, + final String envelopeId) { + final ImmutableSet.Builder builder = new ImmutableSet.Builder<>(); + builder.addAll(Collections2.filter(existing, e -> e.received)); + builder.addAll( + Collections2.transform( + reactions, r -> new Reaction(r, null, received, from, trueJid, occupantId, envelopeId))); + return builder.build(); + } + public static Collection withOccupantId( final Collection existing, final Collection reactions, diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 7ba667b10c9cc67583b708dc93dbe7c9a22f8b0c..cf148afaccc7ebb9c0b194a2305e0b89de5c3a57 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -5276,13 +5276,9 @@ public class XmppConnectionService extends Service { if (conversation.getMode() == Conversational.MODE_MULTI) { final var self = conversation.getMucOptions().getSelf(); final String occupantId = self.getOccupantId(); - if (Strings.isNullOrEmpty(occupantId)) { - Log.d(Config.LOGTAG, "occupant id not found for reaction in MUC"); - return false; - } reactToId = message.getServerMsgId(); combinedReactions = - Reaction.withOccupantId( + Reaction.withMine( message.getReactions(), reactions, false,