1 package org
.asamk
.signal
.json
;
3 import com
.fasterxml
.jackson
.annotation
.JsonInclude
;
4 import com
.fasterxml
.jackson
.annotation
.JsonProperty
;
6 import org
.asamk
.signal
.manager
.groups
.GroupUtils
;
7 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroup
;
8 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroupV2
;
9 import org
.whispersystems
.signalservice
.api
.push
.SignalServiceAddress
;
11 import java
.util
.Base64
;
12 import java
.util
.List
;
13 import java
.util
.stream
.Collectors
;
24 @JsonInclude(JsonInclude
.Include
.NON_NULL
)
28 @JsonInclude(JsonInclude
.Include
.NON_NULL
)
29 final List
<String
> members
;
31 JsonGroupInfo(SignalServiceGroup groupInfo
) {
32 this.groupId
= Base64
.getEncoder().encodeToString(groupInfo
.getGroupId());
33 this.type
= groupInfo
.getType().toString();
34 this.name
= groupInfo
.getName().orNull();
35 if (groupInfo
.getMembers().isPresent()) {
36 this.members
= groupInfo
.getMembers()
39 .map(SignalServiceAddress
::getLegacyIdentifier
)
40 .collect(Collectors
.toList());
46 JsonGroupInfo(SignalServiceGroupV2 groupInfo
) {
47 this.groupId
= GroupUtils
.getGroupIdV2(groupInfo
.getMasterKey()).toBase64();
48 this.type
= groupInfo
.hasSignedGroupChange() ?
"UPDATE" : "DELIVER";
53 JsonGroupInfo(byte[] groupId
) {
54 this.groupId
= Base64
.getEncoder().encodeToString(groupId
);
55 this.type
= "DELIVER";