mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-29 02:20:39 +00:00
Convert Contact to record
This commit is contained in:
parent
9741c93ce9
commit
9f4a2b3e26
7 changed files with 35 additions and 116 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue