Change summary
src/main/java/eu/siacs/conversations/Config.java | 2
src/main/java/eu/siacs/conversations/generator/AbstractGenerator.java | 10
src/main/java/eu/siacs/conversations/parser/MessageParser.java | 10
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 4
4 files changed, 19 insertions(+), 7 deletions(-)
Detailed changes
@@ -56,6 +56,8 @@ public final class Config {
public static final boolean USE_RANDOM_RESOURCE_ON_EVERY_BIND = false;
+ public static final boolean MESSAGE_DISPLAYED_SYNCHRONIZATION = false;
+
public static final boolean ALLOW_NON_TLS_CONNECTIONS =
false; // very dangerous. you should have a good reason to set this to true
@@ -24,7 +24,7 @@ import java.util.TimeZone;
public abstract class AbstractGenerator {
private static final SimpleDateFormat DATE_FORMAT =
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
- private final String[] FEATURES = {
+ private final String[] STATIC_FEATURES = {
Namespace.JINGLE,
Namespace.JINGLE_APPS_FILE_TRANSFER,
Namespace.JINGLE_TRANSPORTS_S5B,
@@ -40,8 +40,7 @@ public abstract class AbstractGenerator {
Namespace.NICK + "+notify",
"urn:xmpp:ping",
"jabber:iq:version",
- "http://jabber.org/protocol/chatstates",
- Namespace.MDS_DISPLAYED + "+notify"
+ "http://jabber.org/protocol/chatstates"
};
private final String[] MESSAGE_CONFIRMATION_FEATURES = {
"urn:xmpp:chat-markers:0", "urn:xmpp:receipts"
@@ -108,7 +107,10 @@ public abstract class AbstractGenerator {
public List<String> getFeatures(Account account) {
final XmppConnection connection = account.getXmppConnection();
- final ArrayList<String> features = new ArrayList<>(Arrays.asList(FEATURES));
+ final ArrayList<String> features = new ArrayList<>(Arrays.asList(STATIC_FEATURES));
+ if (Config.MESSAGE_DISPLAYED_SYNCHRONIZATION) {
+ features.add(Namespace.MDS_DISPLAYED + "+notify");
+ }
if (mXmppConnectionService.confirmMessages()) {
features.addAll(Arrays.asList(MESSAGE_CONFIRMATION_FEATURES));
}
@@ -271,11 +271,17 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
mXmppConnectionService.updateConversationUi();
}
}
- } else if (Namespace.MDS_DISPLAYED.equals(node) && account.getJid().asBareJid().equals(from)) {
+ } else if (Config.MESSAGE_DISPLAYED_SYNCHRONIZATION
+ && Namespace.MDS_DISPLAYED.equals(node)
+ && account.getJid().asBareJid().equals(from)) {
final Element item = items.findChild("item");
mXmppConnectionService.processMdsItem(account, item);
} else {
- Log.d(Config.LOGTAG, account.getJid().asBareJid() + " received pubsub notification for node=" + node);
+ Log.d(
+ Config.LOGTAG,
+ account.getJid().asBareJid()
+ + " received pubsub notification for node="
+ + node);
}
}
@@ -3074,7 +3074,9 @@ public class XmppConnection implements Runnable {
}
public boolean mds() {
- return pepPublishOptions() && pepConfigNodeMax();
+ return pepPublishOptions()
+ && pepConfigNodeMax()
+ && Config.MESSAGE_DISPLAYED_SYNCHRONIZATION;
}
public boolean mdsServerAssist() {