X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/deb4ecd04fd065cccdda56c4c2ffaf56d5368be9..a96bd91770880fc53e279f8a0a75e90cd32d078a:/lib/src/main/java/org/asamk/signal/manager/Manager.java diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index 65414306..4bced5e2 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -1754,6 +1754,7 @@ public class Manager implements Closeable { // Store uuid if we don't have it already resolveRecipientTrusted(envelope.getSourceAddress()); } + final var notAGroupMember = isNotAGroupMember(envelope, content); if (!envelope.isReceipt()) { try { content = decryptMessage(envelope); @@ -1779,7 +1780,7 @@ public class Manager implements Closeable { account.save(); if (isMessageBlocked(envelope, content)) { logger.info("Ignoring a message from blocked user/group: {}", envelope.getTimestamp()); - } else if (isNotAGroupMember(envelope, content)) { + } else if (notAGroupMember) { logger.info("Ignoring a message from a non group member: {}", envelope.getTimestamp()); } else { handler.handleMessage(envelope, content, exception); @@ -1903,7 +1904,7 @@ public class Manager implements Closeable { destination, ignoreAttachments)); } - if (syncMessage.getRequest().isPresent()) { + if (syncMessage.getRequest().isPresent() && account.isMasterDevice()) { var rm = syncMessage.getRequest().get(); if (rm.isContactsRequest()) { actions.add(SendSyncContactsAction.create()); @@ -1995,9 +1996,6 @@ public class Manager implements Closeable { try (var attachmentAsStream = retrieveAttachmentAsStream(contactsMessage.getContactsStream() .asPointer(), tmpFile)) { var s = new DeviceContactsInputStream(attachmentAsStream); - if (contactsMessage.isComplete()) { - account.getContactStore().clear(); - } DeviceContact c; while ((c = s.read()) != null) { if (c.getAddress().matches(account.getSelfAddress()) && c.getProfileKey().isPresent()) {