diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2017-01-23 17:14:30 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2017-01-23 17:14:30 +0100 |
commit | 9b6ae6d75fdf07933427774f72310ceecc5f01bd (patch) | |
tree | 11410c8c8e57e6d26261a31cccced037e405ba66 /src/main/java/eu/siacs/conversations/entities/Conversation.java | |
parent | 4c6ef3b24edcd1169940851fc01103cc9d29d2be (diff) |
configurable local message retention period. (untested)
Diffstat (limited to 'src/main/java/eu/siacs/conversations/entities/Conversation.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/Conversation.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index fa74c418..c686a676 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -20,6 +20,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; +import java.util.ListIterator; import java.util.Locale; import eu.siacs.conversations.Config; @@ -930,6 +931,17 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl account.getPgpDecryptionService().decrypt(messages); } + public void expireOldMessages(long timestamp) { + synchronized (this.messages) { + for(ListIterator<Message> iterator = this.messages.listIterator(); iterator.hasNext();) { + if (iterator.next().getTimeSent() < timestamp) { + iterator.remove(); + } + } + untieMessages(); + } + } + public void sort() { synchronized (this.messages) { Collections.sort(this.messages, new Comparator<Message>() { |