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