X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/06e9f8ba6403ea83ab3535a3b1eb900f252d8b9d..a8bbdb54d006f157a009ece0cae5bf72fb636ced:/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 e63ce548..323b6edf 100644 --- a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java @@ -20,21 +20,24 @@ import org.whispersystems.signalservice.api.messages.shared.SharedContact; import org.whispersystems.signalservice.api.push.SignalServiceAddress; import org.whispersystems.signalservice.api.util.InvalidNumberException; +import java.util.ArrayList; import java.util.Base64; import java.util.stream.Collectors; +import static org.asamk.signal.util.Util.getLegacyIdentifier; + public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { final Manager m; + final PlainTextWriter writer; - public ReceiveMessageHandler(Manager m) { + public ReceiveMessageHandler(Manager m, final PlainTextWriter writer) { this.m = m; + this.writer = writer; } @Override public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) { - PlainTextWriter writer = new PlainTextWriterImpl(System.out); - if (envelope.hasSource()) { var source = envelope.getSourceAddress(); writer.println("Envelope from: {} (device: {})", formatContact(source), envelope.getSourceDevice()); @@ -57,7 +60,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { var e = (ProtocolUntrustedIdentityException) exception; writer.println( "The user’s key is untrusted, either the user has reinstalled Signal or a third party sent this message."); - final var recipientName = m.resolveSignalServiceAddress(e.getSender()).getLegacyIdentifier(); + final var recipientName = getLegacyIdentifier(m.resolveSignalServiceAddress(e.getSender())); writer.println( "Use 'signal-cli -u {} listIdentities -n {}', verify the key and run 'signal-cli -u {} trust -v \"FINGER_PRINT\" {}' to mark it as trusted", m.getUsername(), @@ -285,6 +288,14 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { DateUtils.formatTimestamp(rm.getTimestamp())); } } + if (syncMessage.getViewed().isPresent()) { + writer.println("Received sync viewed messages list"); + for (var vm : syncMessage.getViewed().get()) { + writer.println("- From: {} Message timestamp: {}", + formatContact(vm.getSender()), + DateUtils.formatTimestamp(vm.getTimestamp())); + } + } if (syncMessage.getRequest().isPresent()) { String type; if (syncMessage.getRequest().get().isContactsRequest()) { @@ -332,7 +343,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { writer.println("Blocked numbers:"); final var blockedList = syncMessage.getBlockedList().get(); for (var address : blockedList.getAddresses()) { - writer.println("- {}", address.getLegacyIdentifier()); + writer.println("- {}", getLegacyIdentifier(address)); } } if (syncMessage.getVerified().isPresent()) { @@ -448,7 +459,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { final PlainTextWriter writer, final SignalServiceDataMessage.Quote quote ) { writer.println("Id: {}", quote.getId()); - writer.println("Author: {}", m.resolveSignalServiceAddress(quote.getAuthor()).getLegacyIdentifier()); + writer.println("Author: {}", getLegacyIdentifier(m.resolveSignalServiceAddress(quote.getAuthor()))); writer.println("Text: {}", quote.getText()); if (quote.getMentions() != null && quote.getMentions().size() > 0) { writer.println("Mentions:"); @@ -643,8 +654,19 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { pointer.getPreview().isPresent() ? " (Preview is available: " + pointer.getPreview().get().length + " bytes)" : ""); - writer.println("Voice note: {}", pointer.getVoiceNote() ? "yes" : "no"); - writer.println("Borderless: {}", pointer.isBorderless() ? "yes" : "no"); + final var flags = new ArrayList(); + if (pointer.getVoiceNote()) { + flags.add("voice note"); + } + if (pointer.isBorderless()) { + flags.add("borderless"); + } + if (pointer.isGif()) { + flags.add("video gif"); + } + if (flags.size() > 0) { + writer.println("Flags: {}", String.join(", ", flags)); + } if (pointer.getWidth() > 0 || pointer.getHeight() > 0) { writer.println("Dimensions: {}x{}", pointer.getWidth(), pointer.getHeight()); } @@ -656,7 +678,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { } private String formatContact(SignalServiceAddress address) { - final var number = address.getLegacyIdentifier(); + final var number = getLegacyIdentifier(address); String name = null; try { name = m.getContactOrProfileName(number);