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
,
23 Set
<RecipientAddress
> bannedMembers
,
25 int messageExpirationTimer
,
26 GroupPermission permissionAddMember
,
27 GroupPermission permissionEditDetails
,
28 GroupPermission permissionSendMessage
,
33 public static Group
from(
34 final GroupInfo groupInfo
, final RecipientAddressResolver recipientStore
, final RecipientId selfRecipientId
36 return new Group(groupInfo
.getGroupId(),
38 groupInfo
.getDescription(),
39 groupInfo
.getGroupInviteLink(),
40 groupInfo
.getMembers()
42 .map(recipientStore
::resolveRecipientAddress
)
43 .collect(Collectors
.toSet()),
44 groupInfo
.getPendingMembers()
46 .map(recipientStore
::resolveRecipientAddress
)
47 .collect(Collectors
.toSet()),
48 groupInfo
.getRequestingMembers()
50 .map(recipientStore
::resolveRecipientAddress
)
51 .collect(Collectors
.toSet()),
52 groupInfo
.getAdminMembers()
54 .map(recipientStore
::resolveRecipientAddress
)
55 .collect(Collectors
.toSet()),
56 groupInfo
.getBannedMembers()
58 .map(recipientStore
::resolveRecipientAddress
)
59 .collect(Collectors
.toSet()),
60 groupInfo
.isBlocked(),
61 groupInfo
.getMessageExpirationTimer(),
62 groupInfo
.getPermissionAddMember(),
63 groupInfo
.getPermissionEditDetails(),
64 groupInfo
.getPermissionSendMessage(),
65 groupInfo
.isMember(selfRecipientId
),
66 groupInfo
.isAdmin(selfRecipientId
));