X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/90b752b912db167ef9750843c1abf84188ef2438..4ca3fe87f4db56cfac27fb9eb68f3933c62fe829:/src/main/java/org/asamk/signal/ReceiveMessageHandler.java diff --git a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java index d11597a9..fb4b3850 100644 --- a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java @@ -27,7 +27,7 @@ import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptM import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage; import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage; import org.whispersystems.signalservice.api.push.SignalServiceAddress; -import org.whispersystems.signalservice.internal.util.Base64; +import org.whispersystems.util.Base64; import java.io.File; import java.util.List; @@ -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().get()); + 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); @@ -99,7 +94,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { if (syncMessage.getRead().isPresent()) { System.out.println("Received sync read messages list"); for (ReadMessage rm : syncMessage.getRead().get()) { - ContactInfo fromContact = m.getContact(rm.getSender()); + ContactInfo fromContact = m.getContact(rm.getSender().getNumber().get()); System.out.println("From: " + (fromContact == null ? "" : "“" + fromContact.name + "” ") + rm.getSender() + " Message timestamp: " + DateUtils.formatTimestamp(rm.getTimestamp())); } } @@ -117,7 +112,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { final SentTranscriptMessage sentTranscriptMessage = syncMessage.getSent().get(); String to; if (sentTranscriptMessage.getDestination().isPresent()) { - String dest = sentTranscriptMessage.getDestination().get(); + String dest = sentTranscriptMessage.getDestination().get().getNumber().get(); ContactInfo destContact = m.getContact(dest); to = (destContact == null ? "" : "“" + destContact.name + "” ") + dest; } else { @@ -134,15 +129,15 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { System.out.println("Received sync message with block list"); System.out.println("Blocked numbers:"); final BlockedListMessage blockedList = syncMessage.getBlockedList().get(); - for (String number : blockedList.getNumbers()) { - System.out.println(" - " + number); + for (SignalServiceAddress address : blockedList.getAddresses()) { + System.out.println(" - " + address.getNumber()); } } if (syncMessage.getVerified().isPresent()) { System.out.println("Received sync message with verified identities:"); final VerifiedMessage verifiedMessage = syncMessage.getVerified().get(); System.out.println(" - " + verifiedMessage.getDestination() + ": " + verifiedMessage.getVerified()); - String safetyNumber = Util.formatSafetyNumber(m.computeSafetyNumber(verifiedMessage.getDestination(), verifiedMessage.getIdentityKey())); + String safetyNumber = Util.formatSafetyNumber(m.computeSafetyNumber(verifiedMessage.getDestination().getNumber().get(), verifiedMessage.getIdentityKey())); System.out.println(" " + safetyNumber); } if (syncMessage.getConfiguration().isPresent()) { @@ -237,8 +232,8 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { } System.out.println(" Type: " + groupInfo.getType()); if (groupInfo.getMembers().isPresent()) { - for (String member : groupInfo.getMembers().get()) { - System.out.println(" Member: " + member); + for (SignalServiceAddress member : groupInfo.getMembers().get()) { + System.out.println(" Member: " + member.getNumber().get()); } } if (groupInfo.getAvatar().isPresent()) {