fixed bug that prevented newly opened conversations to load the entire history via mam. fixes #1328

This commit is contained in:
Daniel Gultsch 2015-08-30 11:24:37 +02:00
parent 8f4b7686c9
commit b0c19d6bac
3 changed files with 14 additions and 1 deletions

View File

@ -673,6 +673,10 @@ public class Conversation extends AbstractEntity implements Blockable {
}
}
public void resetLastMessageTransmitted() {
this.setAttribute(ATTRIBUTE_LAST_MESSAGE_TRANSMITTED,String.valueOf(-1));
}
public boolean setLastMessageTransmitted(long value) {
long before = getLastMessageTransmitted();
if (value - before > 1000) {

View File

@ -68,7 +68,15 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
}
public Query query(final Conversation conversation) {
return query(conversation,conversation.getAccount().getXmppConnection().getLastSessionEstablished());
if (conversation.getLastMessageTransmitted() < 0 && conversation.countMessages() == 0) {
return query(conversation,
0,
System.currentTimeMillis());
} else {
return query(conversation,
conversation.getLastMessageTransmitted(),
conversation.getAccount().getXmppConnection().getLastSessionEstablished());
}
}
public Query query(final Conversation conversation, long end) {

View File

@ -2545,6 +2545,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
public void clearConversationHistory(final Conversation conversation) {
conversation.clearMessages();
conversation.setHasMessagesLeftOnServer(false); //avoid messages getting loaded through mam
conversation.resetLastMessageTransmitted();
new Thread(new Runnable() {
@Override
public void run() {