]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/util/Util.java
Implement support for sending/receiving Group V2 messages
[signal-cli] / src / main / java / org / asamk / signal / util / Util.java
index 5a1dcddafaab3d8c28eb851c71b67d190ab07511..d6b467b04bbfc9abfe7a284507a362b2c44815c4 100644 (file)
@@ -2,6 +2,13 @@ package org.asamk.signal.util;
 
 import com.fasterxml.jackson.databind.JsonNode;
 
+import org.whispersystems.signalservice.api.push.SignalServiceAddress;
+import org.whispersystems.signalservice.api.util.InvalidNumberException;
+import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
+import org.whispersystems.signalservice.api.util.UuidUtil;
+import org.whispersystems.util.Base64;
+
+import java.io.IOException;
 import java.io.InvalidObjectException;
 
 public class Util {
@@ -39,4 +46,24 @@ public class Util {
 
         return node;
     }
+
+    public static byte[] decodeGroupId(String groupId) throws GroupIdFormatException {
+        try {
+            return Base64.decode(groupId);
+        } catch (IOException e) {
+            throw new GroupIdFormatException(groupId, e);
+        }
+    }
+
+    public static String canonicalizeNumber(String number, String localNumber) throws InvalidNumberException {
+        return PhoneNumberFormatter.formatNumber(number, localNumber);
+    }
+
+    public static SignalServiceAddress getSignalServiceAddressFromIdentifier(final String identifier) {
+        if (UuidUtil.isUuid(identifier)) {
+            return new SignalServiceAddress(UuidUtil.parseOrNull(identifier), null);
+        } else {
+            return new SignalServiceAddress(null, identifier);
+        }
+    }
 }