diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/CleanupHook.java b/bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/CleanupHook.java index 1cb930d39..6dca7a224 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/CleanupHook.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/CleanupHook.java @@ -1,6 +1,5 @@ package org.briarproject.bramble.api.cleanup; -import org.briarproject.bramble.api.cleanup.event.MessagesCleanedUpEvent; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.db.Transaction; @@ -19,8 +18,6 @@ public interface CleanupHook { /** * Called when the cleanup deadlines of one or more messages are reached. - * When this method returns, a {@link MessagesCleanedUpEvent} will be - * broadcast. *

* The callee is not required to delete the messages, but the hook won't be * called again for these messages unless another cleanup timer is set (see diff --git a/bramble-core/src/main/java/org/briarproject/bramble/cleanup/CleanupManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/cleanup/CleanupManagerImpl.java index 9d328479c..4c88e57c7 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/cleanup/CleanupManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/cleanup/CleanupManagerImpl.java @@ -3,7 +3,6 @@ package org.briarproject.bramble.cleanup; import org.briarproject.bramble.api.cleanup.CleanupHook; import org.briarproject.bramble.api.cleanup.CleanupManager; import org.briarproject.bramble.api.cleanup.event.CleanupTimerStartedEvent; -import org.briarproject.bramble.api.cleanup.event.MessagesCleanedUpEvent; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; @@ -146,7 +145,6 @@ class CleanupManagerImpl implements CleanupManager, Service, EventListener { throw new IllegalStateException("No cleanup hook for " + cv); } hook.deleteMessages(txn, groupId, messageIds); - txn.attach(new MessagesCleanedUpEvent(groupId, messageIds)); } } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/event/MessagesCleanedUpEvent.java b/briar-api/src/main/java/org/briarproject/briar/api/autodelete/event/ConversationMessagesDeletedEvent.java similarity index 50% rename from bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/event/MessagesCleanedUpEvent.java rename to briar-api/src/main/java/org/briarproject/briar/api/autodelete/event/ConversationMessagesDeletedEvent.java index 9e36d56e0..407f0363b 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/cleanup/event/MessagesCleanedUpEvent.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/autodelete/event/ConversationMessagesDeletedEvent.java @@ -1,8 +1,8 @@ -package org.briarproject.bramble.api.cleanup.event; +package org.briarproject.briar.api.autodelete.event; +import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.MessageId; import java.util.Collection; @@ -10,24 +10,24 @@ import java.util.Collection; import javax.annotation.concurrent.Immutable; /** - * An event that is broadcast when one or more messages in a group are - * cleaned up. + * An event that is broadcast when one or more messages + * in the private conversation with a contact have been deleted. */ @Immutable @NotNullByDefault -public class MessagesCleanedUpEvent extends Event { +public class ConversationMessagesDeletedEvent extends Event { - private final GroupId groupId; + private final ContactId contactId; private final Collection messageIds; - public MessagesCleanedUpEvent(GroupId groupId, + public ConversationMessagesDeletedEvent(ContactId contactId, Collection messageIds) { - this.groupId = groupId; + this.contactId = contactId; this.messageIds = messageIds; } - public GroupId getGroupId() { - return groupId; + public ContactId getContactId() { + return contactId; } public Collection getMessageIds() { diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java index 6f3fa973c..85a701266 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java @@ -31,6 +31,7 @@ import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVer import org.briarproject.briar.api.attachment.AttachmentHeader; import org.briarproject.briar.api.attachment.FileTooBigException; import org.briarproject.briar.api.autodelete.AutoDeleteManager; +import org.briarproject.briar.api.autodelete.event.ConversationMessagesDeletedEvent; import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker.GroupCount; import org.briarproject.briar.api.conversation.ConversationManager.ConversationClient; @@ -532,6 +533,8 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, Collection messageIds) throws DbException { for (MessageId m : messageIds) deleteMessage(txn, g, m); recalculateGroupCount(txn, g); + ContactId c = getContactId(txn, g); + txn.attach(new ConversationMessagesDeletedEvent(c, messageIds)); } private void deleteMessage(Transaction txn, GroupId g, MessageId m)