diff --git a/src/main/java/org/asamk/signal/JsonDbusReceiveMessageHandler.java b/src/main/java/org/asamk/signal/JsonDbusReceiveMessageHandler.java index e0bd793d..22c562b8 100644 --- a/src/main/java/org/asamk/signal/JsonDbusReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/JsonDbusReceiveMessageHandler.java @@ -1,6 +1,7 @@ package org.asamk.signal; import org.asamk.Signal; +import org.asamk.signal.json.JsonMention; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.groups.GroupUtils; import org.freedesktop.dbus.connections.impl.DBusConnection; @@ -72,7 +73,8 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler { sender.getLegacyIdentifier(), groupId != null ? groupId : new byte[0], message.getBody().isPresent() ? message.getBody().get() : "", - JsonDbusReceiveMessageHandler.getAttachments(message, m))); + JsonDbusReceiveMessageHandler.getAttachments(message, m), + JsonDbusReceiveMessageHandler.getMentions(message, m))); } catch (DBusException e) { e.printStackTrace(); } @@ -97,7 +99,8 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler { .getLegacyIdentifier() : "", groupId != null ? groupId : new byte[0], message.getBody().isPresent() ? message.getBody().get() : "", - JsonDbusReceiveMessageHandler.getAttachments(message, m))); + JsonDbusReceiveMessageHandler.getAttachments(message, m) + JsonDbusReceiveMessageHandler.getMentions(message, m))); } catch (DBusException e) { e.printStackTrace(); } @@ -124,6 +127,18 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler { return attachments; } + static private List getMentions(SignalServiceDataMessage message, Manager m) { + var mentions = new ArrayList(); + if (message.getMentions().isPresent()) { + for (var mention : message.getMentions().get()) { + if (mention.isPointer()) { + mentions.add(new JsonMention(mention, m)); + } + } + } + return mentions; + } + @Override public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) { super.handleMessage(envelope, content, exception);