]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java
71b2ded8f168dccc0313be22a1262467d64c5c0c
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / helper / ContactHelper.java
1 package org.asamk.signal.manager.helper;
2
3 import org.asamk.signal.manager.storage.SignalAccount;
4 import org.asamk.signal.manager.storage.recipients.Contact;
5 import org.asamk.signal.manager.storage.recipients.RecipientId;
6
7 public class ContactHelper {
8
9 private final SignalAccount account;
10
11 public ContactHelper(final SignalAccount account) {
12 this.account = account;
13 }
14
15 public boolean isContactBlocked(final RecipientId recipientId) {
16 var sourceContact = account.getContactStore().getContact(recipientId);
17 return sourceContact != null && sourceContact.isBlocked();
18 }
19
20 public void setContactName(final RecipientId recipientId, final String name) {
21 var contact = account.getContactStore().getContact(recipientId);
22 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
23 account.getContactStore().storeContact(recipientId, builder.withName(name).build());
24 }
25
26 public void setExpirationTimer(RecipientId recipientId, int messageExpirationTimer) {
27 var contact = account.getContactStore().getContact(recipientId);
28 if (contact != null && contact.getMessageExpirationTime() == messageExpirationTimer) {
29 return;
30 }
31 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
32 account.getContactStore()
33 .storeContact(recipientId, builder.withMessageExpirationTime(messageExpirationTimer).build());
34 }
35
36 public void setContactBlocked(RecipientId recipientId, boolean blocked) {
37 var contact = account.getContactStore().getContact(recipientId);
38 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
39 account.getContactStore().storeContact(recipientId, builder.withBlocked(blocked).build());
40 }
41 }