fixed bug with otr session being initilized over and over again

This commit is contained in:
iNPUTmice 2014-07-23 18:04:29 +02:00
parent b6e3ce4b20
commit 23e5fb5d56
2 changed files with 11 additions and 11 deletions

View File

@ -395,13 +395,4 @@ public class Conversation extends AbstractEntity {
public Bookmark getBookmark() { public Bookmark getBookmark() {
return this.bookmark; 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);
}
}
}
} }

View File

@ -519,13 +519,13 @@ public class XmppConnectionService extends Service {
} }
} else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTED) { } else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {
message.getConversation().endOtrIfNeeded(); message.getConversation().endOtrIfNeeded();
message.getConversation().failWaitingOtrMessages(); failWaitingOtrMessages(message.getConversation());
packet = mMessageGenerator.generatePgpChat(message); packet = mMessageGenerator.generatePgpChat(message);
message.setStatus(Message.STATUS_SEND); message.setStatus(Message.STATUS_SEND);
send = true; send = true;
} else { } else {
message.getConversation().endOtrIfNeeded(); message.getConversation().endOtrIfNeeded();
message.getConversation().failWaitingOtrMessages(); failWaitingOtrMessages(message.getConversation());
if (message.getConversation().getMode() == Conversation.MODE_SINGLE) { if (message.getConversation().getMode() == Conversation.MODE_SINGLE) {
message.setStatus(Message.STATUS_SEND); message.setStatus(Message.STATUS_SEND);
} }
@ -1318,6 +1318,15 @@ public class XmppConnectionService extends Service {
this.sendMessagePacket(conversation.getAccount(), mMessageGenerator.confirm(account, to, id)); 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() { public SecureRandom getRNG() {
return this.mRandom; return this.mRandom;