From 9f4a2b3e26a18fbf0e3d6c80af4b34644047cd7a Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 11 Nov 2023 11:09:24 +0100 Subject: [PATCH] Convert Contact to record --- .../org/asamk/signal/manager/api/Contact.java | 119 +++--------------- .../signal/manager/helper/ContactHelper.java | 2 +- .../signal/manager/helper/SendHelper.java | 4 +- .../signal/manager/helper/StorageHelper.java | 4 +- .../signal/manager/helper/SyncHelper.java | 4 +- .../storage/recipients/RecipientStore.java | 8 +- .../signal/commands/ListContactsCommand.java | 10 +- 7 files changed, 35 insertions(+), 116 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/api/Contact.java b/lib/src/main/java/org/asamk/signal/manager/api/Contact.java index 27c2d4da..e6dd5f93 100644 --- a/lib/src/main/java/org/asamk/signal/manager/api/Contact.java +++ b/lib/src/main/java/org/asamk/signal/manager/api/Contact.java @@ -2,50 +2,24 @@ 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 color, + int messageExpirationTime, + boolean isBlocked, + boolean isArchived, + boolean isProfileSharingEnabled +) { 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.color, + builder.messageExpirationTime, + builder.blocked, + builder.archived, + builder.profileSharingEnabled); } public static Builder newBuilder() { @@ -54,10 +28,10 @@ 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.givenName = copy.givenName(); + builder.familyName = copy.familyName(); + builder.color = copy.color(); + builder.messageExpirationTime = copy.messageExpirationTime(); builder.blocked = copy.isBlocked(); builder.archived = copy.isArchived(); builder.profileSharingEnabled = copy.isProfileSharingEnabled(); @@ -79,59 +53,6 @@ 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; diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java index 80df9447..4e96bacc 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java @@ -31,7 +31,7 @@ public class ContactHelper { public void setExpirationTimer(RecipientId recipientId, int messageExpirationTimer) { var contact = account.getContactStore().getContact(recipientId); - if (contact != null && contact.getMessageExpirationTime() == messageExpirationTimer) { + if (contact != null && contact.messageExpirationTime() == messageExpirationTimer) { return; } final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact); diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java index 7a0841e7..23607815 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java @@ -84,7 +84,7 @@ public class SendHelper { account.getContactStore().storeContact(recipientId, contact); } - final var expirationTime = contact.getMessageExpirationTime(); + final var expirationTime = contact.messageExpirationTime(); messageBuilder.withExpiration(expirationTime); if (!contact.isBlocked()) { @@ -177,7 +177,7 @@ public class SendHelper { ) { final var recipientId = account.getSelfRecipientId(); final var contact = account.getContactStore().getContact(recipientId); - final var expirationTime = contact != null ? contact.getMessageExpirationTime() : 0; + final var expirationTime = contact != null ? contact.messageExpirationTime() : 0; messageBuilder.withExpiration(expirationTime); var message = messageBuilder.build(); diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java index 600bd832..35821c5b 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java @@ -116,8 +116,8 @@ public class StorageHelper { final var blocked = contact != null && contact.isBlocked(); final var profileShared = contact != null && contact.isProfileSharingEnabled(); final var archived = contact != null && contact.isArchived(); - final var contactGivenName = contact == null ? null : contact.getGivenName(); - final var contactFamilyName = contact == null ? null : contact.getFamilyName(); + final var contactGivenName = contact == null ? null : contact.givenName(); + final var contactFamilyName = contact == null ? null : contact.familyName(); if (blocked != contactRecord.isBlocked() || profileShared != contactRecord.isProfileSharingEnabled() || archived != contactRecord.isArchived() diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java index 049cbff0..0badc544 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java @@ -148,11 +148,11 @@ public class SyncHelper { out.write(new DeviceContact(address, Optional.ofNullable(contact.getName()), createContactAvatarAttachment(new RecipientAddress(address)), - Optional.ofNullable(contact.getColor()), + Optional.ofNullable(contact.color()), Optional.ofNullable(verifiedMessage), Optional.ofNullable(profileKey), contact.isBlocked(), - Optional.of(contact.getMessageExpirationTime()), + Optional.of(contact.messageExpirationTime()), Optional.empty(), contact.isArchived())); } diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java index 551b5c91..c446e468 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java @@ -589,11 +589,11 @@ public class RecipientStore implements RecipientIdCreator, RecipientResolver, Re """ ).formatted(TABLE_RECIPIENT); try (final var statement = connection.prepareStatement(sql)) { - statement.setString(1, contact == null ? null : contact.getGivenName()); - statement.setString(2, contact == null ? null : contact.getFamilyName()); - statement.setInt(3, contact == null ? 0 : contact.getMessageExpirationTime()); + statement.setString(1, contact == null ? null : contact.givenName()); + statement.setString(2, contact == null ? null : contact.familyName()); + statement.setInt(3, contact == null ? 0 : contact.messageExpirationTime()); statement.setBoolean(4, contact != null && contact.isProfileSharingEnabled()); - statement.setString(5, contact == null ? null : contact.getColor()); + statement.setString(5, contact == null ? null : contact.color()); statement.setBoolean(6, contact != null && contact.isBlocked()); statement.setBoolean(7, contact != null && contact.isArchived()); statement.setLong(8, recipientId.id()); diff --git a/src/main/java/org/asamk/signal/commands/ListContactsCommand.java b/src/main/java/org/asamk/signal/commands/ListContactsCommand.java index 42a33a14..698e6f2b 100644 --- a/src/main/java/org/asamk/signal/commands/ListContactsCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListContactsCommand.java @@ -62,11 +62,9 @@ public class ListContactsCommand implements JsonRpcLocalCommand { contact.getName(), profile.getDisplayName(), r.getAddress().username().orElse(""), - contact.getColor(), + contact.color(), contact.isBlocked(), - contact.getMessageExpirationTime() == 0 - ? "disabled" - : contact.getMessageExpirationTime() + "s"); + contact.messageExpirationTime() == 0 ? "disabled" : contact.messageExpirationTime() + "s"); } } case JsonWriter writer -> { @@ -77,9 +75,9 @@ public class ListContactsCommand implements JsonRpcLocalCommand { address.uuid().map(UUID::toString).orElse(null), address.username().orElse(null), contact.getName(), - contact.getColor(), + contact.color(), contact.isBlocked(), - contact.getMessageExpirationTime(), + contact.messageExpirationTime(), r.getProfile() == null ? null : new JsonContact.JsonProfile(r.getProfile().getLastUpdateTimestamp(), -- 2.50.1