]>
nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/groups/GroupInfo.java
a16af0ff34921959f44588d891c63043b7eff6fd
1 package org
.asamk
.signal
.manager
.storage
.groups
;
3 import org
.asamk
.signal
.manager
.api
.GroupId
;
4 import org
.asamk
.signal
.manager
.api
.GroupInviteLinkUrl
;
5 import org
.asamk
.signal
.manager
.api
.GroupPermission
;
6 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientId
;
7 import org
.whispersystems
.signalservice
.api
.push
.DistributionId
;
10 import java
.util
.stream
.Collectors
;
11 import java
.util
.stream
.Stream
;
13 public sealed abstract class GroupInfo
permits GroupInfoV1
, GroupInfoV2
{
15 public abstract GroupId
getGroupId();
17 public abstract DistributionId
getDistributionId();
19 public abstract String
getTitle();
21 public String
getDescription() {
25 public abstract GroupInviteLinkUrl
getGroupInviteLink();
27 public abstract Set
<RecipientId
> getMembers();
29 public Set
<RecipientId
> getBannedMembers() {
33 public Set
<RecipientId
> getPendingMembers() {
37 public Set
<RecipientId
> getRequestingMembers() {
41 public Set
<RecipientId
> getAdminMembers() {
45 public abstract boolean isBlocked();
47 public abstract void setBlocked(boolean blocked
);
49 public abstract int getMessageExpirationTimer();
51 public abstract boolean isAnnouncementGroup();
53 public abstract GroupPermission
getPermissionAddMember();
55 public abstract GroupPermission
getPermissionEditDetails();
57 public abstract GroupPermission
getPermissionSendMessage();
59 public Set
<RecipientId
> getMembersWithout(RecipientId recipientId
) {
60 return getMembers().stream().filter(member
-> !member
.equals(recipientId
)).collect(Collectors
.toSet());
63 public Set
<RecipientId
> getMembersIncludingPendingWithout(RecipientId recipientId
) {
64 return Stream
.concat(getMembers().stream(), getPendingMembers().stream())
65 .filter(member
-> !member
.equals(recipientId
))
66 .collect(Collectors
.toSet());
69 public boolean isMember(RecipientId recipientId
) {
70 return getMembers().contains(recipientId
);
73 public boolean isAdmin(RecipientId recipientId
) {
74 return getAdminMembers().contains(recipientId
);
77 public boolean isPendingMember(RecipientId recipientId
) {
78 return getPendingMembers().contains(recipientId
);