X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ae41d0c5026fe868c6198e1005344fc78b6e0a2c..f0834c7a47dc165ef906d4964ad62003b85e0c87:/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 3279d941..787f62e2 100644 --- a/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java @@ -1,41 +1,45 @@ package org.asamk.signal.json; 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; + public class JsonMessageEnvelope { String source; int sourceDevice; String relay; long timestamp; - boolean isReceipt; JsonDataMessage dataMessage; JsonSyncMessage syncMessage; JsonCallMessage callMessage; JsonReceiptMessage receiptMessage; - public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) { + public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content, Manager m) { if (!envelope.isUnidentifiedSender() && envelope.hasSource()) { SignalServiceAddress source = envelope.getSourceAddress(); - this.source = source.getNumber().get(); + this.source = source.getLegacyIdentifier(); this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null; } 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().getNumber().get(); + this.source = content.getSender().getLegacyIdentifier(); this.sourceDevice = content.getSenderDevice(); } if (content.getDataMessage().isPresent()) { - this.dataMessage = new JsonDataMessage(content.getDataMessage().get()); + this.dataMessage = new JsonDataMessage(content.getDataMessage().get(), m); } if (content.getSyncMessage().isPresent()) { - this.syncMessage = new JsonSyncMessage(content.getSyncMessage().get()); + this.syncMessage = new JsonSyncMessage(content.getSyncMessage().get(), m); } if (content.getCallMessage().isPresent()) { this.callMessage = new JsonCallMessage(content.getCallMessage().get()); @@ -55,7 +59,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) {