]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/ReceiveMessageHandler.java
Reformat code
[signal-cli] / src / main / java / org / asamk / signal / ReceiveMessageHandler.java
index 96603b76bf1bff245b459c2019f7ce9b7bfb9806..bc9244f8b5822553d40f33076628bcc088769909 100644 (file)
@@ -8,6 +8,7 @@ import org.asamk.signal.manager.groups.GroupUtils;
 import org.asamk.signal.util.DateUtils;
 import org.asamk.signal.util.Util;
 import org.slf4j.helpers.MessageFormatter;
+import org.whispersystems.libsignal.protocol.DecryptionErrorMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 import org.whispersystems.signalservice.api.messages.SignalServiceContent;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
@@ -82,6 +83,12 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
                         DateUtils.formatTimestamp(content.getServerReceivedTimestamp()),
                         DateUtils.formatTimestamp(content.getServerDeliveredTimestamp()));
 
+                if (content.getSenderKeyDistributionMessage().isPresent()) {
+                    final var message = content.getSenderKeyDistributionMessage().get();
+                    writer.println("Received a sender key distribution message for distributionId {}",
+                            message.getDistributionId());
+                }
+
                 if (content.getDataMessage().isPresent()) {
                     var message = content.getDataMessage().get();
                     printDataMessage(writer, message);
@@ -107,6 +114,11 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
                     var typingMessage = content.getTypingMessage().get();
                     printTypingMessage(writer.indentedWriter(), typingMessage);
                 }
+                if (content.getDecryptionErrorMessage().isPresent()) {
+                    writer.println("Received a decryption error message (resend request)");
+                    var decryptionErrorMessage = content.getDecryptionErrorMessage().get();
+                    printDecryptionErrorMessage(writer.indentedWriter(), decryptionErrorMessage);
+                }
             }
         } else {
             writer.println("Unknown message received.");
@@ -209,6 +221,15 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
     }
 
+    private void printDecryptionErrorMessage(
+            final PlainTextWriter writer, final DecryptionErrorMessage decryptionErrorMessage
+    ) {
+        writer.println("Device id: {}", decryptionErrorMessage.getDeviceId());
+        writer.println("Timestamp: {}", DateUtils.formatTimestamp(decryptionErrorMessage.getTimestamp()));
+        writer.println("Ratchet key: {}",
+                decryptionErrorMessage.getRatchetKey().isPresent() ? "is present" : "not present");
+    }
+
     private void printReceiptMessage(
             final PlainTextWriter writer, final SignalServiceReceiptMessage receiptMessage
     ) {
@@ -235,6 +256,13 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             final var deviceId = callMessage.getDestinationDeviceId().get();
             writer.println("Destination device id: {}", deviceId);
         }
+        if (callMessage.getGroupId().isPresent()) {
+            final var groupId = GroupId.unknownVersion(callMessage.getGroupId().get());
+            writer.println("Destination group id: {}", groupId);
+        }
+        if (callMessage.getTimestamp().isPresent()) {
+            writer.println("Timestamp: {}", DateUtils.formatTimestamp(callMessage.getTimestamp().get()));
+        }
         if (callMessage.getAnswerMessage().isPresent()) {
             var answerMessage = callMessage.getAnswerMessage().get();
             writer.println("Answer message: {}, sdp: {})", answerMessage.getId(), answerMessage.getSdp());
@@ -260,7 +288,9 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
         if (callMessage.getOpaqueMessage().isPresent()) {
             final var opaqueMessage = callMessage.getOpaqueMessage().get();
-            writer.println("Opaque message: size {}", opaqueMessage.getOpaque().length);
+            writer.println("Opaque message: size {}, urgency: {}",
+                    opaqueMessage.getOpaque().length,
+                    opaqueMessage.getUrgency().name());
         }
     }