diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 26c59003c..9555d9050 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -721,11 +721,15 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke commitAttachments(); return; } - final String body = this.binding.textinput.getText().toString(); + final Editable text = this.binding.textinput.getText(); + final String body = text == null ? "" : text.toString(); final Conversation conversation = this.conversation; if (body.length() == 0 || conversation == null) { return; } + if (conversation.getNextEncryption() == Message.ENCRYPTION_AXOLOTL && trustKeysIfNeeded(REQUEST_TRUST_KEYS_TEXT)) { + return; + } final Message message; if (conversation.getCorrectingMessage() == null) { message = new Message(conversation, body, conversation.getNextEncryption()); @@ -747,11 +751,6 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke case Message.ENCRYPTION_PGP: sendPgpMessage(message); break; - case Message.ENCRYPTION_AXOLOTL: - if (!trustKeysIfNeeded(REQUEST_TRUST_KEYS_TEXT)) { - sendMessage(message); - } - break; default: sendMessage(message); } @@ -814,9 +813,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke private void handlePositiveActivityResult(int requestCode, final Intent data) { switch (requestCode) { case REQUEST_TRUST_KEYS_TEXT: - final String body = this.binding.textinput.getText().toString(); - Message message = new Message(conversation, body, conversation.getNextEncryption()); - sendMessage(message); + sendMessage(); break; case REQUEST_TRUST_KEYS_ATTACHMENTS: commitAttachments();