From 9ed901096ca68bf85510eda74d7d1a5c4655a473 Mon Sep 17 00:00:00 2001 From: Patrick Connolly Date: Sat, 8 May 2021 00:12:37 -0400 Subject: [PATCH] Added mentions data to dbus Message and SyncMessage. --- .../signal/JsonDbusReceiveMessageHandler.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) 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);