if (rosterManager.hasMutualVisibility(getUsername(), userGroups, deletedUser, sharedGroups)) { item.setSubStatus(RosterItem.SUB_BOTH); } else if (item.getSharedGroups().isEmpty() && !item.getInvisibleSharedGroups().isEmpty()) { item.setSubStatus(RosterItem.SUB_FROM); } else { item.setSubStatus(RosterItem.SUB_TO);
item.setSubStatus(RosterItem.SUB_BOTH); item.setSubStatus(RosterItem.SUB_BOTH); } else { item.setSubStatus(RosterItem.SUB_FROM);
item.setSubStatus(RosterItem.SUB_BOTH); item.setSubStatus(RosterItem.SUB_TO); } else if (!group.isUser(addedUser) && group.isUser(getUsername())) { item.setSubStatus(RosterItem.SUB_FROM); if (prevSubscription == RosterItem.SUB_TO && item.getSubStatus() == RosterItem.SUB_FROM) { item.setSubStatus(RosterItem.SUB_BOTH); } else if (prevSubscription == RosterItem.SUB_FROM && item.getSubStatus() == RosterItem.SUB_TO) { item.setSubStatus(RosterItem.SUB_BOTH);
item.setSubStatus(RosterItem.SUB_BOTH); } else { item.setSubStatus(RosterItem.SUB_FROM); item.setSubStatus(RosterItem.SUB_TO);
item.setSubStatus(RosterItem.SUB_BOTH); for (Group group : groups) { if (rosterManager.isGroupVisible(group, getUserJID())) { item.setSubStatus(RosterItem.SUB_FROM); item.setSubStatus(RosterItem.SUB_TO); if (prevSubscription == RosterItem.SUB_TO && item.getSubStatus() == RosterItem.SUB_FROM) { item.setSubStatus(RosterItem.SUB_BOTH); } else if (prevSubscription == RosterItem.SUB_FROM && item.getSubStatus() == RosterItem.SUB_TO) { item.setSubStatus(RosterItem.SUB_BOTH);
/** * Determine and call the update method based on the item's subscription state. * <p/> * * @param item The item to be updated * @param action The new state change request * @param isSending True if the roster owner of the item is sending the new state change request */ private static void updateState(RosterItem item, Presence.Type action, boolean isSending) { Change change = getStateChange(item.getSubStatus(), action, isSending); if (change.getNewAsk() != null && change.getNewAsk() != item.getAskStatus()) { item.setAskStatus(change.getNewAsk()); } if (change.getNewSub() != null && change.getNewSub() != item.getSubStatus()) { item.setSubStatus(change.getNewSub()); } if (change.getNewRecv() != null && change.getNewRecv() != item.getRecvStatus()) { item.setRecvStatus(change.getNewRecv()); } }
rosterItem.setAskStatus(RosterItem.ASK_NONE); rosterItem.setRecvStatus(RosterItem.RECV_NONE); rosterItem.setSubStatus(RosterItem.SUB_NONE); recipientRoster.updateRosterItem(rosterItem);
if (rosterManager.hasMutualVisibility(getUsername(), userGroups, deletedUser, sharedGroups)) { item.setSubStatus(RosterItem.SUB_BOTH); } else if (item.getSharedGroups().isEmpty() && !item.getInvisibleSharedGroups().isEmpty()) { item.setSubStatus(RosterItem.SUB_FROM); } else { item.setSubStatus(RosterItem.SUB_TO);
item.setSubStatus(RosterItem.SUB_BOTH); item.setSubStatus(RosterItem.SUB_BOTH); } else { item.setSubStatus(RosterItem.SUB_FROM);
item.setSubStatus(RosterItem.SUB_BOTH); item.setSubStatus(RosterItem.SUB_TO); } else if (!group.isUser(addedUser) && group.isUser(getUsername())) { item.setSubStatus(RosterItem.SUB_FROM); if (prevSubscription == RosterItem.SUB_TO && item.getSubStatus() == RosterItem.SUB_FROM) { item.setSubStatus(RosterItem.SUB_BOTH); } else if (prevSubscription == RosterItem.SUB_FROM && item.getSubStatus() == RosterItem.SUB_TO) { item.setSubStatus(RosterItem.SUB_BOTH);
item.setSubStatus(RosterItem.SUB_BOTH); } else { item.setSubStatus(RosterItem.SUB_FROM); item.setSubStatus(RosterItem.SUB_TO);
item.setSubStatus(RosterItem.SUB_BOTH); for (Group group : groups) { if (rosterManager.isGroupVisible(group, getUserJID())) { item.setSubStatus(RosterItem.SUB_FROM); item.setSubStatus(RosterItem.SUB_TO); if (prevSubscription == RosterItem.SUB_TO && item.getSubStatus() == RosterItem.SUB_FROM) { item.setSubStatus(RosterItem.SUB_BOTH); } else if (prevSubscription == RosterItem.SUB_FROM && item.getSubStatus() == RosterItem.SUB_TO) { item.setSubStatus(RosterItem.SUB_BOTH);
/** * Determine and call the update method based on the item's subscription state. * <p/> * * @param item The item to be updated * @param action The new state change request * @param isSending True if the roster owner of the item is sending the new state change request */ private static void updateState(RosterItem item, Presence.Type action, boolean isSending) { Change change = getStateChange(item.getSubStatus(), action, isSending); if (change.getNewAsk() != null && change.getNewAsk() != item.getAskStatus()) { item.setAskStatus(change.getNewAsk()); } if (change.getNewSub() != null && change.getNewSub() != item.getSubStatus()) { item.setSubStatus(change.getNewSub()); } if (change.getNewRecv() != null && change.getNewRecv() != item.getRecvStatus()) { item.setRecvStatus(change.getNewRecv()); } }
rosterItem.setAskStatus(RosterItem.ASK_NONE); rosterItem.setRecvStatus(RosterItem.RECV_NONE); rosterItem.setSubStatus(RosterItem.SUB_NONE); recipientRoster.updateRosterItem(rosterItem);