return sourceContact != null && sourceContact.isBlocked();
}
- public void setContactName(final RecipientId recipientId, final String givenName, final String familyName) {
+ public void setContactName(
+ final RecipientId recipientId,
+ final String givenName,
+ final String familyName,
+ final String nickGivenName,
+ final String nickFamilyName,
+ final String note
+ ) {
var contact = account.getContactStore().getContact(recipientId);
final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
+ builder.withIsHidden(false);
if (givenName != null) {
builder.withGivenName(givenName);
}
if (familyName != null) {
builder.withFamilyName(familyName);
}
+ if (nickGivenName != null) {
+ builder.withNickNameGivenName(nickGivenName);
+ }
+ if (nickFamilyName != null) {
+ builder.withNickNameFamilyName(nickFamilyName);
+ }
+ if (note != null) {
+ builder.withNote(note);
+ }
account.getContactStore().storeContact(recipientId, builder.build());
}
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);
+ final var version = contact == null
+ ? 1
+ : contact.messageExpirationTimeVersion() == Integer.MAX_VALUE
+ ? Integer.MAX_VALUE
+ : contact.messageExpirationTimeVersion() + 1;
+ account.getContactStore()
+ .storeContact(recipientId,
+ builder.withMessageExpirationTime(messageExpirationTimer)
+ .withMessageExpirationTimeVersion(version)
+ .build());
+ }
+
+ public void setExpirationTimer(
+ RecipientId recipientId,
+ int messageExpirationTimer,
+ int messageExpirationTimerVersion
+ ) {
+ var contact = account.getContactStore().getContact(recipientId);
+ if (contact != null && (
+ contact.messageExpirationTime() == messageExpirationTimer
+ || contact.messageExpirationTimeVersion() >= messageExpirationTimerVersion
+ )) {
return;
}
final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
account.getContactStore()
- .storeContact(recipientId, builder.withMessageExpirationTime(messageExpirationTimer).build());
+ .storeContact(recipientId,
+ builder.withMessageExpirationTime(messageExpirationTimer)
+ .withMessageExpirationTimeVersion(messageExpirationTimerVersion)
+ .build());
}
public void setContactBlocked(RecipientId recipientId, boolean blocked) {
var contact = account.getContactStore().getContact(recipientId);
final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
if (blocked) {
- builder.withProfileSharingEnabled(false);
+ builder.withIsProfileSharingEnabled(false);
}
- account.getContactStore().storeContact(recipientId, builder.withBlocked(blocked).build());
+ account.getContactStore().storeContact(recipientId, builder.withIsBlocked(blocked).build());
+ }
+
+ public void setContactProfileSharing(RecipientId recipientId, boolean profileSharing) {
+ var contact = account.getContactStore().getContact(recipientId);
+ final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
+ builder.withIsProfileSharingEnabled(profileSharing);
+ account.getContactStore().storeContact(recipientId, builder.build());
+ }
+
+ public void setContactHidden(RecipientId recipientId, boolean hidden) {
+ var contact = account.getContactStore().getContact(recipientId);
+ final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
+ account.getContactStore().storeContact(recipientId, builder.withIsHidden(hidden).build());
}
}