1 package org
.asamk
.signal
.manager
.api
;
3 import org
.whispersystems
.signalservice
.internal
.util
.Util
;
10 int messageExpirationTime
,
15 boolean isProfileSharingEnabled
,
17 Long unregisteredTimestamp
20 private Contact(final Builder builder
) {
21 this(builder
.givenName
,
25 builder
.messageExpirationTime
,
30 builder
.isProfileSharingEnabled
,
32 builder
.unregisteredTimestamp
);
35 public static Builder
newBuilder() {
39 public static Builder
newBuilder(final Contact copy
) {
40 Builder builder
= new Builder();
41 builder
.givenName
= copy
.givenName();
42 builder
.familyName
= copy
.familyName();
43 builder
.nickName
= copy
.nickName();
44 builder
.color
= copy
.color();
45 builder
.messageExpirationTime
= copy
.messageExpirationTime();
46 builder
.muteUntil
= copy
.muteUntil();
47 builder
.hideStory
= copy
.hideStory();
48 builder
.isBlocked
= copy
.isBlocked();
49 builder
.isArchived
= copy
.isArchived();
50 builder
.isProfileSharingEnabled
= copy
.isProfileSharingEnabled();
51 builder
.isHidden
= copy
.isHidden();
52 builder
.unregisteredTimestamp
= copy
.unregisteredTimestamp();
56 public String
getName() {
57 final var noGivenName
= Util
.isEmpty(givenName
);
58 final var noFamilyName
= Util
.isEmpty(familyName
);
60 if (noGivenName
&& noFamilyName
) {
62 } else if (noGivenName
) {
64 } else if (noFamilyName
) {
68 return givenName
+ " " + familyName
;
71 public static final class Builder
{
73 private String givenName
;
74 private String familyName
;
75 private String nickName
;
77 private int messageExpirationTime
;
78 private long muteUntil
;
79 private boolean hideStory
;
80 private boolean isBlocked
;
81 private boolean isArchived
;
82 private boolean isProfileSharingEnabled
;
83 private boolean isHidden
;
84 private Long unregisteredTimestamp
;
89 public static Builder
newBuilder() {
93 public Builder
withGivenName(final String val
) {
98 public Builder
withFamilyName(final String val
) {
103 public Builder
withNickName(final String val
) {
108 public Builder
withColor(final String val
) {
113 public Builder
withMessageExpirationTime(final int val
) {
114 messageExpirationTime
= val
;
118 public Builder
withMuteUntil(final long val
) {
123 public Builder
withHideStory(final boolean val
) {
128 public Builder
withIsBlocked(final boolean val
) {
133 public Builder
withIsArchived(final boolean val
) {
138 public Builder
withIsProfileSharingEnabled(final boolean val
) {
139 isProfileSharingEnabled
= val
;
143 public Builder
withIsHidden(final boolean val
) {
148 public Builder
withUnregisteredTimestamp(final Long val
) {
149 unregisteredTimestamp
= val
;
153 public Contact
build() {
154 return new Contact(this);