changed listener timing and cache clearing after muc presences
This commit is contained in:
parent
66abdfccd4
commit
92ad4cb736
|
@ -4,6 +4,7 @@ import eu.siacs.conversations.crypto.PgpEngine;
|
||||||
import eu.siacs.conversations.entities.Account;
|
import eu.siacs.conversations.entities.Account;
|
||||||
import eu.siacs.conversations.entities.Contact;
|
import eu.siacs.conversations.entities.Contact;
|
||||||
import eu.siacs.conversations.entities.Conversation;
|
import eu.siacs.conversations.entities.Conversation;
|
||||||
|
import eu.siacs.conversations.entities.MucOptions;
|
||||||
import eu.siacs.conversations.entities.Presences;
|
import eu.siacs.conversations.entities.Presences;
|
||||||
import eu.siacs.conversations.generator.PresenceGenerator;
|
import eu.siacs.conversations.generator.PresenceGenerator;
|
||||||
import eu.siacs.conversations.services.XmppConnectionService;
|
import eu.siacs.conversations.services.XmppConnectionService;
|
||||||
|
@ -34,15 +35,17 @@ public class PresenceParser extends AbstractParser implements
|
||||||
mXmppConnectionService.getAvatarService().clear(muc);
|
mXmppConnectionService.getAvatarService().clear(muc);
|
||||||
}
|
}
|
||||||
} else if (packet.hasChild("x", "http://jabber.org/protocol/muc")) {
|
} else if (packet.hasChild("x", "http://jabber.org/protocol/muc")) {
|
||||||
final Conversation muc = mXmppConnectionService.find(account,
|
final Conversation conversation = mXmppConnectionService.find(account,
|
||||||
packet.getFrom().toBareJid());
|
packet.getFrom().toBareJid());
|
||||||
if (muc != null) {
|
if (conversation != null) {
|
||||||
boolean before = muc.getMucOptions().online();
|
final MucOptions mucOptions = conversation.getMucOptions();
|
||||||
muc.getMucOptions().processPacket(packet, mPgpEngine);
|
boolean before = mucOptions.online();
|
||||||
if (before != muc.getMucOptions().online()) {
|
int count = mucOptions.getUsers().size();
|
||||||
|
mucOptions.processPacket(packet, mPgpEngine);
|
||||||
|
mXmppConnectionService.getAvatarService().clear(conversation);
|
||||||
|
if (before != mucOptions.online() || (mucOptions.online() && count != mucOptions.getUsers().size())) {
|
||||||
mXmppConnectionService.updateConversationUi();
|
mXmppConnectionService.updateConversationUi();
|
||||||
}
|
}
|
||||||
mXmppConnectionService.getAvatarService().clear(muc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue