Class AbstractRosterListener

    • Method Detail

      • presenceChanged

        public void presenceChanged​(Presence presence)
        Description copied from interface: RosterListener
        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. Note that this listener is triggered for presence (mode) changes only (e.g presence of types available and unavailable. Subscription-related presence packets will not cause this method to be called.
        Specified by:
        presenceChanged in interface RosterListener
        Parameters:
        presence - the presence that changed.
        See Also:
        Roster.getPresence(org.jxmpp.jid.BareJid)