aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/generator/AbstractGenerator.java')
-rw-r--r--src/main/java/de/pixart/messenger/generator/AbstractGenerator.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java b/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java
index a87a37885..37a098300 100644
--- a/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java
+++ b/src/main/java/de/pixart/messenger/generator/AbstractGenerator.java
@@ -15,6 +15,7 @@ import java.util.TimeZone;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
import de.pixart.messenger.crypto.axolotl.AxolotlService;
+import de.pixart.messenger.entities.Account;
import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.utils.Namespace;
import de.pixart.messenger.utils.PhoneHelper;
@@ -73,7 +74,7 @@ public abstract class AbstractGenerator {
return mXmppConnectionService.getString(R.string.app_name) + " " + getIdentityVersion();
}
- public String getIdentityType() {
+ String getIdentityType() {
if ("chromium".equals(android.os.Build.BRAND)) {
return "pc";
} else {
@@ -81,9 +82,9 @@ public abstract class AbstractGenerator {
}
}
- public String getCapHash() {
+ String getCapHash(final Account account) {
StringBuilder s = new StringBuilder();
- s.append("client/" + getIdentityType() + "//" + getIdentityName() + "<");
+ s.append("client/").append(getIdentityType()).append("//").append(getIdentityName()).append('<');
MessageDigest md;
try {
md = MessageDigest.getInstance("SHA-1");
@@ -91,8 +92,8 @@ public abstract class AbstractGenerator {
return null;
}
- for (String feature : getFeatures()) {
- s.append(feature + "<");
+ for (String feature : getFeatures(account)) {
+ s.append(feature).append('<');
}
byte[] sha1 = md.digest(s.toString().getBytes());
return new String(Base64.encode(sha1, Base64.DEFAULT)).trim();
@@ -103,8 +104,8 @@ public abstract class AbstractGenerator {
return DATE_FORMAT.format(time);
}
- public List<String> getFeatures() {
- ArrayList<String> features = new ArrayList<>();
+ public List<String> getFeatures(Account account) {
+ ArrayList<String> features = new ArrayList<>(Arrays.asList(FEATURES));
features.addAll(Arrays.asList(FEATURES));
if (mXmppConnectionService.confirmMessages()) {
features.addAll(Arrays.asList(MESSAGE_CONFIRMATION_FEATURES));
@@ -115,7 +116,7 @@ public abstract class AbstractGenerator {
if (Config.supportOmemo()) {
features.add(AxolotlService.PEP_DEVICE_LIST_NOTIFY);
}
- if (!mXmppConnectionService.useTorToConnect()) {
+ if (!mXmppConnectionService.useTorToConnect() && !account.isOnion()) {
features.addAll(Arrays.asList(PRIVACY_SENSITIVE));
}
if (Config.supportOtr()) {