]>
nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/Contact.java
1 package org
.asamk
.signal
.manager
.api
;
3 import org
.whispersystems
.signalservice
.internal
.util
.Util
;
5 import java
.util
.Objects
;
9 private final String givenName
;
11 private final String familyName
;
13 private final String color
;
15 private final int messageExpirationTime
;
17 private final boolean blocked
;
19 private final boolean archived
;
21 private final boolean profileSharingEnabled
;
24 final String givenName
,
25 final String familyName
,
27 final int messageExpirationTime
,
28 final boolean blocked
,
29 final boolean archived
,
30 final boolean profileSharingEnabled
32 this.givenName
= givenName
;
33 this.familyName
= familyName
;
35 this.messageExpirationTime
= messageExpirationTime
;
36 this.blocked
= blocked
;
37 this.archived
= archived
;
38 this.profileSharingEnabled
= profileSharingEnabled
;
41 private Contact(final Builder builder
) {
42 givenName
= builder
.givenName
;
43 familyName
= builder
.familyName
;
44 color
= builder
.color
;
45 messageExpirationTime
= builder
.messageExpirationTime
;
46 blocked
= builder
.blocked
;
47 archived
= builder
.archived
;
48 profileSharingEnabled
= builder
.profileSharingEnabled
;
51 public static Builder
newBuilder() {
55 public static Builder
newBuilder(final Contact copy
) {
56 Builder builder
= new Builder();
57 builder
.givenName
= copy
.getGivenName();
58 builder
.familyName
= copy
.getFamilyName();
59 builder
.color
= copy
.getColor();
60 builder
.messageExpirationTime
= copy
.getMessageExpirationTime();
61 builder
.blocked
= copy
.isBlocked();
62 builder
.archived
= copy
.isArchived();
63 builder
.profileSharingEnabled
= copy
.isProfileSharingEnabled();
67 public String
getName() {
68 final var noGivenName
= Util
.isEmpty(givenName
);
69 final var noFamilyName
= Util
.isEmpty(familyName
);
71 if (noGivenName
&& noFamilyName
) {
73 } else if (noGivenName
) {
75 } else if (noFamilyName
) {
79 return givenName
+ " " + familyName
;
82 public String
getGivenName() {
86 public String
getFamilyName() {
90 public String
getColor() {
94 public int getMessageExpirationTime() {
95 return messageExpirationTime
;
98 public boolean isBlocked() {
102 public boolean isArchived() {
106 public boolean isProfileSharingEnabled() {
107 return profileSharingEnabled
;
111 public boolean equals(final Object o
) {
112 if (this == o
) return true;
113 if (o
== null || getClass() != o
.getClass()) return false;
114 final Contact contact
= (Contact
) o
;
115 return messageExpirationTime
== contact
.messageExpirationTime
116 && blocked
== contact
.blocked
117 && archived
== contact
.archived
118 && profileSharingEnabled
== contact
.profileSharingEnabled
119 && Objects
.equals(givenName
, contact
.givenName
)
120 && Objects
.equals(familyName
, contact
.familyName
)
121 && Objects
.equals(color
, contact
.color
);
125 public int hashCode() {
126 return Objects
.hash(givenName
,
129 messageExpirationTime
,
132 profileSharingEnabled
);
135 public static final class Builder
{
137 private String givenName
;
138 private String familyName
;
139 private String color
;
140 private int messageExpirationTime
;
141 private boolean blocked
;
142 private boolean archived
;
143 private boolean profileSharingEnabled
;
148 public Builder
withGivenName(final String val
) {
153 public Builder
withFamilyName(final String val
) {
158 public Builder
withColor(final String val
) {
163 public Builder
withMessageExpirationTime(final int val
) {
164 messageExpirationTime
= val
;
168 public Builder
withBlocked(final boolean val
) {
173 public Builder
withArchived(final boolean val
) {
178 public Builder
withProfileSharingEnabled(final boolean val
) {
179 profileSharingEnabled
= val
;
183 public Contact
build() {
184 return new Contact(this);