]> nmode's Git Repositories - signal-cli/commitdiff
Add group v2 id to json output
authorAsamK <asamk@gmx.de>
Mon, 21 Dec 2020 10:45:42 +0000 (11:45 +0100)
committerAsamK <asamk@gmx.de>
Mon, 21 Dec 2020 13:30:42 +0000 (14:30 +0100)
CHANGELOG.md
src/main/java/org/asamk/signal/json/JsonDataMessage.java
src/main/java/org/asamk/signal/json/JsonGroupInfo.java

index 81c204fc2a8ec46a1cf164f5732377d7c8b5a0f6..9494ae8ab978e676bc9aec0f10c3b766d9642abb 100644 (file)
@@ -1,6 +1,8 @@
 # Changelog
 
 ## [Unreleased]
 # Changelog
 
 ## [Unreleased]
+### Fixed
+- Include group ids for v2 groups in json output
 
 ## [0.7.0] - 2020-12-15
 ### Added
 
 ## [0.7.0] - 2020-12-15
 ### Added
index 7aa16ce4a9f0e27a3b7bbc8e4bcc831bc3d98e1c..653a59e6e73c11e47f82c762128ea7282eea9694 100644 (file)
@@ -4,6 +4,7 @@ import org.asamk.Signal;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
+import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -19,9 +20,14 @@ class JsonDataMessage {
 
     JsonDataMessage(SignalServiceDataMessage dataMessage) {
         this.timestamp = dataMessage.getTimestamp();
 
     JsonDataMessage(SignalServiceDataMessage dataMessage) {
         this.timestamp = dataMessage.getTimestamp();
-        if (dataMessage.getGroupContext().isPresent() && dataMessage.getGroupContext().get().getGroupV1().isPresent()) {
-            SignalServiceGroup groupInfo = dataMessage.getGroupContext().get().getGroupV1().get();
-            this.groupInfo = new JsonGroupInfo(groupInfo);
+        if (dataMessage.getGroupContext().isPresent()) {
+            if (dataMessage.getGroupContext().get().getGroupV1().isPresent()) {
+                SignalServiceGroup groupInfo = dataMessage.getGroupContext().get().getGroupV1().get();
+                this.groupInfo = new JsonGroupInfo(groupInfo);
+            } else if (dataMessage.getGroupContext().get().getGroupV2().isPresent()) {
+                SignalServiceGroupV2 groupInfo = dataMessage.getGroupContext().get().getGroupV2().get();
+                this.groupInfo = new JsonGroupInfo(groupInfo);
+            }
         }
         if (dataMessage.getBody().isPresent()) {
             this.message = dataMessage.getBody().get();
         }
         if (dataMessage.getBody().isPresent()) {
             this.message = dataMessage.getBody().get();
index 08bc19a96c90cd623cedcfa617da8717cbff68a6..970cde52d7011434c2a932985447fc1c38874d08 100644 (file)
@@ -1,6 +1,8 @@
 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.SignalServiceGroup;
+import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.util.Base64;
 
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.util.Base64;
 
@@ -28,6 +30,11 @@ class JsonGroupInfo {
         this.type = groupInfo.getType().toString();
     }
 
         this.type = groupInfo.getType().toString();
     }
 
+    JsonGroupInfo(SignalServiceGroupV2 groupInfo) {
+        this.groupId = Base64.encodeBytes(GroupUtils.getGroupId(groupInfo.getMasterKey()));
+        this.type = groupInfo.hasSignedGroupChange() ? "UPDATE" : "DELIVER";
+    }
+
     JsonGroupInfo(byte[] groupId) {
         this.groupId = Base64.encodeBytes(groupId);
     }
     JsonGroupInfo(byte[] groupId) {
         this.groupId = Base64.encodeBytes(groupId);
     }