Describe the bug
Consider having a CollaborationAvatarGroup with isOwnAvatarVisible() == true, and the use opens multiple tabs connecting to the same topic: the user's own avatar is displayed, but if one of those tabs is closed, a beacon is sent which triggers the removal of the user's avatar from the component in the still open tabs; this should not happen, i.e. the user's own avatar should disappear only when there are no more open tabs on the same topic.
To Reproduce
Steps to reproduce the behavior:
add a CollaborationAvatarGroup to a view and set a topic to it;
start the app and open the view in multiple browser tabs;
close one of those tabs;
notice how the avatar group is empty.
Expected behavior
The avatar group should still display the user's own avatar.
Versions
CollaborationEngine version 2.0-SNAPSHOT
Technical details and solution proposal
The CollaborationAvatarGroup should work like this:
allow duplicate user IDs in the list of users that is saved in CollaborationMap (like it already does);
when converting the users to AvatarGroupItems and passing to the actual component, it should not show duplicates;
when a connection is deactivated, the group should remove only one UserInfo with the local user's id, instead of filtering all of them out.
Describe the bug Consider having a
CollaborationAvatarGroup
withisOwnAvatarVisible() == true
, and the use opens multiple tabs connecting to the same topic: the user's own avatar is displayed, but if one of those tabs is closed, a beacon is sent which triggers the removal of the user's avatar from the component in the still open tabs; this should not happen, i.e. the user's own avatar should disappear only when there are no more open tabs on the same topic.To Reproduce Steps to reproduce the behavior:
CollaborationAvatarGroup
to a view and set a topic to it;Expected behavior The avatar group should still display the user's own avatar.
Versions
2.0-SNAPSHOT
Technical details and solution proposal The
CollaborationAvatarGroup
should work like this:CollaborationMap
(like it already does);AvatarGroupItems
and passing to the actual component, it should not show duplicates;UserInfo
with the local user's id, instead of filtering all of them out.