X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/46a4c2c0d0a36b7f230fc2c2d47aa371a6e02d35..a70dfdc8b860b9a8a6472cb0b7d57b02c3cf5287:/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java diff --git a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java index 2a87d129..d58f3843 100644 --- a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java @@ -7,10 +7,11 @@ import org.asamk.Signal; import org.asamk.signal.manager.Manager; import org.whispersystems.signalservice.api.messages.SignalServiceContent; import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; import java.util.List; +import static org.asamk.signal.util.Util.getLegacyIdentifier; + public class JsonMessageEnvelope { @JsonProperty @@ -20,6 +21,7 @@ public class JsonMessageEnvelope { final Integer sourceDevice; @JsonProperty + @JsonInclude(JsonInclude.Include.NON_NULL) final String relay; @JsonProperty @@ -41,14 +43,18 @@ public class JsonMessageEnvelope { @JsonInclude(JsonInclude.Include.NON_NULL) final JsonReceiptMessage receiptMessage; + @JsonProperty + @JsonInclude(JsonInclude.Include.NON_NULL) + final JsonTypingMessage typingMessage; + public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content, Manager m) { if (!envelope.isUnidentifiedSender() && envelope.hasSource()) { - SignalServiceAddress source = envelope.getSourceAddress(); - this.source = source.getLegacyIdentifier(); + var source = envelope.getSourceAddress(); + this.source = getLegacyIdentifier(source); this.sourceDevice = envelope.getSourceDevice(); this.relay = source.getRelay().orNull(); } else if (envelope.isUnidentifiedSender() && content != null) { - this.source = content.getSender().getLegacyIdentifier(); + this.source = getLegacyIdentifier(content.getSender()); this.sourceDevice = content.getSenderDevice(); this.relay = null; } else { @@ -64,6 +70,9 @@ public class JsonMessageEnvelope { } else { this.receiptMessage = null; } + this.typingMessage = content != null && content.getTypingMessage().isPresent() + ? new JsonTypingMessage(content.getTypingMessage().get()) + : null; this.dataMessage = content != null && content.getDataMessage().isPresent() ? new JsonDataMessage(content.getDataMessage().get(), m) @@ -85,6 +94,7 @@ public class JsonMessageEnvelope { dataMessage = new JsonDataMessage(messageReceived); syncMessage = null; callMessage = null; + typingMessage = null; } public JsonMessageEnvelope(Signal.ReceiptReceived receiptReceived) { @@ -96,6 +106,7 @@ public class JsonMessageEnvelope { dataMessage = null; syncMessage = null; callMessage = null; + typingMessage = null; } public JsonMessageEnvelope(Signal.SyncMessageReceived messageReceived) { @@ -107,5 +118,6 @@ public class JsonMessageEnvelope { dataMessage = null; syncMessage = new JsonSyncMessage(messageReceived); callMessage = null; + typingMessage = null; } }