X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/46a4c2c0d0a36b7f230fc2c2d47aa371a6e02d35..ab95e635cebb33396240cbaaa6eba882350d6877:/src/main/java/org/asamk/signal/json/JsonDataMessage.java diff --git a/src/main/java/org/asamk/signal/json/JsonDataMessage.java b/src/main/java/org/asamk/signal/json/JsonDataMessage.java index e755acad..6dbda978 100644 --- a/src/main/java/org/asamk/signal/json/JsonDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonDataMessage.java @@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.asamk.Signal; import org.asamk.signal.manager.Manager; import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceGroupContext; -import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2; import java.util.List; import java.util.stream.Collectors; @@ -24,6 +21,10 @@ class JsonDataMessage { @JsonProperty final Integer expiresInSeconds; + @JsonProperty + @JsonInclude(JsonInclude.Include.NON_NULL) + final Boolean viewOnce; + @JsonProperty @JsonInclude(JsonInclude.Include.NON_NULL) final JsonReaction reaction; @@ -44,6 +45,14 @@ class JsonDataMessage { @JsonInclude(JsonInclude.Include.NON_NULL) final JsonSticker sticker; + @JsonProperty + @JsonInclude(JsonInclude.Include.NON_NULL) + final JsonRemoteDelete remoteDelete; + + @JsonProperty + @JsonInclude(JsonInclude.Include.NON_NULL) + final List contacts; + @JsonProperty @JsonInclude(JsonInclude.Include.NON_NULL) final JsonGroupInfo groupInfo; @@ -51,12 +60,12 @@ class JsonDataMessage { JsonDataMessage(SignalServiceDataMessage dataMessage, Manager m) { this.timestamp = dataMessage.getTimestamp(); if (dataMessage.getGroupContext().isPresent()) { - final SignalServiceGroupContext groupContext = dataMessage.getGroupContext().get(); + final var groupContext = dataMessage.getGroupContext().get(); if (groupContext.getGroupV1().isPresent()) { - SignalServiceGroup groupInfo = groupContext.getGroupV1().get(); + var groupInfo = groupContext.getGroupV1().get(); this.groupInfo = new JsonGroupInfo(groupInfo); } else if (groupContext.getGroupV2().isPresent()) { - SignalServiceGroupV2 groupInfo = groupContext.getGroupV2().get(); + var groupInfo = groupContext.getGroupV2().get(); this.groupInfo = new JsonGroupInfo(groupInfo); } else { this.groupInfo = null; @@ -66,6 +75,7 @@ class JsonDataMessage { } this.message = dataMessage.getBody().orNull(); this.expiresInSeconds = dataMessage.getExpiresInSeconds(); + this.viewOnce = dataMessage.isViewOnce(); this.reaction = dataMessage.getReaction().isPresent() ? new JsonReaction(dataMessage.getReaction().get(), m) : null; @@ -79,6 +89,8 @@ class JsonDataMessage { } else { this.mentions = List.of(); } + remoteDelete = dataMessage.getRemoteDelete().isPresent() ? new JsonRemoteDelete(dataMessage.getRemoteDelete() + .get()) : null; if (dataMessage.getAttachments().isPresent()) { this.attachments = dataMessage.getAttachments() .get() @@ -89,6 +101,16 @@ class JsonDataMessage { this.attachments = List.of(); } this.sticker = dataMessage.getSticker().isPresent() ? new JsonSticker(dataMessage.getSticker().get()) : null; + + if (dataMessage.getSharedContacts().isPresent()) { + this.contacts = dataMessage.getSharedContacts() + .get() + .stream() + .map(JsonSharedContact::new) + .collect(Collectors.toList()); + } else { + this.contacts = List.of(); + } } public JsonDataMessage(Signal.MessageReceived messageReceived) { @@ -96,10 +118,13 @@ class JsonDataMessage { message = messageReceived.getMessage(); groupInfo = messageReceived.getGroupId().length > 0 ? new JsonGroupInfo(messageReceived.getGroupId()) : null; expiresInSeconds = null; - reaction = null; // TODO Replace these 4 with the proper commands + viewOnce = null; + remoteDelete = null; + reaction = null; // TODO Replace these 5 with the proper commands quote = null; mentions = null; sticker = null; + contacts = null; attachments = messageReceived.getAttachments().stream().map(JsonAttachment::new).collect(Collectors.toList()); } @@ -108,10 +133,13 @@ class JsonDataMessage { message = messageReceived.getMessage(); groupInfo = messageReceived.getGroupId().length > 0 ? new JsonGroupInfo(messageReceived.getGroupId()) : null; expiresInSeconds = null; - reaction = null; // TODO Replace these 4 with the proper commands + viewOnce = null; + remoteDelete = null; + reaction = null; // TODO Replace these 5 with the proper commands quote = null; mentions = null; sticker = null; + contacts = null; attachments = messageReceived.getAttachments().stream().map(JsonAttachment::new).collect(Collectors.toList()); } }