From 475e29b622ef5c87e3a3b3a36020bf99958467cd Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 29 Jan 2017 20:06:28 +0100 Subject: configurable local message retention period. --- .../java/de/pixart/messenger/entities/Conversation.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/main/java/de/pixart/messenger/entities/Conversation.java') diff --git a/src/main/java/de/pixart/messenger/entities/Conversation.java b/src/main/java/de/pixart/messenger/entities/Conversation.java index 0928c2ebf..526c60f6c 100644 --- a/src/main/java/de/pixart/messenger/entities/Conversation.java +++ b/src/main/java/de/pixart/messenger/entities/Conversation.java @@ -20,7 +20,9 @@ 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 java.util.concurrent.atomic.AtomicBoolean; import de.pixart.messenger.Config; import de.pixart.messenger.crypto.PgpDecryptionService; @@ -90,6 +92,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl private String mLastReceivedOtrMessageId = null; private String mFirstMamReference = null; private Message correctingMessage; + public AtomicBoolean messagesLoaded = new AtomicBoolean(true); public boolean hasMessagesLeftOnServer() { return messagesLeftOnServer; @@ -943,6 +946,17 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl account.getPgpDecryptionService().decrypt(messages); } + public void expireOldMessages(long timestamp) { + synchronized (this.messages) { + for (ListIterator 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() { -- cgit v1.2.3