From: AsamK Date: Mon, 11 Nov 2019 20:22:12 +0000 (+0100) Subject: Improve receiving unidentified messages X-Git-Tag: v0.6.5~3 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/8ad9c9b0ff3d12c4cdd3557513c8756973244ce4?hp=90b752b912db167ef9750843c1abf84188ef2438 Improve receiving unidentified messages --- diff --git a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java index 2e3018a3..b0d49ca5 100644 --- a/src/main/java/org/asamk/signal/JsonMessageEnvelope.java +++ b/src/main/java/org/asamk/signal/JsonMessageEnvelope.java @@ -20,14 +20,14 @@ class JsonMessageEnvelope { 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.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(); + this.sourceDevice = content.getSenderDevice(); + } if (content.getDataMessage().isPresent()) { this.dataMessage = new JsonDataMessage(content.getDataMessage().get()); } diff --git a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java index d11597a9..e2cb6636 100644 --- a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java @@ -43,14 +43,8 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { @Override 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, senderDeviceId)); + ContactInfo sourceContact = m.getContact(source.getNumber()); + System.out.println(String.format("Envelope from: %s (device: %d)", (sourceContact == null ? "" : "“" + sourceContact.name + "” ") + source.getNumber(), envelope.getSourceDevice())); if (source.getRelay().isPresent()) { System.out.println("Relayed by: " + source.getRelay().get()); } @@ -61,7 +55,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { if (envelope.isReceipt()) { System.out.println("Got receipt."); - } else if (envelope.isSignalMessage() | envelope.isPreKeySignalMessage()) { + } else if (envelope.isSignalMessage() || envelope.isPreKeySignalMessage() || envelope.isUnidentifiedSender()) { if (exception != null) { if (exception instanceof org.whispersystems.libsignal.UntrustedIdentityException) { org.whispersystems.libsignal.UntrustedIdentityException e = (org.whispersystems.libsignal.UntrustedIdentityException) exception; @@ -75,6 +69,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { if (content == null) { System.out.println("Failed to decrypt message."); } else { + System.out.println(String.format("Sender: %s (device: %d)", content.getSender(), content.getSenderDevice())); if (content.getDataMessage().isPresent()) { SignalServiceDataMessage message = content.getDataMessage().get(); handleSignalServiceDataMessage(message);