]> nmode's Git Repositories - signal-cli/commitdiff
Refactor JsonMessageEnvelope to remove unnecessary number canonicalization
authorAsamK <asamk@gmx.de>
Sat, 29 Jan 2022 14:02:30 +0000 (15:02 +0100)
committerAsamK <asamk@gmx.de>
Sat, 29 Jan 2022 14:05:14 +0000 (15:05 +0100)
src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java

index 0c1d0738bfdd2238cc073ba1e1830a12be08dc7d..ab5d73e1e0d3b4b05fe83f68056a0d28fa0225c2 100644 (file)
@@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.UntrustedIdentityException;
 
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.UntrustedIdentityException;
-import org.asamk.signal.manager.api.InvalidNumberException;
 import org.asamk.signal.manager.api.MessageEnvelope;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.MessageEnvelope;
 import org.asamk.signal.manager.api.RecipientIdentifier;
+import org.asamk.signal.manager.storage.recipients.RecipientAddress;
 
 import java.util.UUID;
 
 
 import java.util.UUID;
 
@@ -27,35 +27,35 @@ public record JsonMessageEnvelope(
     public static JsonMessageEnvelope from(
             MessageEnvelope envelope, Throwable exception, Manager m
     ) {
     public static JsonMessageEnvelope from(
             MessageEnvelope envelope, Throwable exception, Manager m
     ) {
+        final RecipientAddress sourceAddress;
+        final Integer sourceDevice;
+        if (envelope.sourceAddress().isPresent()) {
+            sourceAddress = envelope.sourceAddress().get();
+            sourceDevice = envelope.sourceDevice();
+        } else if (exception instanceof UntrustedIdentityException e) {
+            sourceAddress = e.getSender();
+            sourceDevice = e.getSenderDevice();
+        } else {
+            sourceAddress = null;
+            sourceDevice = null;
+        }
+
         final String source;
         final String sourceNumber;
         final String sourceUuid;
         final String source;
         final String sourceNumber;
         final String sourceUuid;
-        final Integer sourceDevice;
-        if (envelope.sourceAddress().isPresent()) {
-            final var sourceAddress = envelope.sourceAddress().get();
+        final String sourceName;
+        if (sourceAddress != null) {
             source = sourceAddress.getLegacyIdentifier();
             sourceNumber = sourceAddress.number().orElse(null);
             sourceUuid = sourceAddress.uuid().map(UUID::toString).orElse(null);
             source = sourceAddress.getLegacyIdentifier();
             sourceNumber = sourceAddress.number().orElse(null);
             sourceUuid = sourceAddress.uuid().map(UUID::toString).orElse(null);
-            sourceDevice = envelope.sourceDevice();
-        } else if (exception instanceof UntrustedIdentityException e) {
-            final var sender = e.getSender();
-            source = sender.getLegacyIdentifier();
-            sourceNumber = sender.number().orElse(null);
-            sourceUuid = sender.uuid().map(UUID::toString).orElse(null);
-            sourceDevice = e.getSenderDevice();
+            sourceName = m.getContactOrProfileName(RecipientIdentifier.Single.fromAddress(envelope.sourceAddress()
+                    .get()));
         } else {
             source = null;
             sourceNumber = null;
             sourceUuid = null;
         } else {
             source = null;
             sourceNumber = null;
             sourceUuid = null;
-            sourceDevice = null;
-        }
-        String name;
-        try {
-            name = m.getContactOrProfileName(RecipientIdentifier.Single.fromString(source, m.getSelfNumber()));
-        } catch (InvalidNumberException | NullPointerException e) {
-            name = null;
+            sourceName = null;
         }
         }
-        final var sourceName = name;
         final var timestamp = envelope.timestamp();
         final var receiptMessage = envelope.receipt().map(JsonReceiptMessage::from).orElse(null);
         final var typingMessage = envelope.typing().map(JsonTypingMessage::from).orElse(null);
         final var timestamp = envelope.timestamp();
         final var receiptMessage = envelope.receipt().map(JsonReceiptMessage::from).orElse(null);
         final var typingMessage = envelope.typing().map(JsonTypingMessage::from).orElse(null);