aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-12-27 21:04:44 +0100
committerChristian Schneppe <christian@pix-art.de>2017-12-27 21:04:44 +0100
commit9fbecd81fa66cb210e45be906c0723238f55b649 (patch)
tree88f4bebf3783a473faf1fc57e091125620a6501d
parent678344b165760bf174872721428748a608beea96 (diff)
show pep as available if omemo_all_access has been installed on server
-rw-r--r--src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java1
-rw-r--r--src/main/java/de/pixart/messenger/ui/EditAccountActivity.java2
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/XmppConnection.java10
3 files changed, 8 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java b/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java
index c29d507ba..b77bb24fb 100644
--- a/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java
+++ b/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java
@@ -63,6 +63,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
public static final String PEP_DEVICE_LIST_NOTIFY = PEP_DEVICE_LIST + "+notify";
public static final String PEP_BUNDLES = PEP_PREFIX + ".bundles";
public static final String PEP_VERIFICATION = PEP_PREFIX + ".verification";
+ public static final String PEP_OMEMO_WHITELISTED = PEP_PREFIX + ".whitelisted";
public static final String LOGPREFIX = "AxolotlService";
diff --git a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
index c461370eb..4a203af43 100644
--- a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
@@ -972,7 +972,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
AxolotlService axolotlService = this.mAccount.getAxolotlService();
if (axolotlService != null && axolotlService.isPepBroken()) {
this.mServerInfoPep.setText(R.string.server_info_broken);
- } else if (features.pepPublishOptions()) {
+ } else if (features.pepPublishOptions() || features.pepOmemoWhitelisted()) {
this.mServerInfoPep.setText(R.string.server_info_available);
} else {
this.mServerInfoPep.setText(R.string.server_info_partial);
diff --git a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java
index b7233b848..acb15e068 100644
--- a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java
+++ b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java
@@ -54,6 +54,7 @@ import de.duenndns.ssl.DomainHostnameVerifier;
import de.duenndns.ssl.MemorizingTrustManager;
import de.pixart.messenger.Config;
import de.pixart.messenger.crypto.XmppDomainVerifier;
+import de.pixart.messenger.crypto.axolotl.AxolotlService;
import de.pixart.messenger.crypto.sasl.Anonymous;
import de.pixart.messenger.crypto.sasl.DigestMd5;
import de.pixart.messenger.crypto.sasl.External;
@@ -1738,10 +1739,11 @@ public class XmppConnection implements Runnable {
}
public boolean pepPublishOptions() {
- synchronized (XmppConnection.this.disco) {
- ServiceDiscoveryResult info = disco.get(account.getJid().toBareJid());
- return info != null && info.getFeatures().contains(Namespace.PUBSUB_PUBLISH_OPTIONS);
- }
+ return hasDiscoFeature(account.getJid().toBareJid(),Namespace.PUBSUB_PUBLISH_OPTIONS);
+ }
+
+ public boolean pepOmemoWhitelisted() {
+ return hasDiscoFeature(account.getJid().toBareJid(), AxolotlService.PEP_OMEMO_WHITELISTED);
}
public boolean mam() {