]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonGroupInfo.java
Output json when receiving messages from dbus and --json parameter is given
[signal-cli] / src / main / java / org / asamk / signal / json / JsonGroupInfo.java
diff --git a/src/main/java/org/asamk/signal/json/JsonGroupInfo.java b/src/main/java/org/asamk/signal/json/JsonGroupInfo.java
new file mode 100644 (file)
index 0000000..572623e
--- /dev/null
@@ -0,0 +1,34 @@
+package org.asamk.signal.json;
+
+import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
+import org.whispersystems.signalservice.api.push.SignalServiceAddress;
+import org.whispersystems.util.Base64;
+
+import java.util.ArrayList;
+import java.util.List;
+
+class JsonGroupInfo {
+
+    String groupId;
+    List<String> members;
+    String name;
+    String type;
+
+    JsonGroupInfo(SignalServiceGroup groupInfo) {
+        this.groupId = Base64.encodeBytes(groupInfo.getGroupId());
+        if (groupInfo.getMembers().isPresent()) {
+            this.members = new ArrayList<>(groupInfo.getMembers().get().size());
+            for (SignalServiceAddress address : groupInfo.getMembers().get()) {
+                this.members.add(address.getNumber().get());
+            }
+        }
+        if (groupInfo.getName().isPresent()) {
+            this.name = groupInfo.getName().get();
+        }
+        this.type = groupInfo.getType().toString();
+    }
+
+    JsonGroupInfo(byte[] groupId) {
+        this.groupId = Base64.encodeBytes(groupId);
+    }
+}