]>
nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/helper/ContactHelper.java
1 package org
.asamk
.signal
.manager
.helper
;
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
;
7 public class ContactHelper
{
9 private final SignalAccount account
;
11 public ContactHelper(final SignalAccount account
) {
12 this.account
= account
;
15 public boolean isContactBlocked(final RecipientId recipientId
) {
16 var sourceContact
= account
.getContactStore().getContact(recipientId
);
17 return sourceContact
!= null && sourceContact
.isBlocked();
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
);
27 if (familyName
!= null) {
28 builder
.withFamilyName(familyName
);
30 account
.getContactStore().storeContact(recipientId
, builder
.build());
33 public void setExpirationTimer(RecipientId recipientId
, int messageExpirationTimer
) {
34 var contact
= account
.getContactStore().getContact(recipientId
);
35 if (contact
!= null && contact
.messageExpirationTime() == messageExpirationTimer
) {
38 final var builder
= contact
== null ? Contact
.newBuilder() : Contact
.newBuilder(contact
);
39 account
.getContactStore()
40 .storeContact(recipientId
, builder
.withMessageExpirationTime(messageExpirationTimer
).build());
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
);
47 builder
.withIsProfileSharingEnabled(false);
49 account
.getContactStore().storeContact(recipientId
, builder
.withIsBlocked(blocked
).build());
52 public void setContactProfileSharing(RecipientId recipientId
, boolean profileSharing
) {
53 var contact
= account
.getContactStore().getContact(recipientId
);
54 final var builder
= contact
== null ? Contact
.newBuilder() : Contact
.newBuilder(contact
);
55 builder
.withIsProfileSharingEnabled(profileSharing
);
56 account
.getContactStore().storeContact(recipientId
, builder
.build());
59 public void setContactHidden(RecipientId recipientId
, boolean hidden
) {
60 var contact
= account
.getContactStore().getContact(recipientId
);
61 final var builder
= contact
== null ? Contact
.newBuilder() : Contact
.newBuilder(contact
);
62 account
.getContactStore().storeContact(recipientId
, builder
.withIsHidden(hidden
).build());