aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/entities
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-12-13 15:32:11 +0100
committeriNPUTmice <daniel@gultsch.de>2014-12-13 15:32:11 +0100
commit899802646cbf27622c1eef8c941a84fd60af2424 (patch)
treef17b6f19bfa8cee247f87a752408a9ae34fbac6b /src/main/java/eu/siacs/conversations/entities
parent02a89f4ce2228c2e0f528f89fa1fe850c6f50fe8 (diff)
reverse through mam history when loading larger chuncks
Diffstat (limited to 'src/main/java/eu/siacs/conversations/entities')
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Conversation.java6
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Message.java13
2 files changed, 10 insertions, 9 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java
index a30847b9..0b5460a8 100644
--- a/src/main/java/eu/siacs/conversations/entities/Conversation.java
+++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java
@@ -567,9 +567,6 @@ public class Conversation extends AbstractEntity {
public void sort() {
synchronized (this.messages) {
- for(Message message : this.messages) {
- message.untie();
- }
Collections.sort(this.messages,new Comparator<Message>() {
@Override
public int compare(Message left, Message right) {
@@ -582,6 +579,9 @@ public class Conversation extends AbstractEntity {
}
}
});
+ for(Message message : this.messages) {
+ message.untie();
+ }
}
}
diff --git a/src/main/java/eu/siacs/conversations/entities/Message.java b/src/main/java/eu/siacs/conversations/entities/Message.java
index 2cced3b3..c7a92d84 100644
--- a/src/main/java/eu/siacs/conversations/entities/Message.java
+++ b/src/main/java/eu/siacs/conversations/entities/Message.java
@@ -320,8 +320,8 @@ public class Message extends AbstractEntity {
}
public Message next() {
- if (this.mNextMessage == null) {
- synchronized (this.conversation.messages) {
+ synchronized (this.conversation.messages) {
+ if (this.mNextMessage == null) {
int index = this.conversation.messages.indexOf(this);
if (index < 0
|| index >= this.conversation.getMessages().size() - 1) {
@@ -331,13 +331,14 @@ public class Message extends AbstractEntity {
.get(index + 1);
}
}
+ return this.mNextMessage;
}
- return this.mNextMessage;
}
public Message prev() {
- if (this.mPreviousMessage == null) {
- synchronized (this.conversation.messages) {
+ synchronized (this.conversation.messages) {
+ if (this.mPreviousMessage == null) {
+
int index = this.conversation.messages.indexOf(this);
if (index <= 0 || index > this.conversation.messages.size()) {
this.mPreviousMessage = null;
@@ -346,8 +347,8 @@ public class Message extends AbstractEntity {
.get(index - 1);
}
}
+ return this.mPreviousMessage;
}
- return this.mPreviousMessage;
}
public boolean mergeable(final Message message) {