X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/fc8b6d0fcbedd6a4c9ae394a0640e79690e28337..a80e18169a9cc68c59c5d7bc6dcdc7b747dfcf37:/src/main/java/org/asamk/signal/dbus/DbusReceiveMessageHandler.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusReceiveMessageHandler.java b/src/main/java/org/asamk/signal/dbus/DbusReceiveMessageHandler.java index c7cb2ab7..dcea2bf1 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/dbus/DbusReceiveMessageHandler.java @@ -14,16 +14,13 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; public class DbusReceiveMessageHandler implements Manager.ReceiveMessageHandler { - private final Manager m; private final DBusConnection conn; private final String objectPath; - public DbusReceiveMessageHandler(Manager m, DBusConnection conn, final String objectPath) { - this.m = m; + public DbusReceiveMessageHandler(DBusConnection conn, final String objectPath) { this.conn = conn; this.objectPath = objectPath; } @@ -82,27 +79,29 @@ public class DbusReceiveMessageHandler implements Manager.ReceiveMessageHandler if (syncMessage.sent().isPresent()) { var transcript = syncMessage.sent().get(); - if (transcript.destination().isPresent() || transcript.message().groupContext().isPresent()) { - var message = transcript.message(); - var groupId = message.groupContext() - .map(MessageEnvelope.Data.GroupContext::groupId) - .map(GroupId::serialize) - .orElseGet(() -> new byte[0]); - - conn.sendMessage(new Signal.SyncMessageReceived(objectPath, - transcript.message().timestamp(), - senderString, - transcript.destination().map(RecipientAddress::getLegacyIdentifier).orElse(""), - groupId, - message.body().orElse(""), - getAttachments(message))); - conn.sendMessage(new Signal.SyncMessageReceivedV2(objectPath, - transcript.message().timestamp(), - senderString, - transcript.destination().map(RecipientAddress::getLegacyIdentifier).orElse(""), - groupId, - message.body().orElse(""), - getMessageExtras(message))); + if (transcript.message().isPresent()) { + final var dataMessage = transcript.message().get(); + if (transcript.destination().isPresent() || dataMessage.groupContext().isPresent()) { + var groupId = dataMessage.groupContext() + .map(MessageEnvelope.Data.GroupContext::groupId) + .map(GroupId::serialize) + .orElseGet(() -> new byte[0]); + + conn.sendMessage(new Signal.SyncMessageReceived(objectPath, + dataMessage.timestamp(), + senderString, + transcript.destination().map(RecipientAddress::getLegacyIdentifier).orElse(""), + groupId, + dataMessage.body().orElse(""), + getAttachments(dataMessage))); + conn.sendMessage(new Signal.SyncMessageReceivedV2(objectPath, + dataMessage.timestamp(), + senderString, + transcript.destination().map(RecipientAddress::getLegacyIdentifier).orElse(""), + groupId, + dataMessage.body().orElse(""), + getMessageExtras(dataMessage))); + } } } } @@ -127,12 +126,12 @@ public class DbusReceiveMessageHandler implements Manager.ReceiveMessageHandler var attachments = message.attachments() .stream() .filter(a -> a.id().isPresent()) - .map(a -> getAttachmentMap(m, a)) - .collect(Collectors.toList()); + .map(this::getAttachmentMap) + .toList(); extras.put("attachments", new Variant<>(attachments, "aa{sv}")); } if (message.mentions().size() > 0) { - var mentions = message.mentions().stream().map(this::getMentionMap).collect(Collectors.toList()); + var mentions = message.mentions().stream().map(this::getMentionMap).toList(); extras.put("mentions", new Variant<>(mentions, "aa{sv}")); } extras.put("expiresInSeconds", new Variant<>(message.expiresInSeconds())); @@ -165,7 +164,10 @@ public class DbusReceiveMessageHandler implements Manager.ReceiveMessageHandler } private Map> getStickerMap(final MessageEnvelope.Data.Sticker sticker) { - return Map.of("packId", new Variant<>(sticker.packId()), "stickerId", new Variant<>(sticker.stickerId())); + return Map.of("packId", + new Variant<>(sticker.packId().serialize()), + "stickerId", + new Variant<>(sticker.stickerId())); } private Map> getReactionMap(final MessageEnvelope.Data.Reaction reaction) { @@ -180,7 +182,7 @@ public class DbusReceiveMessageHandler implements Manager.ReceiveMessageHandler } private Map> getAttachmentMap( - final Manager m, final MessageEnvelope.Data.Attachment a + final MessageEnvelope.Data.Attachment a ) { final var map = new HashMap>(); if (a.id().isPresent()) {