]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/groups/GroupInfoV1.java
dbd2dcbba873422296a4ed8f78e803cba297947f
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / groups / GroupInfoV1.java
1 package org.asamk.signal.manager.storage.groups;
2
3 import org.asamk.signal.manager.groups.GroupIdV1;
4 import org.asamk.signal.manager.groups.GroupIdV2;
5 import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
6 import org.asamk.signal.manager.groups.GroupPermission;
7 import org.asamk.signal.manager.groups.GroupUtils;
8 import org.asamk.signal.manager.storage.recipients.RecipientId;
9
10 import java.util.Collection;
11 import java.util.HashSet;
12 import java.util.Set;
13
14 public class GroupInfoV1 extends GroupInfo {
15
16 private final GroupIdV1 groupId;
17
18 private GroupIdV2 expectedV2Id;
19
20 public String name;
21
22 public Set<RecipientId> members = new HashSet<>();
23 public String color;
24 public int messageExpirationTime;
25 public boolean blocked;
26 public boolean archived;
27
28 public GroupInfoV1(GroupIdV1 groupId) {
29 this.groupId = groupId;
30 }
31
32 public GroupInfoV1(
33 final GroupIdV1 groupId,
34 final GroupIdV2 expectedV2Id,
35 final String name,
36 final Set<RecipientId> members,
37 final String color,
38 final int messageExpirationTime,
39 final boolean blocked,
40 final boolean archived
41 ) {
42 this.groupId = groupId;
43 this.expectedV2Id = expectedV2Id;
44 this.name = name;
45 this.members = members;
46 this.color = color;
47 this.messageExpirationTime = messageExpirationTime;
48 this.blocked = blocked;
49 this.archived = archived;
50 }
51
52 @Override
53 public GroupIdV1 getGroupId() {
54 return groupId;
55 }
56
57 public GroupIdV2 getExpectedV2Id() {
58 if (expectedV2Id == null) {
59 expectedV2Id = GroupUtils.getGroupIdV2(groupId);
60 }
61 return expectedV2Id;
62 }
63
64 @Override
65 public String getTitle() {
66 return name;
67 }
68
69 @Override
70 public GroupInviteLinkUrl getGroupInviteLink() {
71 return null;
72 }
73
74 public Set<RecipientId> getMembers() {
75 return members;
76 }
77
78 @Override
79 public boolean isBlocked() {
80 return blocked;
81 }
82
83 @Override
84 public void setBlocked(final boolean blocked) {
85 this.blocked = blocked;
86 }
87
88 @Override
89 public int getMessageExpirationTimer() {
90 return messageExpirationTime;
91 }
92
93 @Override
94 public boolean isAnnouncementGroup() {
95 return false;
96 }
97
98 @Override
99 public GroupPermission getPermissionAddMember() {
100 return GroupPermission.EVERY_MEMBER;
101 }
102
103 @Override
104 public GroupPermission getPermissionEditDetails() {
105 return GroupPermission.EVERY_MEMBER;
106 }
107
108 @Override
109 public GroupPermission getPermissionSendMessage() {
110 return GroupPermission.EVERY_MEMBER;
111 }
112
113 public void addMembers(Collection<RecipientId> members) {
114 this.members.addAll(members);
115 }
116
117 public void removeMember(RecipientId recipientId) {
118 this.members.removeIf(member -> member.equals(recipientId));
119 }
120 }