@@ -94,6 +94,22 @@ public class Reaction {
}
}
+ public static Collection<Reaction> withMine(
+ final Collection<Reaction> existing,
+ final Collection<String> reactions,
+ final boolean received,
+ final Jid from,
+ final Jid trueJid,
+ final String occupantId,
+ final String envelopeId) {
+ final ImmutableSet.Builder<Reaction> 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<Reaction> withOccupantId(
final Collection<Reaction> existing,
final Collection<String> reactions,
@@ -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,