1 package org
.asamk
.signal
.manager
.api
;
3 import org
.asamk
.signal
.manager
.groups
.GroupId
;
4 import org
.asamk
.signal
.manager
.groups
.GroupInviteLinkUrl
;
5 import org
.asamk
.signal
.manager
.groups
.GroupPermission
;
6 import org
.asamk
.signal
.manager
.helper
.RecipientAddressResolver
;
7 import org
.asamk
.signal
.manager
.storage
.groups
.GroupInfo
;
8 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientAddress
;
9 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientId
;
12 import java
.util
.stream
.Collectors
;
18 GroupInviteLinkUrl groupInviteLinkUrl
,
19 Set
<RecipientAddress
> members
,
20 Set
<RecipientAddress
> pendingMembers
,
21 Set
<RecipientAddress
> requestingMembers
,
22 Set
<RecipientAddress
> adminMembers
,
24 int messageExpirationTimer
,
25 GroupPermission permissionAddMember
,
26 GroupPermission permissionEditDetails
,
27 GroupPermission permissionSendMessage
,
32 public static Group
from(
33 final GroupInfo groupInfo
, final RecipientAddressResolver recipientStore
, final RecipientId selfRecipientId
35 return new Group(groupInfo
.getGroupId(),
37 groupInfo
.getDescription(),
38 groupInfo
.getGroupInviteLink(),
39 groupInfo
.getMembers()
41 .map(recipientStore
::resolveRecipientAddress
)
42 .collect(Collectors
.toSet()),
43 groupInfo
.getPendingMembers()
45 .map(recipientStore
::resolveRecipientAddress
)
46 .collect(Collectors
.toSet()),
47 groupInfo
.getRequestingMembers()
49 .map(recipientStore
::resolveRecipientAddress
)
50 .collect(Collectors
.toSet()),
51 groupInfo
.getAdminMembers()
53 .map(recipientStore
::resolveRecipientAddress
)
54 .collect(Collectors
.toSet()),
55 groupInfo
.isBlocked(),
56 groupInfo
.getMessageExpirationTimer(),
57 groupInfo
.getPermissionAddMember(),
58 groupInfo
.getPermissionEditDetails(),
59 groupInfo
.getPermissionSendMessage(),
60 groupInfo
.isMember(selfRecipientId
),
61 groupInfo
.isAdmin(selfRecipientId
));