]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/profiles/SignalProfile.java
6a761c293d9bc3fa1f1a01640aa16d8d479eca05
[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 about;
18
19 @JsonProperty
20 private final String aboutEmoji;
21
22 @JsonProperty
23 private final String unidentifiedAccess;
24
25 @JsonProperty
26 private final boolean unrestrictedUnidentifiedAccess;
27
28 @JsonProperty
29 private final Capabilities capabilities;
30
31 public SignalProfile(
32 final String identityKey,
33 final String name,
34 final String about,
35 final String aboutEmoji,
36 final String unidentifiedAccess,
37 final boolean unrestrictedUnidentifiedAccess,
38 final SignalServiceProfile.Capabilities capabilities
39 ) {
40 this.identityKey = identityKey;
41 this.name = name;
42 this.about = about;
43 this.aboutEmoji = aboutEmoji;
44 this.unidentifiedAccess = unidentifiedAccess;
45 this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess;
46 this.capabilities = new Capabilities();
47 this.capabilities.storage = capabilities.isStorage();
48 this.capabilities.gv1Migration = capabilities.isGv1Migration();
49 this.capabilities.gv2 = capabilities.isGv2();
50 }
51
52 public SignalProfile(
53 @JsonProperty("identityKey") final String identityKey,
54 @JsonProperty("name") final String name,
55 @JsonProperty("about") final String about,
56 @JsonProperty("aboutEmoji") final String aboutEmoji,
57 @JsonProperty("unidentifiedAccess") final String unidentifiedAccess,
58 @JsonProperty("unrestrictedUnidentifiedAccess") final boolean unrestrictedUnidentifiedAccess,
59 @JsonProperty("capabilities") final Capabilities capabilities
60 ) {
61 this.identityKey = identityKey;
62 this.name = name;
63 this.about = about;
64 this.aboutEmoji = aboutEmoji;
65 this.unidentifiedAccess = unidentifiedAccess;
66 this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess;
67 this.capabilities = capabilities;
68 }
69
70 public String getIdentityKey() {
71 return identityKey;
72 }
73
74 public String getName() {
75 return name;
76 }
77
78 public String getAbout() {
79 return about;
80 }
81
82 public String getAboutEmoji() {
83 return aboutEmoji;
84 }
85
86 public String getUnidentifiedAccess() {
87 return unidentifiedAccess;
88 }
89
90 public boolean isUnrestrictedUnidentifiedAccess() {
91 return unrestrictedUnidentifiedAccess;
92 }
93
94 public Capabilities getCapabilities() {
95 return capabilities;
96 }
97
98 @Override
99 public String toString() {
100 return "SignalProfile{"
101 + "identityKey='"
102 + identityKey
103 + '\''
104 + ", name='"
105 + name
106 + '\''
107 + ", about='"
108 + about
109 + '\''
110 + ", aboutEmoji='"
111 + aboutEmoji
112 + '\''
113 + ", unidentifiedAccess='"
114 + unidentifiedAccess
115 + '\''
116 + ", unrestrictedUnidentifiedAccess="
117 + unrestrictedUnidentifiedAccess
118 + ", capabilities="
119 + capabilities
120 + '}';
121 }
122
123 public static class Capabilities {
124
125 @JsonIgnore
126 public boolean uuid;
127
128 @JsonProperty
129 public boolean gv2;
130
131 @JsonProperty
132 public boolean storage;
133
134 @JsonProperty
135 public boolean gv1Migration;
136 }
137 }