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