fixed condition to accept lmc if user reference exists

This commit is contained in:
Daniel Gultsch 2018-04-14 14:55:51 +02:00
parent db8bd7b596
commit 32a105fa1c
2 changed files with 3 additions and 9 deletions

View file

@ -430,7 +430,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
} }
message.markable = packet.hasChild("markable", "urn:xmpp:chat-markers:0"); message.markable = packet.hasChild("markable", "urn:xmpp:chat-markers:0");
if (conversationMultiMode) { if (conversationMultiMode) {
message.setMucUser(conversation.getMucOptions().findUserByFullJid(message.getCounterpart())); message.setMucUser(conversation.getMucOptions().findUserByFullJid(counterpart));
final Jid fallback = conversation.getMucOptions().getTrueCounterpart(counterpart); final Jid fallback = conversation.getMucOptions().getTrueCounterpart(counterpart);
Jid trueCounterpart; Jid trueCounterpart;
if (message.getEncryption() == Message.ENCRYPTION_AXOLOTL) { if (message.getEncryption() == Message.ENCRYPTION_AXOLOTL) {
@ -464,7 +464,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
&& replacedMessage.getTrueCounterpart().equals(message.getTrueCounterpart()); && replacedMessage.getTrueCounterpart().equals(message.getTrueCounterpart());
final boolean mucUserMatches = query == null && replacedMessage.sameMucUser(message); //can not be checked when using mam final boolean mucUserMatches = query == null && replacedMessage.sameMucUser(message); //can not be checked when using mam
final boolean duplicate = conversation.hasDuplicateMessage(message); final boolean duplicate = conversation.hasDuplicateMessage(message);
if (fingerprintsMatch && (trueCountersMatch || !conversationMultiMode || !mucUserMatches) && !duplicate) { if (fingerprintsMatch && (trueCountersMatch || !conversationMultiMode || mucUserMatches) && !duplicate) {
Log.d(Config.LOGTAG, "replaced message '" + replacedMessage.getBody() + "' with '" + message.getBody() + "'"); Log.d(Config.LOGTAG, "replaced message '" + replacedMessage.getBody() + "' with '" + message.getBody() + "'");
synchronized (replacedMessage) { synchronized (replacedMessage) {
final String uuid = replacedMessage.getUuid(); final String uuid = replacedMessage.getUuid();

View file

@ -1608,13 +1608,7 @@ public class XmppConnectionService extends Service {
public boolean isConversationsListEmpty(final Conversation ignore) { public boolean isConversationsListEmpty(final Conversation ignore) {
synchronized (this.conversations) { synchronized (this.conversations) {
final int size = this.conversations.size(); final int size = this.conversations.size();
if (size == 0) { return size == 0 || size == 1 && this.conversations.get(0) == ignore;
return true;
} else if (size == 1) {
return this.conversations.get(0) == ignore;
} else {
return false;
}
} }
} }