bugfix: changed condition of onOtrSessionEstablished being called

Daniel Gultsch created

fixed #1263
fixed #1260
fixed #1293

Change summary

src/main/java/eu/siacs/conversations/parser/MessageParser.java | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -70,18 +70,18 @@ public class MessageParser extends AbstractParser implements
 		try {
 			conversation.setLastReceivedOtrMessageId(id);
 			Session otrSession = conversation.getOtrSession();
-			SessionStatus before = otrSession.getSessionStatus();
 			body = otrSession.transformReceiving(body);
-			SessionStatus after = otrSession.getSessionStatus();
-			if ((before != after) && (after == SessionStatus.ENCRYPTED)) {
+			SessionStatus status = otrSession.getSessionStatus();
+			if (body == null && status == SessionStatus.ENCRYPTED) {
 				conversation.setNextEncryption(Message.ENCRYPTION_OTR);
 				mXmppConnectionService.onOtrSessionEstablished(conversation);
-			} else if ((before != after) && (after == SessionStatus.FINISHED)) {
+				return null;
+			} else if (body == null && status == SessionStatus.FINISHED) {
 				conversation.setNextEncryption(Message.ENCRYPTION_NONE);
 				conversation.resetOtrSession();
 				mXmppConnectionService.updateConversationUi();
-			}
-			if ((body == null) || (body.isEmpty())) {
+				return null;
+			} else if (body == null || (body.isEmpty())) {
 				return null;
 			}
 			if (body.startsWith(CryptoHelper.FILETRANSFER)) {