private void removeRosterEntryFromGroups(RosterEntry rosterEntry) throws ClientException { Collection<RosterGroup> oldGroups = rosterEntry.getGroups(); for (RosterGroup group : oldGroups) { tryToRemoveUserFromGroup(group, rosterEntry); } }
private void syncUsers() { for (RosterEntry entry : conn.getRoster().getEntries()) { getBuddyManager() .storeBuddy( new XMPPBuddy( getBuddyManager(), entry.getUser(), entry.getName(), entry.getGroups(), entry)); // Facebook does not support presence probes in their XMPP implementation. See // http://developers.facebook.com/docs/chat#features if (!TransportType.facebook.equals(getTransport().getType())) { // ProbePacket probe = new ProbePacket(this.getJID()+"/"+xmppResource, entry.getUser()); ProbePacket probe = new ProbePacket(null, entry.getUser()); Log.debug("XMPP: Sending the following probe packet: " + probe.toXML()); try { conn.sendPacket(probe); } catch (IllegalStateException e) { Log.debug("XMPP: Not connected while trying to send probe."); } } } try { getTransport().syncLegacyRoster(getJID(), getBuddyManager().getBuddies()); } catch (UserNotFoundException ex) { Log.error("XMPP: User not found while syncing legacy roster: ", ex); } getBuddyManager().activate(); // lets repoll the roster since smack seems to get out of sync... // we'll let the roster listener take care of this though. conn.getRoster().reload(); }
@Nullable private static String getUserGroup(RosterEntry rosterEntry) { String group = null; for (RosterGroup rosterGroup : rosterEntry.getGroups()) { group = rosterGroup.getName(); } return group; }
static RosterPacket.Item toRosterItem(RosterEntry entry) { RosterPacket.Item item = new RosterPacket.Item(entry.getUser(), entry.getName()); item.setItemType(entry.getType()); item.setItemStatus(entry.getStatus()); // Set the correct group names for the item. for (RosterGroup group : entry.getGroups()) { item.addGroupName(group.getName()); } return item; }
@Override public void entriesUpdated(Collection<String> addresses) { for (final String uid : addresses) { final User user = getUser(uid, true); final RosterEntry re = mRoster.getEntry(uid); user.setUserName(re.getName()); user.setGroups(new GroupList(re.getGroups())); service.sendRosterUpdated(user); } }
/** * @see net.sf.kraken.session.TransportSession#addContact(org.xmpp.packet.JID, String, * java.util.ArrayList) */ @Override public void addContact(JID jid, String nickname, ArrayList<String> groups) { String mail = getTransport().convertJIDToID(jid); try { conn.getRoster().createEntry(mail, nickname, groups.toArray(new String[groups.size()])); RosterEntry entry = conn.getRoster().getEntry(mail); getBuddyManager() .storeBuddy(new XMPPBuddy(getBuddyManager(), mail, nickname, entry.getGroups(), entry)); } catch (XMPPException ex) { Log.debug("XMPP: unable to add:" + mail); } }
private ContentValues getContentValuesForRosterEntry(final RosterEntry entry) { final ContentValues values = new ContentValues(); values.put(RosterConstants.JID, entry.getUser()); values.put(RosterConstants.ALIAS, getName(entry)); Presence presence = mRoster.getPresence(entry.getUser()); values.put(RosterConstants.STATUS_MODE, getStatusInt(presence)); values.put(RosterConstants.STATUS_MESSAGE, presence.getStatus()); values.put(RosterConstants.GROUP, getGroup(entry.getGroups())); return values; }
private ContentValues getContentValuesForRosterEntry(final RosterEntry entry) { final ContentValues values = new ContentValues(); values.put(RosterConstants.JID, entry.getUser()); values.put(RosterConstants.ALIAS, getName(entry)); Presence presence = roster.getPresence(entry.getUser()); values.put(RosterConstants.STATUS_MODE, getStatusInt(presence)); if (presence.getType() == Presence.Type.error) { values.put(RosterConstants.STATUS_MESSAGE, presence.getError().toString()); } else values.put(RosterConstants.STATUS_MESSAGE, presence.getStatus()); values.put(RosterConstants.GROUP, getGroup(entry.getGroups())); return values; }