cmeng
January 25, 2020, 2:19am
2
aTalk has implemented the below patch for the MultipUserChat class. Without the patch, the chatRoom status is not being updated and not in sync with the actual. Also the callback roomDestroyed() is not being executed.
listener.roomDestroyed(alternateMUC, mucUser.getDestroy().getReason()).
The below patch is only for smack 4.4.0-alpha3 snapshot release i.e. Smack-4.4.0-alpha3-20190916 currently used in aTalk.
MultiUserChat.patch (5.3 KB)
The patch also fixed the shortfalls as reported in:
Smack v4.4.0-alpha3 executes callback to userStatusListeners before calling userHasLeft() i.e.
setting joined = false. This cause some problem in aTalk. Propose that ‘joined’ status be updated before the userStatusListeners callback is performed.
aTalk performs some local cleanup when the room is destroyed. In which it also do a check on
MultiUserChat.isJoined() and proceed to MultiUserChat.leave() if true, as shown in the below aTalk debug log.
2020-01-19 07:30:02.768 2078-2623/org.atalk.an…