]> nmode's Git Repositories - signal-cli/commitdiff
Use correct sender device for receiving sealed messages
authorAsamK <asamk@gmx.de>
Mon, 11 Nov 2019 18:34:31 +0000 (19:34 +0100)
committerAsamK <asamk@gmx.de>
Mon, 11 Nov 2019 18:34:31 +0000 (19:34 +0100)
src/main/java/org/asamk/signal/JsonMessageEnvelope.java
src/main/java/org/asamk/signal/ReceiveMessageHandler.java

index 9484ce2e59cb37a09407ee4a1c81c38400273189..2e3018a336c0d0926841026b4bd0d34b0bb2aefc 100644 (file)
@@ -19,10 +19,11 @@ class JsonMessageEnvelope {
     public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) {
         SignalServiceAddress source = envelope.getSourceAddress();
         this.source = source.getNumber();
+        this.sourceDevice = envelope.getSourceDevice();
         if (this.source.equals("")) {
             this.source = content.getSender();
+            this.sourceDevice = content.getSenderDevice();
         }
-        this.sourceDevice = envelope.getSourceDevice();
         this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null;
         this.timestamp = envelope.getTimestamp();
         this.isReceipt = envelope.isReceipt();
index 71f00baacb8f4202f63af963d98458b49cd03aa7..d11597a9c7b1ada03190fe523a11f794c0f99cb8 100644 (file)
@@ -44,11 +44,13 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
     public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) {
         SignalServiceAddress source = envelope.getSourceAddress();
         String sender = source.getNumber();
+        int senderDeviceId = envelope.getSourceDevice();
         if (sender.equals("")) {
             sender = content.getSender();
+            senderDeviceId = content.getSenderDevice();
         }
         ContactInfo sourceContact = m.getContact(sender);
-        System.out.println(String.format("Envelope from: %s (device: %d)", (sourceContact == null ? "" : "“" + sourceContact.name + "” ") + sender, envelope.getSourceDevice()));
+        System.out.println(String.format("Envelope from: %s (device: %d)", (sourceContact == null ? "" : "“" + sourceContact.name + "” ") + sender, senderDeviceId));
         if (source.getRelay().isPresent()) {
             System.out.println("Relayed by: " + source.getRelay().get());
         }