Smack

org.jivesoftware.smack
Interface RosterListener


public interface RosterListener

A listener that is fired any time a roster is changed or the presence of a user in the roster is changed.

Author:
Matt Tucker
See Also:
Roster.addRosterListener(RosterListener)

Method Summary
 void entriesAdded(Collection<String> addresses)
          Called when roster entries are added.
 void entriesDeleted(Collection<String> addresses)
          Called when a roster entries are removed.
 void entriesUpdated(Collection<String> addresses)
          Called when a roster entries are updated.
 void presenceChanged(Presence presence)
          Called when the presence of a roster entry is changed.
 

Method Detail

entriesAdded

void entriesAdded(Collection<String> addresses)
Called when roster entries are added.

Parameters:
addresses - the XMPP addresses of the contacts that have been added to the roster.

entriesUpdated

void entriesUpdated(Collection<String> addresses)
Called when a roster entries are updated.

Parameters:
addresses - the XMPP addresses of the contacts whose entries have been updated.

entriesDeleted

void entriesDeleted(Collection<String> addresses)
Called when a roster entries are removed.

Parameters:
addresses - the XMPP addresses of the contacts that have been removed from the roster.

presenceChanged

void presenceChanged(Presence presence)
Called when the presence of a roster entry is changed. Care should be taken when using the presence data delivered as part of this event. Specifically, when a user account is online with multiple resources, the UI should account for that. For example, say a user is online with their desktop computer and mobile phone. If the user logs out of the IM client on their mobile phone, the user should not be shown in the roster (contact list) as offline since they're still available as another resource.

To get the current "best presence" for a user after the presence update, query the roster:

    String user = presence.getFrom();
    Presence bestPresence = roster.getPresence(user);
 
That will return the presence value for the user with the highest priority and availability.

Parameters:
presence - the presence that changed.
See Also:
Roster.getPresence(String)

Smack

Copyright © 2003-2007 Jive Software.