diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-09-08 11:01:27 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2016-09-08 22:56:25 +0200 |
commit | dd956b7531e97fd46a3fccdda97905448859c7b3 (patch) | |
tree | 765fcf0f92b4c8dad3a5154cbd6ef10baff32e0f /src/main/java/de/pixart/messenger/ui/ConversationActivity.java | |
parent | 8adf715f7cd259c1b27a6125720e88b2e765863f (diff) |
provide hint on why conference can not be encrypted
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationActivity.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java index 5104cb9a8..fde924e1a 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java @@ -23,6 +23,7 @@ import android.media.ExifInterface; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.provider.MediaStore; import android.provider.Settings; import android.support.v4.widget.SlidingPaneLayout; @@ -83,6 +84,8 @@ import de.pixart.messenger.xmpp.jid.InvalidJidException; import de.pixart.messenger.xmpp.jid.Jid; import de.timroes.android.listview.EnhancedListView; +import static eu.siacs.conversations.crypto.axolotl.AxolotlService.AxolotlCapability.MISSING_PRESENCE; + public class ConversationActivity extends XmppActivity implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast, View.OnClickListener { @@ -588,9 +591,47 @@ public class ConversationActivity extends XmppActivity } } } + if (Config.supportOmemo()) { + new Handler().post(new Runnable() { + @Override + public void run() { + View view = findViewById(R.id.action_security); + if (view != null) { + view.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + return quickOmemoDebugger(getSelectedConversation()); + } + }); + } + } + }); + } return super.onCreateOptionsMenu(menu); } + private boolean quickOmemoDebugger(Conversation c) { + if (c != null) { + AxolotlService axolotlService = c.getAccount().getAxolotlService(); + Pair<AxolotlService.AxolotlCapability,Jid> capabilityJidPair = axolotlService.isConversationAxolotlCapableDetailed(c); + switch (capabilityJidPair.first) { + case MISSING_PRESENCE: + Toast.makeText(ConversationActivity.this,getString(R.string.missing_presence_subscription_with_x,capabilityJidPair.second.toBareJid().toString()),Toast.LENGTH_SHORT).show(); + return true; + case MISSING_KEYS: + Toast.makeText(ConversationActivity.this,getString(R.string.missing_keys_from_x,capabilityJidPair.second.toBareJid().toString()),Toast.LENGTH_SHORT).show(); + return true; + case WRONG_CONFIGURATION: + Toast.makeText(ConversationActivity.this,R.string.wrong_conference_configuration, Toast.LENGTH_SHORT).show(); + return true; + case NO_MEMBERS: + Toast.makeText(ConversationActivity.this,R.string.this_conference_has_no_members, Toast.LENGTH_SHORT).show(); + return true; + } + } + return false; + } + protected void selectPresenceToAttachFile(final int attachmentChoice, final int encryption) { final Conversation conversation = getSelectedConversation(); final Account account = conversation.getAccount(); |