aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2016-09-08 11:01:27 +0200
committerChristian Schneppe <christian@pix-art.de>2016-09-08 22:56:25 +0200
commitdd956b7531e97fd46a3fccdda97905448859c7b3 (patch)
tree765fcf0f92b4c8dad3a5154cbd6ef10baff32e0f /src/main/java/de/pixart/messenger/ui
parent8adf715f7cd259c1b27a6125720e88b2e765863f (diff)
provide hint on why conference can not be encrypted
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationActivity.java41
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();