1 package org
.asamk
.signal
.manager
.storage
.profiles
;
3 import com
.fasterxml
.jackson
.annotation
.JsonIgnore
;
4 import com
.fasterxml
.jackson
.annotation
.JsonProperty
;
6 import org
.whispersystems
.signalservice
.api
.profiles
.SignalServiceProfile
;
8 public class SignalProfile
{
11 private final String identityKey
;
14 private final String name
;
17 private final String about
;
20 private final String aboutEmoji
;
23 private final String unidentifiedAccess
;
26 private final boolean unrestrictedUnidentifiedAccess
;
29 private final Capabilities capabilities
;
32 final String identityKey
,
35 final String aboutEmoji
,
36 final String unidentifiedAccess
,
37 final boolean unrestrictedUnidentifiedAccess
,
38 final SignalServiceProfile
.Capabilities capabilities
40 this.identityKey
= identityKey
;
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();
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
61 this.identityKey
= identityKey
;
64 this.aboutEmoji
= aboutEmoji
;
65 this.unidentifiedAccess
= unidentifiedAccess
;
66 this.unrestrictedUnidentifiedAccess
= unrestrictedUnidentifiedAccess
;
67 this.capabilities
= capabilities
;
70 public String
getIdentityKey() {
74 public String
getName() {
78 public String
getDisplayName() {
79 // First name and last name (if set) are separated by a NULL char + trim space in case only one is filled
80 return name
== null ?
null : name
.replace("\0", " ").trim();
83 public String
getAbout() {
87 public String
getAboutEmoji() {
91 public String
getUnidentifiedAccess() {
92 return unidentifiedAccess
;
95 public boolean isUnrestrictedUnidentifiedAccess() {
96 return unrestrictedUnidentifiedAccess
;
99 public Capabilities
getCapabilities() {
104 public String
toString() {
105 return "SignalProfile{"
118 + ", unidentifiedAccess='"
121 + ", unrestrictedUnidentifiedAccess="
122 + unrestrictedUnidentifiedAccess
128 public static class Capabilities
{
137 public boolean storage
;
140 public boolean gv1Migration
;