]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java
Update libsignal-service-java
[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.api.Contact;
4 import org.asamk.signal.manager.storage.SignalAccount;
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 givenName, final String familyName) {
21 var contact = account.getContactStore().getContact(recipientId);
22 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
23 if (givenName != null) {
24 builder.withGivenName(givenName);
25 }
26 if (familyName != null) {
27 builder.withFamilyName(familyName);
28 }
29 account.getContactStore().storeContact(recipientId, builder.build());
30 }
31
32 public void setExpirationTimer(RecipientId recipientId, int messageExpirationTimer) {
33 var contact = account.getContactStore().getContact(recipientId);
34 if (contact != null && contact.getMessageExpirationTime() == messageExpirationTimer) {
35 return;
36 }
37 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
38 account.getContactStore()
39 .storeContact(recipientId, builder.withMessageExpirationTime(messageExpirationTimer).build());
40 }
41
42 public void setContactBlocked(RecipientId recipientId, boolean blocked) {
43 var contact = account.getContactStore().getContact(recipientId);
44 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
45 if (blocked) {
46 builder.withProfileSharingEnabled(false);
47 }
48 account.getContactStore().storeContact(recipientId, builder.withBlocked(blocked).build());
49 }
50 }