Fix flagging no more messages on server for conversation
This commit is contained in:
parent
0086d5dc80
commit
eb5a7a5392
3 changed files with 15 additions and 2 deletions
src/main/java/de/thedevstack/conversationsplus
|
@ -134,10 +134,10 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
|
|||
if (conversation.setLastMessageTransmitted(query.getEnd())) {
|
||||
this.mXmppConnectionService.databaseBackend.updateConversation(conversation);
|
||||
}
|
||||
conversation.setHasMessagesLeftOnServer(query.getMessageCount() > 0);
|
||||
if (query.hasCallback()) {
|
||||
query.callback();
|
||||
} else {
|
||||
conversation.setHasMessagesLeftOnServer(query.getMessageCount() > 0);
|
||||
this.mXmppConnectionService.updateConversationUi();
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -29,16 +29,24 @@ public class ConversationMoreMessagesLoadedListener implements XmppConnectionSer
|
|||
The current loading status
|
||||
*/
|
||||
private boolean loadingMessages = false;
|
||||
/**
|
||||
* Whether the user is loading only history messages or not.
|
||||
* History messages are messages which are older than the oldest in the database.
|
||||
*/
|
||||
private boolean loadHistory = true;
|
||||
|
||||
public ConversationMoreMessagesLoadedListener(SwipyRefreshLayout swipeLayout, List<Message> messageList, ConversationFragment fragment, ListView messagesView, MessageAdapter messageListAdapter) {
|
||||
this.swipeLayout = swipeLayout;
|
||||
this.messageList = messageList;
|
||||
|
||||
this.fragment = fragment;
|
||||
this.messagesView = messagesView;
|
||||
this.messageListAdapter = messageListAdapter;
|
||||
}
|
||||
|
||||
public void setLoadHistory(boolean value) {
|
||||
this.loadHistory = value;
|
||||
}
|
||||
|
||||
public void setLoadingInProgress() {
|
||||
this.loadingMessages = true;
|
||||
}
|
||||
|
@ -62,6 +70,9 @@ public class ConversationMoreMessagesLoadedListener implements XmppConnectionSer
|
|||
}
|
||||
// No new messages are loaded
|
||||
if (0 == c) {
|
||||
if (this.loadHistory) {
|
||||
conversation.setHasMessagesLeftOnServer(false);
|
||||
}
|
||||
activity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
|
|
@ -43,6 +43,7 @@ public class ConversationSwipeRefreshListener implements SwipyRefreshLayout.OnRe
|
|||
timestamp = this.messageList.get(0).getTimeSent(); // works only because of the ordering (last msg = first msg in list)
|
||||
}
|
||||
ConversationActivity activity = (ConversationActivity) fragment.getActivity();
|
||||
this.listener.setLoadHistory(true);
|
||||
activity.xmppConnectionService.loadMoreMessages(activity.getSelectedConversation(), timestamp, this.listener);
|
||||
} else if (SwipyRefreshLayoutDirection.BOTTOM == direction) {
|
||||
Logging.d("mam", "loading missing messages from mam (last session establishing or last received message)");
|
||||
|
@ -53,6 +54,7 @@ public class ConversationSwipeRefreshListener implements SwipyRefreshLayout.OnRe
|
|||
long startTimestamp = Math.min(lastSessionEstablished, lastReceivedMessage);
|
||||
MessageArchiveService.Query query = activity.xmppConnectionService.getMessageArchiveService().query(activity.getSelectedConversation(), startTimestamp, System.currentTimeMillis());
|
||||
if (query != null) {
|
||||
this.listener.setLoadHistory(false);
|
||||
query.setCallback(this.listener);
|
||||
} else {
|
||||
activity.runOnUiThread(new Runnable() {
|
||||
|
|
Loading…
Add table
Reference in a new issue