]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/storage/groups/GroupInfo.java
Store contact uuids in contact store
[signal-cli] / src / main / java / org / asamk / signal / storage / groups / GroupInfo.java
1 package org.asamk.signal.storage.groups;
2
3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 import com.fasterxml.jackson.annotation.JsonProperty;
5
6 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
7
8 import java.util.Collection;
9 import java.util.HashSet;
10 import java.util.Set;
11
12 public class GroupInfo {
13
14 @JsonProperty
15 public final byte[] groupId;
16
17 @JsonProperty
18 public String name;
19
20 @JsonProperty
21 public Set<String> members = new HashSet<>();
22 @JsonProperty
23 public String color;
24 @JsonProperty(defaultValue = "false")
25 public boolean blocked;
26 @JsonProperty
27 public Integer inboxPosition;
28 @JsonProperty(defaultValue = "false")
29 public boolean archived;
30
31 private long avatarId;
32
33 @JsonProperty
34 @JsonIgnore
35 private boolean active;
36
37 public GroupInfo(byte[] groupId) {
38 this.groupId = groupId;
39 }
40
41 public GroupInfo(@JsonProperty("groupId") byte[] groupId, @JsonProperty("name") String name, @JsonProperty("members") Collection<String> members, @JsonProperty("avatarId") long avatarId, @JsonProperty("color") String color, @JsonProperty("blocked") boolean blocked, @JsonProperty("inboxPosition") Integer inboxPosition, @JsonProperty("archived") boolean archived) {
42 this.groupId = groupId;
43 this.name = name;
44 this.members.addAll(members);
45 this.avatarId = avatarId;
46 this.color = color;
47 this.blocked = blocked;
48 this.inboxPosition = inboxPosition;
49 this.archived = archived;
50 }
51
52 @JsonIgnore
53 public long getAvatarId() {
54 return avatarId;
55 }
56
57 @JsonIgnore
58 public Set<SignalServiceAddress> getMembers() {
59 Set<SignalServiceAddress> addresses = new HashSet<>(members.size());
60 for (String member : members) {
61 addresses.add(new SignalServiceAddress(null, member));
62 }
63 return addresses;
64 }
65
66 public void addMembers(Collection<SignalServiceAddress> members) {
67 for (SignalServiceAddress member : members) {
68 this.members.add(member.getNumber().get());
69 }
70 }
71 }