]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonGroupInfo.java
add group info on json message
[signal-cli] / src / main / java / org / asamk / signal / json / JsonGroupInfo.java
index 9709be2025e48716f08d883e95f547260e324b4a..c370d1e2ee127d01589be47355e17c1d86e31bf3 100644 (file)
@@ -1,41 +1,14 @@
 package org.asamk.signal.json;
 
 package org.asamk.signal.json;
 
-import org.asamk.signal.manager.GroupUtils;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
-import org.whispersystems.util.Base64;
+import org.asamk.signal.manager.Manager;
+import org.asamk.signal.manager.api.MessageEnvelope;
 
 
-import java.util.ArrayList;
-import java.util.List;
+record JsonGroupInfo(String groupId, String groupName, int revision, String type) {
 
 
-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.getLegacyIdentifier());
-            }
-        }
-        if (groupInfo.getName().isPresent()) {
-            this.name = groupInfo.getName().get();
-        }
-        this.type = groupInfo.getType().toString();
-    }
-
-    JsonGroupInfo(SignalServiceGroupV2 groupInfo) {
-        this.groupId = GroupUtils.getGroupIdV2(groupInfo.getMasterKey()).toBase64();
-        this.type = groupInfo.hasSignedGroupChange() ? "UPDATE" : "DELIVER";
-    }
-
-    JsonGroupInfo(byte[] groupId) {
-        this.groupId = Base64.encodeBytes(groupId);
+    static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext, Manager m) {
+        return new JsonGroupInfo(groupContext.groupId().toBase64(),
+                m.getGroup(groupContext.groupId()).title(),
+                groupContext.revision(),
+                groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER");
     }
 }
     }
 }