Package rocks.xmpp.extensions.avatar
Class CombinedAvatarManager
- java.lang.Object
-
- rocks.xmpp.extensions.avatar.AbstractAvatarManager
-
- rocks.xmpp.extensions.avatar.CombinedAvatarManager
-
- All Implemented Interfaces:
AvatarManager
public final class CombinedAvatarManager extends AbstractAvatarManager
This class manages avatar updates as described in XEP-0153: vCard-Based Avatars and XEP-0084: User Avatar.Whenever an avatar update is received by a contact, either via the presence based avatar extension (XEP-0153) or the PEP-based notification (XEP-0084), the registered listeners are triggered.
By default this manager is not enabled.
This class is thread-safe.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAvatarChangeListener(Consumer<AvatarChangeEvent> avatarChangeListener)
Adds an avatar listener, to listen for avatar updates.AsyncResult<byte[]>
getAvatar(Jid contact)
Gets the user avatar from the user's vCard.AsyncResult<Void>
publishAvatar(byte[] imageData)
Publishes an avatar.void
removeAvatarChangeListener(Consumer<AvatarChangeEvent> avatarChangeListener)
Removes a previously added avatar listener.-
Methods inherited from class rocks.xmpp.extensions.avatar.AbstractAvatarManager
getAvatarImage, loadFromCache, publishAvatarImage, storeToCache
-
-
-
-
Method Detail
-
getAvatar
public final AsyncResult<byte[]> getAvatar(Jid contact)
Gets the user avatar from the user's vCard.- Parameters:
contact
- The contact.- Returns:
- The async result with the contact's avatar or null, if it has no avatar.
-
publishAvatar
public final AsyncResult<Void> publishAvatar(byte[] imageData)
Publishes an avatar.- Parameters:
imageData
- The avatar image data, which must be in PNG format.null
resets the avatar.- Returns:
- The async result.
- See Also:
- 3.1 User Publishes Avatar
-
addAvatarChangeListener
public final void addAvatarChangeListener(Consumer<AvatarChangeEvent> avatarChangeListener)
Adds an avatar listener, to listen for avatar updates.- Specified by:
addAvatarChangeListener
in interfaceAvatarManager
- Overrides:
addAvatarChangeListener
in classAbstractAvatarManager
- Parameters:
avatarChangeListener
- The avatar listener.- See Also:
AvatarManager.removeAvatarChangeListener(Consumer)
-
removeAvatarChangeListener
public final void removeAvatarChangeListener(Consumer<AvatarChangeEvent> avatarChangeListener)
Removes a previously added avatar listener.- Specified by:
removeAvatarChangeListener
in interfaceAvatarManager
- Overrides:
removeAvatarChangeListener
in classAbstractAvatarManager
- Parameters:
avatarChangeListener
- The avatar listener.- See Also:
AvatarManager.addAvatarChangeListener(Consumer)
-
-