]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/JsonMessageEnvelope.java
Send delivery receipt for data messages that need it
[signal-cli] / src / main / java / org / asamk / signal / JsonMessageEnvelope.java
index 9484ce2e59cb37a09407ee4a1c81c38400273189..9a2759700fe4579f30d6aced6e29823eef1b1d72 100644 (file)
@@ -17,16 +17,19 @@ class JsonMessageEnvelope {
     JsonReceiptMessage receiptMessage;
 
     public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) {
-        SignalServiceAddress source = envelope.getSourceAddress();
-        this.source = source.getNumber();
-        if (this.source.equals("")) {
-            this.source = content.getSender();
+        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());
             }