X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/35c72f692f13b12594ecdbe8f59f31d3b396d356..1b56485fc8ce1d82d1e5e8aaeca82bcd39bc7c26:/src/main/java/org/asamk/signal/JsonMessageEnvelope.java diff --git a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java index 9971b011..9a275970 100644 --- a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java @@ -14,15 +14,22 @@ class JsonMessageEnvelope { JsonDataMessage dataMessage; JsonSyncMessage syncMessage; JsonCallMessage callMessage; + JsonReceiptMessage receiptMessage; public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) { - SignalServiceAddress source = envelope.getSourceAddress(); - this.source = source.getNumber(); + if (!envelope.isUnidentifiedSender() && envelope.hasSource()) { + SignalServiceAddress source = envelope.getSourceAddress(); + this.source = source.getNumber().get(); + this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null; + } this.sourceDevice = envelope.getSourceDevice(); - this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null; this.timestamp = envelope.getTimestamp(); this.isReceipt = envelope.isReceipt(); if (content != null) { + if (envelope.isUnidentifiedSender()) { + this.source = content.getSender().getNumber().get(); + this.sourceDevice = content.getSenderDevice(); + } if (content.getDataMessage().isPresent()) { this.dataMessage = new JsonDataMessage(content.getDataMessage().get()); } @@ -32,6 +39,9 @@ class JsonMessageEnvelope { if (content.getCallMessage().isPresent()) { this.callMessage = new JsonCallMessage(content.getCallMessage().get()); } + if (content.getReceiptMessage().isPresent()) { + this.receiptMessage = new JsonReceiptMessage(content.getReceiptMessage().get()); + } } } }