]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/Contact.java
Fix creating builder from contact
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / Contact.java
index 27c2d4dae3d9e84b182716d09a3ffd011297bef4..3eef0117023ce8e2ca8ecff8075bb26a9544ea37 100644 (file)
@@ -2,50 +2,42 @@ package org.asamk.signal.manager.api;
 
 import org.whispersystems.signalservice.internal.util.Util;
 
-import java.util.Objects;
-
-public class Contact {
-
-    private final String givenName;
-
-    private final String familyName;
-
-    private final String color;
-
-    private final int messageExpirationTime;
-
-    private final boolean blocked;
-
-    private final boolean archived;
-
-    private final boolean profileSharingEnabled;
-
-    public Contact(
-            final String givenName,
-            final String familyName,
-            final String color,
-            final int messageExpirationTime,
-            final boolean blocked,
-            final boolean archived,
-            final boolean profileSharingEnabled
-    ) {
-        this.givenName = givenName;
-        this.familyName = familyName;
-        this.color = color;
-        this.messageExpirationTime = messageExpirationTime;
-        this.blocked = blocked;
-        this.archived = archived;
-        this.profileSharingEnabled = profileSharingEnabled;
-    }
+public record Contact(
+        String givenName,
+        String familyName,
+        String nickName,
+        String nickNameGivenName,
+        String nickNameFamilyName,
+        String note,
+        String color,
+        int messageExpirationTime,
+        int messageExpirationTimeVersion,
+        long muteUntil,
+        boolean hideStory,
+        boolean isBlocked,
+        boolean isArchived,
+        boolean isProfileSharingEnabled,
+        boolean isHidden,
+        Long unregisteredTimestamp
+) {
 
     private Contact(final Builder builder) {
-        givenName = builder.givenName;
-        familyName = builder.familyName;
-        color = builder.color;
-        messageExpirationTime = builder.messageExpirationTime;
-        blocked = builder.blocked;
-        archived = builder.archived;
-        profileSharingEnabled = builder.profileSharingEnabled;
+        this(builder.givenName,
+                builder.familyName,
+                builder.nickName,
+                builder.nickNameGivenName,
+                builder.nickNameFamilyName,
+                builder.note,
+                builder.color,
+                builder.messageExpirationTime,
+                builder.messageExpirationTimeVersion,
+                builder.muteUntil,
+                builder.hideStory,
+                builder.isBlocked,
+                builder.isArchived,
+                builder.isProfileSharingEnabled,
+                builder.isHidden,
+                builder.unregisteredTimestamp);
     }
 
     public static Builder newBuilder() {
@@ -54,13 +46,22 @@ public class Contact {
 
     public static Builder newBuilder(final Contact copy) {
         Builder builder = new Builder();
-        builder.givenName = copy.getGivenName();
-        builder.familyName = copy.getFamilyName();
-        builder.color = copy.getColor();
-        builder.messageExpirationTime = copy.getMessageExpirationTime();
-        builder.blocked = copy.isBlocked();
-        builder.archived = copy.isArchived();
-        builder.profileSharingEnabled = copy.isProfileSharingEnabled();
+        builder.givenName = copy.givenName();
+        builder.familyName = copy.familyName();
+        builder.nickName = copy.nickName();
+        builder.nickNameGivenName = copy.nickNameGivenName();
+        builder.nickNameFamilyName = copy.nickNameFamilyName();
+        builder.note = copy.note();
+        builder.color = copy.color();
+        builder.messageExpirationTime = copy.messageExpirationTime();
+        builder.messageExpirationTimeVersion = copy.messageExpirationTimeVersion();
+        builder.muteUntil = copy.muteUntil();
+        builder.hideStory = copy.hideStory();
+        builder.isBlocked = copy.isBlocked();
+        builder.isArchived = copy.isArchived();
+        builder.isProfileSharingEnabled = copy.isProfileSharingEnabled();
+        builder.isHidden = copy.isHidden();
+        builder.unregisteredTimestamp = copy.unregisteredTimestamp();
         return builder;
     }
 
@@ -79,72 +80,32 @@ public class Contact {
         return givenName + " " + familyName;
     }
 
-    public String getGivenName() {
-        return givenName;
-    }
-
-    public String getFamilyName() {
-        return familyName;
-    }
-
-    public String getColor() {
-        return color;
-    }
-
-    public int getMessageExpirationTime() {
-        return messageExpirationTime;
-    }
-
-    public boolean isBlocked() {
-        return blocked;
-    }
-
-    public boolean isArchived() {
-        return archived;
-    }
-
-    public boolean isProfileSharingEnabled() {
-        return profileSharingEnabled;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        final Contact contact = (Contact) o;
-        return messageExpirationTime == contact.messageExpirationTime
-                && blocked == contact.blocked
-                && archived == contact.archived
-                && profileSharingEnabled == contact.profileSharingEnabled
-                && Objects.equals(givenName, contact.givenName)
-                && Objects.equals(familyName, contact.familyName)
-                && Objects.equals(color, contact.color);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(givenName,
-                familyName,
-                color,
-                messageExpirationTime,
-                blocked,
-                archived,
-                profileSharingEnabled);
-    }
-
     public static final class Builder {
 
         private String givenName;
         private String familyName;
+        private String nickName;
+        private String nickNameGivenName;
+        private String nickNameFamilyName;
+        private String note;
         private String color;
         private int messageExpirationTime;
-        private boolean blocked;
-        private boolean archived;
-        private boolean profileSharingEnabled;
+        private int messageExpirationTimeVersion = 1;
+        private long muteUntil;
+        private boolean hideStory;
+        private boolean isBlocked;
+        private boolean isArchived;
+        private boolean isProfileSharingEnabled;
+        private boolean isHidden;
+        private Long unregisteredTimestamp;
 
         private Builder() {
         }
 
+        public static Builder newBuilder() {
+            return new Builder();
+        }
+
         public Builder withGivenName(final String val) {
             givenName = val;
             return this;
@@ -155,6 +116,26 @@ public class Contact {
             return this;
         }
 
+        public Builder withNickName(final String val) {
+            nickName = val;
+            return this;
+        }
+
+        public Builder withNickNameGivenName(final String val) {
+            nickNameGivenName = val;
+            return this;
+        }
+
+        public Builder withNickNameFamilyName(final String val) {
+            nickNameFamilyName = val;
+            return this;
+        }
+
+        public Builder withNote(final String val) {
+            note = val;
+            return this;
+        }
+
         public Builder withColor(final String val) {
             color = val;
             return this;
@@ -165,18 +146,43 @@ public class Contact {
             return this;
         }
 
-        public Builder withBlocked(final boolean val) {
-            blocked = val;
+        public Builder withMessageExpirationTimeVersion(final int val) {
+            messageExpirationTimeVersion = val;
+            return this;
+        }
+
+        public Builder withMuteUntil(final long val) {
+            muteUntil = val;
+            return this;
+        }
+
+        public Builder withHideStory(final boolean val) {
+            hideStory = val;
+            return this;
+        }
+
+        public Builder withIsBlocked(final boolean val) {
+            isBlocked = val;
+            return this;
+        }
+
+        public Builder withIsArchived(final boolean val) {
+            isArchived = val;
+            return this;
+        }
+
+        public Builder withIsProfileSharingEnabled(final boolean val) {
+            isProfileSharingEnabled = val;
             return this;
         }
 
-        public Builder withArchived(final boolean val) {
-            archived = val;
+        public Builder withIsHidden(final boolean val) {
+            isHidden = val;
             return this;
         }
 
-        public Builder withProfileSharingEnabled(final boolean val) {
-            profileSharingEnabled = val;
+        public Builder withUnregisteredTimestamp(final Long val) {
+            unregisteredTimestamp = val;
             return this;
         }