]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/util/Util.java
Refactor to use GroupId class to wrap the byte array
[signal-cli] / src / main / java / org / asamk / signal / util / Util.java
1 package org.asamk.signal.util;
2
3 import com.fasterxml.jackson.databind.JsonNode;
4
5 import org.asamk.signal.manager.GroupId;
6 import org.asamk.signal.manager.GroupIdFormatException;
7 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
8 import org.whispersystems.signalservice.api.util.InvalidNumberException;
9 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
10 import org.whispersystems.signalservice.api.util.UuidUtil;
11
12 import java.io.InvalidObjectException;
13
14 public class Util {
15
16 private Util() {
17 }
18
19 public static String formatSafetyNumber(String digits) {
20 final int partCount = 12;
21 int partSize = digits.length() / partCount;
22 StringBuilder f = new StringBuilder(digits.length() + partCount);
23 for (int i = 0; i < partCount; i++) {
24 f.append(digits, i * partSize, (i * partSize) + partSize).append(" ");
25 }
26 return f.toString();
27 }
28
29 public static String join(CharSequence separator, Iterable<? extends CharSequence> list) {
30 StringBuilder buf = new StringBuilder();
31 for (CharSequence str : list) {
32 if (buf.length() > 0) {
33 buf.append(separator);
34 }
35 buf.append(str);
36 }
37
38 return buf.toString();
39 }
40
41 public static JsonNode getNotNullNode(JsonNode parent, String name) throws InvalidObjectException {
42 JsonNode node = parent.get(name);
43 if (node == null) {
44 throw new InvalidObjectException(String.format("Incorrect file format: expected parameter %s not found ",
45 name));
46 }
47
48 return node;
49 }
50
51 public static GroupId decodeGroupId(String groupId) throws GroupIdFormatException {
52 return GroupId.fromBase64(groupId);
53 }
54
55 public static String canonicalizeNumber(String number, String localNumber) throws InvalidNumberException {
56 return PhoneNumberFormatter.formatNumber(number, localNumber);
57 }
58
59 public static SignalServiceAddress getSignalServiceAddressFromIdentifier(final String identifier) {
60 if (UuidUtil.isUuid(identifier)) {
61 return new SignalServiceAddress(UuidUtil.parseOrNull(identifier), null);
62 } else {
63 return new SignalServiceAddress(null, identifier);
64 }
65 }
66 }