aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Conversation.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-01-29 20:06:28 +0100
committerChristian Schneppe <christian@pix-art.de>2017-01-29 20:06:28 +0100
commit475e29b622ef5c87e3a3b3a36020bf99958467cd (patch)
tree75a7df26cb66eaf5fd16ef4aab3eb50080975291 /src/main/java/de/pixart/messenger/entities/Conversation.java
parent91e6a152c066d1bcff15a9585d6830feb1a53288 (diff)
configurable local message retention period.
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Conversation.java14
1 files changed, 14 insertions, 0 deletions
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<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>() {