inject ui callback into running mam query

iNPUTmice created

Change summary

src/main/java/eu/siacs/conversations/services/MessageArchiveService.java | 5 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 2 
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java        | 3 
3 files changed, 6 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/services/MessageArchiveService.java 🔗

@@ -151,10 +151,13 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
 		}
 	}
 
-	public boolean queryInProgress(Conversation conversation) {
+	public boolean queryInProgress(Conversation conversation, XmppConnectionService.OnMoreMessagesLoaded callback) {
 		synchronized (this.queries) {
 			for(Query query : queries) {
 				if (query.conversation == conversation) {
+					if (!query.hasCallback() && callback != null) {
+						query.setCallback(callback);
+					}
 					return true;
 				}
 			}

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -963,7 +963,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
 
 	public void loadMoreMessages(final Conversation conversation, final long timestamp, final OnMoreMessagesLoaded callback) {
 		Log.d(Config.LOGTAG,"load more messages for "+conversation.getName() + " prior to "+MessageGenerator.getTimestamp(timestamp));
-		if (XmppConnectionService.this.getMessageArchiveService().queryInProgress(conversation)) {
+		if (XmppConnectionService.this.getMessageArchiveService().queryInProgress(conversation,callback)) {
 			return;
 		}
 		new Thread(new Runnable() {

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -769,8 +769,7 @@ public class ConversationFragment extends Fragment {
 						return;
 					} else {
 						if (this.messageList.get(i).getStatus() == Message.STATUS_SEND_DISPLAYED) {
-							this.messageList.add(i + 1,
-									Message.createStatusMessage(conversation));
+							this.messageList.add(i + 1,Message.createStatusMessage(conversation));
 							return;
 						}
 					}