]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java
Rotate profile key after blocking a contact/group
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / helper / IncomingMessageHandler.java
index 489be8346b24a86af6e45c3e87124d65da8e5ba4..5e310a4844942dd0ba273cf37267d8f25f9da143 100644 (file)
@@ -11,6 +11,7 @@ import org.asamk.signal.manager.actions.RetrieveStorageDataAction;
 import org.asamk.signal.manager.actions.SendGroupInfoAction;
 import org.asamk.signal.manager.actions.SendGroupInfoRequestAction;
 import org.asamk.signal.manager.actions.SendPniIdentityKeyAction;
+import org.asamk.signal.manager.actions.SendProfileKeyAction;
 import org.asamk.signal.manager.actions.SendReceiptAction;
 import org.asamk.signal.manager.actions.SendRetryMessageRequestAction;
 import org.asamk.signal.manager.actions.SendSyncBlockedListAction;
@@ -18,6 +19,7 @@ import org.asamk.signal.manager.actions.SendSyncConfigurationAction;
 import org.asamk.signal.manager.actions.SendSyncContactsAction;
 import org.asamk.signal.manager.actions.SendSyncGroupsAction;
 import org.asamk.signal.manager.actions.SendSyncKeysAction;
+import org.asamk.signal.manager.actions.UpdateAccountAttributesAction;
 import org.asamk.signal.manager.api.MessageEnvelope;
 import org.asamk.signal.manager.api.Pair;
 import org.asamk.signal.manager.api.StickerPackId;
@@ -246,6 +248,13 @@ public final class IncomingMessageHandler {
 
             if (content.isNeedsReceipt()) {
                 actions.add(new SendReceiptAction(sender, message.getTimestamp()));
+            } else {
+                // Message wasn't sent as unidentified sender message
+                final var contact = context.getAccount().getContactStore().getContact(sender);
+                if (contact != null && !contact.isBlocked() && contact.isProfileSharingEnabled()) {
+                    actions.add(UpdateAccountAttributesAction.create());
+                    actions.add(new SendProfileKeyAction(sender));
+                }
             }
 
             actions.addAll(handleSignalServiceDataMessage(message,