]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/Manager.java
Fix displaying group quit messages
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / Manager.java
index 2f34f7a160f8b201411080cda27e7723ef0ad415..4bced5e2304a1d50640505724d290b61c325a963 100644 (file)
@@ -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);
@@ -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()) {