X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/46a4c2c0d0a36b7f230fc2c2d47aa371a6e02d35..eac2a47163a07c2553fee8a0cfcdf3f1e6adafd2:/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 index d79941ed..c370d1e2 100644 --- a/src/main/java/org/asamk/signal/json/JsonGroupInfo.java +++ b/src/main/java/org/asamk/signal/json/JsonGroupInfo.java @@ -1,59 +1,14 @@ package org.asamk.signal.json; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; +import org.asamk.signal.manager.Manager; +import org.asamk.signal.manager.api.MessageEnvelope; -import org.asamk.signal.manager.groups.GroupUtils; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2; -import org.whispersystems.signalservice.api.push.SignalServiceAddress; +record JsonGroupInfo(String groupId, String groupName, int revision, String type) { -import java.util.Base64; -import java.util.List; -import java.util.stream.Collectors; - -class JsonGroupInfo { - - @JsonProperty - final String groupId; - - @JsonProperty - final String type; - - @JsonProperty - @JsonInclude(JsonInclude.Include.NON_NULL) - final String name; - - @JsonProperty - @JsonInclude(JsonInclude.Include.NON_NULL) - final List members; - - JsonGroupInfo(SignalServiceGroup groupInfo) { - this.groupId = Base64.getEncoder().encodeToString(groupInfo.getGroupId()); - this.type = groupInfo.getType().toString(); - this.name = groupInfo.getName().orNull(); - if (groupInfo.getMembers().isPresent()) { - this.members = groupInfo.getMembers() - .get() - .stream() - .map(SignalServiceAddress::getLegacyIdentifier) - .collect(Collectors.toList()); - } else { - this.members = null; - } - } - - JsonGroupInfo(SignalServiceGroupV2 groupInfo) { - this.groupId = GroupUtils.getGroupIdV2(groupInfo.getMasterKey()).toBase64(); - this.type = groupInfo.hasSignedGroupChange() ? "UPDATE" : "DELIVER"; - this.members = null; - this.name = null; - } - - JsonGroupInfo(byte[] groupId) { - this.groupId = Base64.getEncoder().encodeToString(groupId); - this.type = "DELIVER"; - this.members = null; - this.name = null; + 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"); } }