]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java
609c2bcf77ee100ceec3ddc4913f76e9b2aa580c
[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 builder.withIsHidden(false);
24 if (givenName != null) {
25 builder.withGivenName(givenName);
26 }
27 if (familyName != null) {
28 builder.withFamilyName(familyName);
29 }
30 account.getContactStore().storeContact(recipientId, builder.build());
31 }
32
33 public void setExpirationTimer(RecipientId recipientId, int messageExpirationTimer) {
34 var contact = account.getContactStore().getContact(recipientId);
35 if (contact != null && contact.messageExpirationTime() == messageExpirationTimer) {
36 return;
37 }
38 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
39 account.getContactStore()
40 .storeContact(recipientId, builder.withMessageExpirationTime(messageExpirationTimer).build());
41 }
42
43 public void setContactBlocked(RecipientId recipientId, boolean blocked) {
44 var contact = account.getContactStore().getContact(recipientId);
45 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
46 if (blocked) {
47 builder.withIsProfileSharingEnabled(false);
48 }
49 account.getContactStore().storeContact(recipientId, builder.withIsBlocked(blocked).build());
50 }
51
52 public void setContactHidden(RecipientId recipientId, boolean hidden) {
53 var contact = account.getContactStore().getContact(recipientId);
54 final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
55 account.getContactStore().storeContact(recipientId, builder.withIsHidden(hidden).build());
56 }
57 }