1 package org
.asamk
.signal
.manager
.api
;
3 import org
.whispersystems
.signalservice
.internal
.util
.Util
;
9 String nickNameGivenName
,
10 String nickNameFamilyName
,
13 int messageExpirationTime
,
14 int messageExpirationTimeVersion
,
19 boolean isProfileSharingEnabled
,
21 Long unregisteredTimestamp
24 private Contact(final Builder builder
) {
25 this(builder
.givenName
,
28 builder
.nickNameGivenName
,
29 builder
.nickNameFamilyName
,
32 builder
.messageExpirationTime
,
33 builder
.messageExpirationTimeVersion
,
38 builder
.isProfileSharingEnabled
,
40 builder
.unregisteredTimestamp
);
43 public static Builder
newBuilder() {
47 public static Builder
newBuilder(final Contact copy
) {
48 Builder builder
= new Builder();
49 builder
.givenName
= copy
.givenName();
50 builder
.familyName
= copy
.familyName();
51 builder
.nickName
= copy
.nickName();
52 builder
.color
= copy
.color();
53 builder
.messageExpirationTime
= copy
.messageExpirationTime();
54 builder
.muteUntil
= copy
.muteUntil();
55 builder
.hideStory
= copy
.hideStory();
56 builder
.isBlocked
= copy
.isBlocked();
57 builder
.isArchived
= copy
.isArchived();
58 builder
.isProfileSharingEnabled
= copy
.isProfileSharingEnabled();
59 builder
.isHidden
= copy
.isHidden();
60 builder
.unregisteredTimestamp
= copy
.unregisteredTimestamp();
64 public String
getName() {
65 final var noGivenName
= Util
.isEmpty(givenName
);
66 final var noFamilyName
= Util
.isEmpty(familyName
);
68 if (noGivenName
&& noFamilyName
) {
70 } else if (noGivenName
) {
72 } else if (noFamilyName
) {
76 return givenName
+ " " + familyName
;
79 public static final class Builder
{
81 private String givenName
;
82 private String familyName
;
83 private String nickName
;
84 private String nickNameGivenName
;
85 private String nickNameFamilyName
;
88 private int messageExpirationTime
;
89 private int messageExpirationTimeVersion
= 1;
90 private long muteUntil
;
91 private boolean hideStory
;
92 private boolean isBlocked
;
93 private boolean isArchived
;
94 private boolean isProfileSharingEnabled
;
95 private boolean isHidden
;
96 private Long unregisteredTimestamp
;
101 public static Builder
newBuilder() {
102 return new Builder();
105 public Builder
withGivenName(final String val
) {
110 public Builder
withFamilyName(final String val
) {
115 public Builder
withNickName(final String val
) {
120 public Builder
withNickNameGivenName(final String val
) {
121 nickNameGivenName
= val
;
125 public Builder
withNickNameFamilyName(final String val
) {
126 nickNameFamilyName
= val
;
130 public Builder
withNote(final String val
) {
135 public Builder
withColor(final String val
) {
140 public Builder
withMessageExpirationTime(final int val
) {
141 messageExpirationTime
= val
;
145 public Builder
withMessageExpirationTimeVersion(final int val
) {
146 messageExpirationTimeVersion
= val
;
150 public Builder
withMuteUntil(final long val
) {
155 public Builder
withHideStory(final boolean val
) {
160 public Builder
withIsBlocked(final boolean val
) {
165 public Builder
withIsArchived(final boolean val
) {
170 public Builder
withIsProfileSharingEnabled(final boolean val
) {
171 isProfileSharingEnabled
= val
;
175 public Builder
withIsHidden(final boolean val
) {
180 public Builder
withUnregisteredTimestamp(final Long val
) {
181 unregisteredTimestamp
= val
;
185 public Contact
build() {
186 return new Contact(this);