From 1dcf8046181a2b6559e81b3704ba9aa760be8ce0 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 17 Jan 2017 15:56:21 +0100 Subject: fixed pgp encrypted text quick sharing. fixes #2237 --- .../siacs/conversations/ui/ShareWithActivity.java | 56 ++++++++++++++++++++-- src/main/res/values/strings.xml | 1 + 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java index 9a7414ef..f5724fc6 100644 --- a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java @@ -310,15 +310,61 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer } else { if (mReturnToPrevious && this.share.text != null && !this.share.text.isEmpty() ) { final OnPresenceSelected callback = new OnPresenceSelected() { + + private void finishAndSend(Message message) { + xmppConnectionService.sendMessage(message); + replaceToast(getString(R.string.shared_text_with_x, conversation.getName())); + finish(); + } + + private UiCallback messageEncryptionCallback = new UiCallback() { + @Override + public void success(final Message message) { + message.setEncryption(Message.ENCRYPTION_DECRYPTED); + runOnUiThread(new Runnable() { + @Override + public void run() { + finishAndSend(message); + } + }); + } + + @Override + public void error(final int errorCode, Message object) { + runOnUiThread(new Runnable() { + @Override + public void run() { + replaceToast(getString(errorCode)); + finish(); + } + }); + } + + @Override + public void userInputRequried(PendingIntent pi, Message object) { + finish(); + } + }; + @Override public void onPresenceSelected() { - Message message = new Message(conversation,share.text, conversation.getNextEncryption()); - if (conversation.getNextEncryption() == Message.ENCRYPTION_OTR) { + + final int encryption = conversation.getNextEncryption(); + + Message message = new Message(conversation,share.text, encryption); + + Log.d(Config.LOGTAG,"on presence selected encrpytion="+encryption); + + if (encryption == Message.ENCRYPTION_PGP) { + replaceToast(getString(R.string.encrypting_message)); + xmppConnectionService.getPgpEngine().encrypt(message,messageEncryptionCallback); + return; + } + + if (encryption == Message.ENCRYPTION_OTR) { message.setCounterpart(conversation.getNextCounterpart()); } - xmppConnectionService.sendMessage(message); - replaceToast(getString(R.string.shared_text_with_x, conversation.getName())); - finish(); + finishAndSend(message); } }; if (conversation.getNextEncryption() == Message.ENCRYPTION_OTR) { diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index e38d6cd0..9ad0d63d 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -724,4 +724,5 @@ Hide inactive devices Distrust device Are you sure you want to remove the verification for this device?\nThis device and messages coming from that device will be marked as untrusted. + Encrypting message -- cgit v1.2.3