]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java
Update libsignal-service-java
[signal-cli] / src / main / java / org / asamk / signal / json / JsonMessageEnvelope.java
index 2a87d12907095a8f292f32f798dda52023547100..d58f384312956a37286262282ba8ab2ed4eacf17 100644 (file)
@@ -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;
     }
 }