Hi,
I checked your code and found that there is actually no issue. The behaviour you are getting is perfectly normal and is supposed to work like this.
In Room Adaptor, onUserLeaveRequest is called when a user calls the leave room method. As the name suggests, onUserLeaveRequest is meant to handle users' leave room requests.
In your client side code, when you call "Disconnect" button, only disconnect() method is called. No request for leaveRoom() method is made. Therefore it will never call onUserLeaveRequest() in room adaptor.
Instead onUserRemoved of zone adaptor will be called as the user has left the Zone (i.e. Application).
Thanks