]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/RecipientIdentifier.java
Add removeContact command
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / RecipientIdentifier.java
index 671cafcd20e8a602b03c31ef6bc87819ac86101c..5d6c7ae9712e7ebe7c30e14eb0cf40ad3966782b 100644 (file)
@@ -2,6 +2,8 @@ package org.asamk.signal.manager.api;
 
 import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.storage.recipients.RecipientAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
 import org.whispersystems.signalservice.api.util.UuidUtil;
 
@@ -18,9 +20,16 @@ public sealed interface RecipientIdentifier {
 
         static Single fromString(String identifier, String localNumber) throws InvalidNumberException {
             try {
-                return UuidUtil.isUuid(identifier)
-                        ? new Uuid(UUID.fromString(identifier))
-                        : new Number(PhoneNumberFormatter.formatNumber(identifier, localNumber));
+                if (UuidUtil.isUuid(identifier)) {
+                    return new Uuid(UUID.fromString(identifier));
+                }
+
+                final var normalizedNumber = PhoneNumberFormatter.formatNumber(identifier, localNumber);
+                if (!normalizedNumber.equals(identifier)) {
+                    final Logger logger = LoggerFactory.getLogger(RecipientIdentifier.class);
+                    logger.debug("Normalized number {} to {}.", identifier, normalizedNumber);
+                }
+                return new Number(normalizedNumber);
             } catch (org.whispersystems.signalservice.api.util.InvalidNumberException e) {
                 throw new InvalidNumberException(e.getMessage(), e);
             }