diff options
author | Christian S <christian@pix-art.de> | 2015-11-29 18:27:22 +0100 |
---|---|---|
committer | Christian S <christian@pix-art.de> | 2015-11-29 18:27:22 +0100 |
commit | d8ec3153655ceb716349fdc3c7d7106b22fd8d8a (patch) | |
tree | 98c6a76b4fc02982f85942524aa94180da09c880 /src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | |
parent | 2aebe6e56b4268dddfbd7f1cecf9dcab2de28026 (diff) | |
parent | aeba964a65fce4ac77c908533d25295d44e9d2b5 (diff) |
copy commits
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui/ConversationActivity.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index b5f8480f3..0e3dd38c2 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -19,6 +19,7 @@ import android.provider.MediaStore; import android.support.v4.widget.SlidingPaneLayout; import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener; import android.util.Log; +import android.view.Gravity; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; @@ -34,6 +35,8 @@ import android.widget.Toast; import net.java.otr4j.session.SessionStatus; +import org.openintents.openpgp.util.OpenPgpApi; + import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -63,7 +66,7 @@ import eu.siacs.conversations.xmpp.jid.InvalidJidException; import eu.siacs.conversations.xmpp.jid.Jid; public class ConversationActivity extends XmppActivity -implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast { + implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast { public static final String ACTION_DOWNLOAD = "eu.siacs.conversations.action.DOWNLOAD"; @@ -562,16 +565,16 @@ implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlockl } final Conversation conversation = getSelectedConversation(); final int encryption = conversation.getNextEncryption(); + final int mode = conversation.getMode(); if (encryption == Message.ENCRYPTION_PGP) { if (hasPgp()) { - if (conversation.getContact().getPgpKeyId() != 0) { + if (mode == Conversation.MODE_SINGLE && conversation.getContact().getPgpKeyId() != 0) { xmppConnectionService.getPgpEngine().hasKey( conversation.getContact(), new UiCallback<Contact>() { @Override - public void userInputRequried(PendingIntent pi, - Contact contact) { + public void userInputRequried(PendingIntent pi, Contact contact) { ConversationActivity.this.runIntent(pi, attachmentChoice); } @@ -585,6 +588,16 @@ implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlockl displayErrorDialog(error); } }); + } else if (mode == Conversation.MODE_MULTI && conversation.getMucOptions().pgpKeysInUse()) { + if (!conversation.getMucOptions().everybodyHasKeys()) { + Toast warning = Toast + .makeText(this, + R.string.missing_public_keys, + Toast.LENGTH_LONG); + warning.setGravity(Gravity.CENTER_VERTICAL, 0, 0); + warning.show(); + } + selectPresenceToAttachFile(attachmentChoice, encryption); } else { final ConversationFragment fragment = (ConversationFragment) getFragmentManager() .findFragmentByTag("conversation"); @@ -821,7 +834,7 @@ implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlockl break; case R.id.encryption_choice_pgp: if (hasPgp()) { - if (conversation.getAccount().getKeys().has("pgp_signature")) { + if (conversation.getAccount().getPgpSignature() != null) { conversation.setNextEncryption(Message.ENCRYPTION_PGP); item.setChecked(true); } else { @@ -1250,6 +1263,15 @@ implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlockl if (resultCode == RESULT_OK) { if (requestCode == REQUEST_DECRYPT_PGP) { mConversationFragment.onActivityResult(requestCode, resultCode, data); + } else if (requestCode == REQUEST_CHOOSE_PGP_ID) { + if (data.getExtras().containsKey(OpenPgpApi.EXTRA_SIGN_KEY_ID)) { + mSelectedConversation.getAccount().setPgpSignId(data.getExtras().getLong(OpenPgpApi.EXTRA_SIGN_KEY_ID)); + announcePgp(mSelectedConversation.getAccount(), null); + } else { + choosePgpSignId(mSelectedConversation.getAccount()); + } + } else if (requestCode == REQUEST_ANNOUNCE_PGP) { + announcePgp(mSelectedConversation.getAccount(), null); } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_IMAGE) { mPendingImageUris.clear(); mPendingImageUris.addAll(extractUriFromIntent(data)); @@ -1295,8 +1317,8 @@ implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlockl mPendingImageUris.clear(); mPendingFileUris.clear(); if (requestCode == ConversationActivity.REQUEST_DECRYPT_PGP) { - mConversationFragment.onActivityResult(requestCode, resultCode, data); - } + mConversationFragment.onActivityResult(requestCode, resultCode, data); + } } } @@ -1520,4 +1542,4 @@ implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlockl public boolean highlightSelectedConversations() { return !isConversationsOverviewHideable() || this.conversationWasSelectedByKeyboard; } -} +}
\ No newline at end of file |