From: AsamK Date: Mon, 11 Nov 2019 18:34:31 +0000 (+0100) Subject: Use correct sender device for receiving sealed messages X-Git-Tag: v0.6.5~4 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/90b752b912db167ef9750843c1abf84188ef2438?ds=inline Use correct sender device for receiving sealed messages --- diff --git a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java index 9484ce2e..2e3018a3 100644 --- a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java @@ -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(); diff --git a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java index 71f00baa..d11597a9 100644 --- a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java @@ -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()); }