]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/storage/profiles/SignalProfile.java
Reformat project
[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(
30 final String identityKey,
31 final String name,
32 final File avatarFile,
33 final String unidentifiedAccess,
34 final boolean unrestrictedUnidentifiedAccess,
35 final SignalServiceProfile.Capabilities capabilities
36 ) {
37 this.identityKey = identityKey;
38 this.name = name;
39 this.avatarFile = avatarFile;
40 this.unidentifiedAccess = unidentifiedAccess;
41 this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess;
42 this.capabilities = new Capabilities();
43 this.capabilities.storage = capabilities.isStorage();
44 this.capabilities.gv1Migration = capabilities.isGv1Migration();
45 this.capabilities.gv2 = capabilities.isGv2();
46 }
47
48 public SignalProfile(
49 @JsonProperty("identityKey") final String identityKey,
50 @JsonProperty("name") final String name,
51 @JsonProperty("unidentifiedAccess") final String unidentifiedAccess,
52 @JsonProperty("unrestrictedUnidentifiedAccess") final boolean unrestrictedUnidentifiedAccess,
53 @JsonProperty("capabilities") final Capabilities capabilities
54 ) {
55 this.identityKey = identityKey;
56 this.name = name;
57 this.avatarFile = null;
58 this.unidentifiedAccess = unidentifiedAccess;
59 this.unrestrictedUnidentifiedAccess = unrestrictedUnidentifiedAccess;
60 this.capabilities = capabilities;
61 }
62
63 public String getIdentityKey() {
64 return identityKey;
65 }
66
67 public String getName() {
68 return name;
69 }
70
71 public File getAvatarFile() {
72 return avatarFile;
73 }
74
75 public String getUnidentifiedAccess() {
76 return unidentifiedAccess;
77 }
78
79 public boolean isUnrestrictedUnidentifiedAccess() {
80 return unrestrictedUnidentifiedAccess;
81 }
82
83 public Capabilities getCapabilities() {
84 return capabilities;
85 }
86
87 @Override
88 public String toString() {
89 return "SignalProfile{"
90 + "identityKey='"
91 + identityKey
92 + '\''
93 + ", name='"
94 + name
95 + '\''
96 + ", avatarFile="
97 + avatarFile
98 + ", unidentifiedAccess='"
99 + unidentifiedAccess
100 + '\''
101 + ", unrestrictedUnidentifiedAccess="
102 + unrestrictedUnidentifiedAccess
103 + ", capabilities="
104 + capabilities
105 + '}';
106 }
107
108 public static class Capabilities {
109
110 @JsonIgnore
111 public boolean uuid;
112
113 @JsonProperty
114 public boolean gv2;
115
116 @JsonProperty
117 public boolean storage;
118
119 @JsonProperty
120 public boolean gv1Migration;
121 }
122 }