1 package org
.asamk
.signal
.json
;
3 import com
.fasterxml
.jackson
.annotation
.JsonInclude
;
5 import org
.asamk
.signal
.manager
.groups
.GroupUtils
;
6 import org
.asamk
.signal
.util
.Util
;
7 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroup
;
8 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroupV2
;
10 import java
.util
.Base64
;
11 import java
.util
.List
;
12 import java
.util
.stream
.Collectors
;
17 @JsonInclude(JsonInclude
.Include
.NON_NULL
) String name
,
18 @JsonInclude(JsonInclude
.Include
.NON_NULL
) List
<String
> members
21 static JsonGroupInfo
from(SignalServiceGroup groupInfo
) {
22 return new JsonGroupInfo(Base64
.getEncoder().encodeToString(groupInfo
.getGroupId()),
23 groupInfo
.getType().toString(),
24 groupInfo
.getName().orNull(),
25 groupInfo
.getMembers().isPresent() ? groupInfo
.getMembers()
28 .map(Util
::getLegacyIdentifier
)
29 .collect(Collectors
.toList()) : null);
32 static JsonGroupInfo
from(SignalServiceGroupV2 groupInfo
) {
33 return new JsonGroupInfo(GroupUtils
.getGroupIdV2(groupInfo
.getMasterKey()).toBase64(),
34 groupInfo
.hasSignedGroupChange() ?
"UPDATE" : "DELIVER",
39 static JsonGroupInfo
from(byte[] groupId
) {
40 return new JsonGroupInfo(Base64
.getEncoder().encodeToString(groupId
), "DELIVER", null, null);