]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/storage/profiles/SignalProfile.java
Implement creating V2 Groups
[signal-cli] / src / main / java / org / asamk / signal / storage / profiles / SignalProfile.java
1 package org.asamk.signal.storage.profiles;
2
3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 import com.fasterxml.jackson.annotation.JsonProperty;
5
6 import org.whispersystems.signalservice.api.profiles.SignalServiceProfile;
7
8 import java.io.File;
9
10 public class SignalProfile {
11
12 @JsonProperty
13 private final String identityKey;
14
15 @JsonProperty
16 private final String name;
17
18 private final File avatarFile;
19
20 @JsonProperty
21 private final String unidentifiedAccess;
22
23 @JsonProperty
24 private final boolean unrestrictedUnidentifiedAccess;
25
26 @JsonProperty
27 private final Capabilities capabilities;
28
29 public SignalProfile(final String identityKey, final String name, final File avatarFile, final String unidentifiedAccess, final boolean unrestrictedUnidentifiedAccess, final SignalServiceProfile.Capabilities capabilities) {
30 this.identityKey = identityKey;
31 this.name = name;
32 this.avatarFile = avatarFile;
33 this.unidentifiedAccess = unidentifiedAccess;
34 this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess;
35 this.capabilities = new Capabilities();
36 this.capabilities.storage = capabilities.isStorage();
37 this.capabilities.gv1Migration = capabilities.isGv1Migration();
38 this.capabilities.gv2 = capabilities.isGv2();
39 }
40
41 public SignalProfile(@JsonProperty("identityKey") final String identityKey, @JsonProperty("name") final String name, @JsonProperty("unidentifiedAccess") final String unidentifiedAccess, @JsonProperty("unrestrictedUnidentifiedAccess") final boolean unrestrictedUnidentifiedAccess, @JsonProperty("capabilities") final Capabilities capabilities) {
42 this.identityKey = identityKey;
43 this.name = name;
44 this.avatarFile = null;
45 this.unidentifiedAccess = unidentifiedAccess;
46 this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess;
47 this.capabilities = capabilities;
48 }
49
50 public String getIdentityKey() {
51 return identityKey;
52 }
53
54 public String getName() {
55 return name;
56 }
57
58 public File getAvatarFile() {
59 return avatarFile;
60 }
61
62 public String getUnidentifiedAccess() {
63 return unidentifiedAccess;
64 }
65
66 public boolean isUnrestrictedUnidentifiedAccess() {
67 return unrestrictedUnidentifiedAccess;
68 }
69
70 public Capabilities getCapabilities() {
71 return capabilities;
72 }
73
74 @Override
75 public String toString() {
76 return "SignalProfile{" +
77 "identityKey='" + identityKey + '\'' +
78 ", name='" + name + '\'' +
79 ", avatarFile=" + avatarFile +
80 ", unidentifiedAccess='" + unidentifiedAccess + '\'' +
81 ", unrestrictedUnidentifiedAccess=" + unrestrictedUnidentifiedAccess +
82 ", capabilities=" + capabilities +
83 '}';
84 }
85
86 public static class Capabilities {
87
88 @JsonIgnore
89 public boolean uuid;
90
91 @JsonProperty
92 public boolean gv2;
93
94 @JsonProperty
95 public boolean storage;
96
97 @JsonProperty
98 public boolean gv1Migration;
99 }
100 }