From: AsamK Date: Sun, 22 Nov 2020 09:48:42 +0000 (+0100) Subject: Adapt json output to always use receiptMessage and remove isReceipt field X-Git-Tag: v0.6.12~4 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/44851887894ed9162006ad9b12309e732aa3e876 Adapt json output to always use receiptMessage and remove isReceipt field Fixes #346 --- diff --git a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java index b4269949..5e5e6a33 100644 --- a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java @@ -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) { diff --git a/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java b/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java index 1b896053..b2ab7f75 100644 --- a/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java @@ -22,4 +22,15 @@ class JsonReceiptMessage { } this.timestamps = receiptMessage.getTimestamps(); } + + private JsonReceiptMessage(final long when, final boolean isDelivery, final boolean isRead, final List timestamps) { + this.when = when; + this.isDelivery = isDelivery; + this.isRead = isRead; + this.timestamps = timestamps; + } + + static JsonReceiptMessage deliveryReceipt(final long when, final List timestamps) { + return new JsonReceiptMessage(when, true, false, timestamps); + } }