/** * Notification that a Group user has been deleted. Update the group users' roster accordingly. * * @param group the group from where the user was deleted. * @param deletedUser the username of the user that has been deleted from the group. */ private void groupUserDeleted(Group group, JID deletedUser) { groupUserDeleted(group, getAffectedUsers(group), deletedUser); }
@Override public void groupDeleting(Group group, Map params) { // Get group members Collection<JID> users = new HashSet<>(group.getMembers()); users.addAll(group.getAdmins()); // Get users whose roster will be updated Collection<JID> affectedUsers = getAffectedUsers(group); // Iterate on group members and update rosters of affected users for (JID deletedUser : users) { groupUserDeleted(group, affectedUsers, deletedUser); } }
@Override public void adminRemoved(Group group, Map params) { JID deletedUser = new JID((String) params.get("admin")); // Do nothing if the user is still a member if (group.getMembers().contains(deletedUser)) { return; } // Do nothing if the group is not being shown in group members' rosters if (!isSharedGroup(group)) { for (Group visibleGroup : getVisibleGroups(group)) { // Get the list of affected users Collection<JID> users = new HashSet<>(visibleGroup.getMembers()); users.addAll(visibleGroup.getAdmins()); groupUserDeleted(visibleGroup, users, deletedUser); } } else { groupUserDeleted(group, deletedUser); } }
@Override public void memberRemoved(Group group, Map params) { String member = (String) params.get("member"); if (member == null) { return; } JID deletedUser = new JID(member); // Do nothing if the user is still an admin if (group.getAdmins().contains(deletedUser)) { return; } if (!isSharedGroup(group)) { for (Group visibleGroup : getVisibleGroups(group)) { // Get the list of affected users Collection<JID> users = new HashSet<>(visibleGroup.getMembers()); users.addAll(visibleGroup.getAdmins()); groupUserDeleted(visibleGroup, users, deletedUser); } } else { groupUserDeleted(group, deletedUser); } }
groupUserDeleted(group, affectedUsers, deletedUser); groupUserDeleted(group, affectedUsers, deletedUser);
/** * Notification that a Group user has been deleted. Update the group users' roster accordingly. * * @param group the group from where the user was deleted. * @param deletedUser the username of the user that has been deleted from the group. */ private void groupUserDeleted(Group group, JID deletedUser) { groupUserDeleted(group, getAffectedUsers(group), deletedUser); }
@Override public void groupDeleting(Group group, Map params) { // Get group members Collection<JID> users = new HashSet<>(group.getMembers()); users.addAll(group.getAdmins()); // Get users whose roster will be updated Collection<JID> affectedUsers = getAffectedUsers(group); // Iterate on group members and update rosters of affected users for (JID deletedUser : users) { groupUserDeleted(group, affectedUsers, deletedUser); } }
@Override public void adminRemoved(Group group, Map params) { JID deletedUser = new JID((String) params.get("admin")); // Do nothing if the user is still a member if (group.getMembers().contains(deletedUser)) { return; } // Do nothing if the group is not being shown in group members' rosters if (!isSharedGroup(group)) { for (Group visibleGroup : getVisibleGroups(group)) { // Get the list of affected users Collection<JID> users = new HashSet<>(visibleGroup.getMembers()); users.addAll(visibleGroup.getAdmins()); groupUserDeleted(visibleGroup, users, deletedUser); } } else { groupUserDeleted(group, deletedUser); } }
@Override public void memberRemoved(Group group, Map params) { String member = (String) params.get("member"); if (member == null) { return; } JID deletedUser = new JID(member); // Do nothing if the user is still an admin if (group.getAdmins().contains(deletedUser)) { return; } if (!isSharedGroup(group)) { for (Group visibleGroup : getVisibleGroups(group)) { // Get the list of affected users Collection<JID> users = new HashSet<>(visibleGroup.getMembers()); users.addAll(visibleGroup.getAdmins()); groupUserDeleted(visibleGroup, users, deletedUser); } } else { groupUserDeleted(group, deletedUser); } }
groupUserDeleted(group, affectedUsers, deletedUser); groupUserDeleted(group, affectedUsers, deletedUser);