diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-06-01 11:24:35 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-06-01 11:24:35 +0200 |
commit | 1a4b1f8a2fdac08e3f81123cc117ed10a1bdfbfe (patch) | |
tree | 051eddcb737dbba6477b2e9ac78ff62eb5db26e9 /src/eu/siacs | |
parent | 5d0e1374b27022d41e0ff59449191422aeaf2974 (diff) |
show dialog when no contact in a muc has pgp support
Diffstat (limited to 'src/eu/siacs')
-rw-r--r-- | src/eu/siacs/conversations/entities/MucOptions.java | 18 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ConversationActivity.java | 2 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ConversationFragment.java | 28 |
3 files changed, 42 insertions, 6 deletions
diff --git a/src/eu/siacs/conversations/entities/MucOptions.java b/src/eu/siacs/conversations/entities/MucOptions.java index c1750334b..0f8e35658 100644 --- a/src/eu/siacs/conversations/entities/MucOptions.java +++ b/src/eu/siacs/conversations/entities/MucOptions.java @@ -250,4 +250,22 @@ public class MucOptions { } return primitivLongArray; } + + public boolean pgpKeysInUse() { + for(User user : getUsers()) { + if (user.getPgpKeyId()!=0) { + return true; + } + } + return false; + } + + public boolean everybodyHasKeys() { + for(User user : getUsers()) { + if (user.getPgpKeyId()==0) { + return false; + } + } + return true; + } }
\ No newline at end of file diff --git a/src/eu/siacs/conversations/ui/ConversationActivity.java b/src/eu/siacs/conversations/ui/ConversationActivity.java index 232d46f80..fbb08e718 100644 --- a/src/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/eu/siacs/conversations/ui/ConversationActivity.java @@ -396,7 +396,7 @@ public class ConversationActivity extends XmppActivity { final ConversationFragment fragment = (ConversationFragment) getFragmentManager() .findFragmentByTag("conversation"); if (fragment != null) { - fragment.showNoPGPKeyDialog(new OnClickListener() { + fragment.showNoPGPKeyDialog(false,new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java index 3e1909d83..a2b272a13 100644 --- a/src/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/eu/siacs/conversations/ui/ConversationFragment.java @@ -701,7 +701,7 @@ public class ConversationFragment extends Fragment { }); } else { - showNoPGPKeyDialog(new DialogInterface.OnClickListener() { + showNoPGPKeyDialog(false,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { @@ -713,16 +713,34 @@ public class ConversationFragment extends Fragment { }); } } else { - activity.encryptTextMessage(); + if (conversation.getMucOptions().pgpKeysInUse()) { + activity.encryptTextMessage(); + } else { + showNoPGPKeyDialog(true,new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + conversation.setNextEncryption(Message.ENCRYPTION_NONE); + message.setEncryption(Message.ENCRYPTION_NONE); + xmppService.sendMessage(message, null); + chatMsg.setText(""); + } + }); + } } } } - public void showNoPGPKeyDialog(DialogInterface.OnClickListener listener) { + public void showNoPGPKeyDialog(boolean plural, DialogInterface.OnClickListener listener) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(getString(R.string.no_pgp_key)); builder.setIconAttribute(android.R.attr.alertDialogIcon); - builder.setMessage(getText(R.string.contact_has_no_pgp_key)); + if (plural) { + builder.setTitle(getString(R.string.no_pgp_keys)); + builder.setMessage(getText(R.string.contacts_have_no_pgp_keys)); + } else { + builder.setTitle(getString(R.string.no_pgp_key)); + builder.setMessage(getText(R.string.contact_has_no_pgp_key)); + } builder.setNegativeButton(getString(R.string.cancel), null); builder.setPositiveButton(getString(R.string.send_unencrypted), listener); |