be more restrictive about marking messages as sent_received in muc parser

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java          | 21 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java |  5 
2 files changed, 18 insertions(+), 8 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -201,14 +201,25 @@ public class Conversation extends AbstractEntity implements Blockable {
 		}
 	}
 
-	public Message findSentMessageWithUuid(String uuid) {
+	public Message findSentMessageWithUuidOrRemoteId(String id) {
 		synchronized (this.messages) {
 			for (Message message : this.messages) {
-				if (uuid.equals(message.getUuid())
-						|| (message.getStatus() >= Message.STATUS_SEND && uuid
-							.equals(message.getRemoteMsgId()))) {
+				if (id.equals(message.getUuid())
+						|| (message.getStatus() >= Message.STATUS_SEND
+						&& id.equals(message.getRemoteMsgId()))) {
 					return message;
-							}
+				}
+			}
+		}
+		return null;
+	}
+
+	public Message findSentMessageWithUuid(String id) {
+		synchronized (this.messages) {
+			for (Message message : this.messages) {
+				if (id.equals(message.getUuid())) {
+					return message;
+				}
 			}
 		}
 		return null;

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

@@ -2216,7 +2216,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
 		}
 		for (Conversation conversation : getConversations()) {
 			if (conversation.getJid().toBareJid().equals(recipient) && conversation.getAccount() == account) {
-				final Message message = conversation.findSentMessageWithUuid(uuid);
+				final Message message = conversation.findSentMessageWithUuidOrRemoteId(uuid);
 				if (message != null) {
 					markMessage(message, status);
 				}
@@ -2226,8 +2226,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
 		return null;
 	}
 
-	public boolean markMessage(Conversation conversation, String uuid,
-							   int status) {
+	public boolean markMessage(Conversation conversation, String uuid, int status) {
 		if (uuid == null) {
 			return false;
 		} else {