Merge pull request #496 from damencho/fix-destroy-4.4

fix: Fixes processing destroy unavailable presence.
This commit is contained in:
Florian Schmaus 2021-10-19 14:09:27 +02:00 committed by GitHub
commit ad6e285346
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 13 deletions

View File

@ -259,23 +259,24 @@ public class MultiUserChat {
listener.left(from); listener.left(from);
} }
} }
}
Destroy destroy = mucUser.getDestroy(); Destroy destroy = mucUser.getDestroy();
// The room has been destroyed. // The room has been destroyed.
if (destroy != null) { if (destroy != null) {
EntityBareJid alternateMucJid = destroy.getJid(); EntityBareJid alternateMucJid = destroy.getJid();
final MultiUserChat alternateMuc; final MultiUserChat alternateMuc;
if (alternateMucJid == null) { if (alternateMucJid == null) {
alternateMuc = null; alternateMuc = null;
} else { } else {
alternateMuc = multiUserChatManager.getMultiUserChat(alternateMucJid); alternateMuc = multiUserChatManager.getMultiUserChat(alternateMucJid);
} }
for (UserStatusListener listener : userStatusListeners) { for (UserStatusListener listener : userStatusListeners) {
listener.roomDestroyed(alternateMuc, destroy.getReason()); listener.roomDestroyed(alternateMuc, destroy.getReason());
}
} }
} }
if (isUserStatusModification) { if (isUserStatusModification) {
for (UserStatusListener listener : userStatusListeners) { for (UserStatusListener listener : userStatusListeners) {
listener.removed(mucUser, presence); listener.removed(mucUser, presence);