]> nmode's Git Repositories - signal-cli/commitdiff
Adapt json output to always use receiptMessage and remove isReceipt field
authorAsamK <asamk@gmx.de>
Sun, 22 Nov 2020 09:48:42 +0000 (10:48 +0100)
committerAsamK <asamk@gmx.de>
Sun, 22 Nov 2020 09:48:55 +0000 (10:48 +0100)
Fixes #346

src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java
src/main/java/org/asamk/signal/json/JsonReceiptMessage.java

index b42699495668899af4a2ad9837c917e6c54bef7b..5e5e6a33f53bad75942ffba487e014bca13fd9d5 100644 (file)
@@ -5,13 +5,14 @@ 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;
+
 public class JsonMessageEnvelope {
 
     String source;
     int sourceDevice;
     String relay;
     long timestamp;
-    boolean isReceipt;
     JsonDataMessage dataMessage;
     JsonSyncMessage syncMessage;
     JsonCallMessage callMessage;
@@ -25,7 +26,9 @@ public class JsonMessageEnvelope {
         }
         this.sourceDevice = envelope.getSourceDevice();
         this.timestamp = envelope.getTimestamp();
-        this.isReceipt = envelope.isReceipt();
+        if (envelope.isReceipt()) {
+            this.receiptMessage = JsonReceiptMessage.deliveryReceipt(timestamp, List.of(timestamp));
+        }
         if (content != null) {
             if (envelope.isUnidentifiedSender()) {
                 this.source = content.getSender().getLegacyIdentifier();
@@ -55,7 +58,7 @@ public class JsonMessageEnvelope {
     public JsonMessageEnvelope(Signal.ReceiptReceived receiptReceived) {
         source = receiptReceived.getSender();
         timestamp = receiptReceived.getTimestamp();
-        isReceipt = true;
+        receiptMessage = JsonReceiptMessage.deliveryReceipt(timestamp, List.of(timestamp));
     }
 
     public JsonMessageEnvelope(Signal.SyncMessageReceived messageReceived) {
index 1b896053efe26a979985c987a2ba9290d7cc2819..b2ab7f75597eb5e5f5d08476f6e83d71f0d3b78b 100644 (file)
@@ -22,4 +22,15 @@ class JsonReceiptMessage {
         }
         this.timestamps = receiptMessage.getTimestamps();
     }
+
+    private JsonReceiptMessage(final long when, final boolean isDelivery, final boolean isRead, final List<Long> timestamps) {
+        this.when = when;
+        this.isDelivery = isDelivery;
+        this.isRead = isRead;
+        this.timestamps = timestamps;
+    }
+
+    static JsonReceiptMessage deliveryReceipt(final long when, final List<Long> timestamps) {
+        return new JsonReceiptMessage(when, true, false, timestamps);
+    }
 }