fixed bug with otr session being initilized over and over again

iNPUTmice created

Change summary

src/eu/siacs/conversations/entities/Conversation.java          |  9 --
src/eu/siacs/conversations/services/XmppConnectionService.java | 13 +++
2 files changed, 11 insertions(+), 11 deletions(-)

Detailed changes

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

@@ -395,13 +395,4 @@ public class Conversation extends AbstractEntity {
 	public Bookmark getBookmark() {
 		return this.bookmark;
 	}
-
-	public void failWaitingOtrMessages() {
-		for (Message message : this.messages) {
-			if (message.getEncryption() == Message.ENCRYPTION_OTR
-					&& message.getStatus() == Message.STATUS_WAITING) {
-				message.setStatus(Message.STATUS_SEND_FAILED);
-			}
-		}
-	}
 }

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

@@ -519,13 +519,13 @@ public class XmppConnectionService extends Service {
 					}
 				} else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {
 					message.getConversation().endOtrIfNeeded();
-					message.getConversation().failWaitingOtrMessages();
+					failWaitingOtrMessages(message.getConversation());
 					packet = mMessageGenerator.generatePgpChat(message);
 					message.setStatus(Message.STATUS_SEND);
 					send = true;
 				} else {
 					message.getConversation().endOtrIfNeeded();
-					message.getConversation().failWaitingOtrMessages();
+					failWaitingOtrMessages(message.getConversation());
 					if (message.getConversation().getMode() == Conversation.MODE_SINGLE) {
 						message.setStatus(Message.STATUS_SEND);
 					}
@@ -1318,6 +1318,15 @@ public class XmppConnectionService extends Service {
 			this.sendMessagePacket(conversation.getAccount(), mMessageGenerator.confirm(account, to, id));
 		}
 	}
+	
+	public void failWaitingOtrMessages(Conversation conversation) {
+		for (Message message : conversation.getMessages()) {
+			if (message.getEncryption() == Message.ENCRYPTION_OTR
+					&& message.getStatus() == Message.STATUS_WAITING) {
+				markMessage(message, Message.STATUS_SEND_FAILED);
+			}
+		}
+	}
 
 	public SecureRandom getRNG() {
 		return this.mRandom;