aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2017-01-17 15:56:21 +0100
committerDaniel Gultsch <daniel@gultsch.de>2017-01-17 15:56:21 +0100
commit1dcf8046181a2b6559e81b3704ba9aa760be8ce0 (patch)
tree042869d490b440c270a5eef4a83af8e03ecbbb51 /src/main
parentac2eee8e815e04245c82dbb4f2c65e4a00c40aa8 (diff)
fixed pgp encrypted text quick sharing. fixes #2237
Diffstat (limited to '')
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java56
-rw-r--r--src/main/res/values/strings.xml1
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<Message> messageEncryptionCallback = new UiCallback<Message>() {
+ @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 @@
<string name="hide_inactive_devices">Hide inactive devices</string>
<string name="distrust_omemo_key">Distrust device</string>
<string name="distrust_omemo_key_text">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.</string>
+ <string name="encrypting_message">Encrypting message</string>
</resources>