fixed muc detection for rare cases where muc is hosted on primary domain

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/parser/MessageParser.java | 2 
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java  | 6 ++++
2 files changed, 7 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -310,7 +310,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
 		}
 
 		if ((body != null || pgpEncrypted != null || (axolotlEncrypted != null && axolotlEncrypted.hasChild("payload")) || oobUrl != null) && !isMucStatusMessage) {
-			final boolean conversationIsProbablyMuc = isTypeGroupChat || mucUserElement != null || account.getXmppConnection().getMucServers().contains(counterpart.getDomain());
+			final boolean conversationIsProbablyMuc = isTypeGroupChat || mucUserElement != null || account.getXmppConnection().getMucServersWithholdAccount().contains(counterpart.getDomain());
 			final Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, counterpart.asBareJid(), conversationIsProbablyMuc, false, query, false);
 			final boolean conversationMultiMode = conversation.getMode() == Conversation.MODE_MULTI;
 

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -1521,6 +1521,12 @@ public class XmppConnection implements Runnable {
 		}
 	}
 
+	public List<String> getMucServersWithholdAccount() {
+		List<String> servers = getMucServers();
+		servers.remove(account.getServer());
+		return servers;
+	}
+
 	public List<String> getMucServers() {
 		List<String> servers = new ArrayList<>();
 		synchronized (this.disco) {