fixed #9
This commit is contained in:
parent
848fb2ec24
commit
c67238562a
|
@ -232,13 +232,17 @@ public class Conversation extends AbstractEntity {
|
|||
this.otrSession = null;
|
||||
}
|
||||
|
||||
public void endOtrIfNeeded() throws OtrException {
|
||||
public void endOtrIfNeeded() {
|
||||
if (this.otrSession!=null) {
|
||||
if (this.otrSession.getSessionStatus() == SessionStatus.ENCRYPTED) {
|
||||
this.otrSession.endSession();
|
||||
try {
|
||||
this.otrSession.endSession();
|
||||
this.resetOtrSession();
|
||||
} catch (OtrException e) {
|
||||
this.resetOtrSession();
|
||||
}
|
||||
}
|
||||
}
|
||||
this.resetOtrSession();
|
||||
}
|
||||
|
||||
public boolean hasValidOtrSession() {
|
||||
|
|
|
@ -567,6 +567,7 @@ public class XmppConnectionService extends Service {
|
|||
saveInDb = true;
|
||||
addToConversation = true;
|
||||
} else if (message.getEncryption() == Message.ENCRYPTION_PGP) {
|
||||
message.getConversation().endOtrIfNeeded();
|
||||
long keyId = message.getConversation().getContact()
|
||||
.getPgpKeyId();
|
||||
packet = new MessagePacket();
|
||||
|
@ -586,6 +587,7 @@ public class XmppConnectionService extends Service {
|
|||
saveInDb = true;
|
||||
addToConversation = true;
|
||||
} else {
|
||||
message.getConversation().endOtrIfNeeded();
|
||||
// don't encrypt
|
||||
if (message.getConversation().getMode() == Conversation.MODE_SINGLE) {
|
||||
message.setStatus(Message.STATUS_SEND);
|
||||
|
@ -873,13 +875,7 @@ public class XmppConnectionService extends Service {
|
|||
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
||||
leaveMuc(conversation);
|
||||
} else {
|
||||
try {
|
||||
conversation.endOtrIfNeeded();
|
||||
} catch (OtrException e) {
|
||||
Log.d(LOGTAG,
|
||||
"error ending otr session for "
|
||||
+ conversation.getName());
|
||||
}
|
||||
conversation.endOtrIfNeeded();
|
||||
}
|
||||
this.databaseBackend.updateConversation(conversation);
|
||||
this.conversations.remove(conversation);
|
||||
|
@ -1068,12 +1064,7 @@ public class XmppConnectionService extends Service {
|
|||
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
||||
leaveMuc(conversation);
|
||||
} else {
|
||||
try {
|
||||
conversation.endOtrIfNeeded();
|
||||
} catch (OtrException e) {
|
||||
Log.d(LOGTAG, "error ending otr session for "
|
||||
+ conversation.getName());
|
||||
}
|
||||
conversation.endOtrIfNeeded();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue