|
Jitsi: the OpenSource Java VoIP and Instant Messaging client. | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.java.sip.communicator.service.protocol.AbstractOperationSetPersistentPresence<ProtocolProviderServiceJabberImpl>
net.java.sip.communicator.impl.protocol.jabber.OperationSetPersistentPresenceJabberImpl
public class OperationSetPersistentPresenceJabberImpl
The Jabber implementation of a Persistent Presence Operation set. This class manages our own presence status as well as subscriptions for the presence status of our buddies. It also offers methods for retrieving and modifying the buddy contact list and adding listeners for changes in its layout.
| Nested Class Summary | |
|---|---|
(package private) class |
OperationSetPersistentPresenceJabberImpl.ContactChangesListener
Manage changes of statuses by resource. |
| Field Summary |
|---|
| Fields inherited from class net.java.sip.communicator.service.protocol.AbstractOperationSetPersistentPresence |
|---|
parentProvider |
| Constructor Summary | |
|---|---|
OperationSetPersistentPresenceJabberImpl(ProtocolProviderServiceJabberImpl provider)
Creates the OperationSet. |
|
| Method Summary | |
|---|---|
void |
addServerStoredGroupChangeListener(ServerStoredGroupListener listener)
Registers a listener that would receive events upon changes in server stored groups. |
(package private) void |
assertConnected()
Utility method throwing an exception if the stack is not properly initialized. |
void |
createAccountPhotoPresenceInterceptor()
Creates an interceptor which modifies presence packet in order to add the the element name "x" and the namespace "vcard-temp:x:update" in order to advertise the avatar SHA-1 hash. |
void |
createContactPhotoPresenceListener()
Creates a listener to call a parser which manages presence packets with the element name "x" and the namespace "vcard-temp:x:update". |
void |
createServerStoredContactGroup(ContactGroup parent,
String groupName)
Creates a group with the specified name and parent in the server stored contact list. |
Contact |
createUnresolvedContact(String address,
String persistentData)
Creates and returns a unresolved contact from the specified address and persistentData. |
Contact |
createUnresolvedContact(String address,
String persistentData,
ContactGroup parentGroup)
Creates and returns a unresolved contact from the specified address and persistentData. |
ContactGroup |
createUnresolvedContactGroup(String groupUID,
String persistentData,
ContactGroup parentGroup)
Creates and returns a unresolved contact group from the specified address and persistentData. |
ContactJabberImpl |
createVolatileContact(String id)
Creates a non persistent contact for the specified address. |
Contact |
findContactByID(String contactID)
Returns a reference to the contact with the specified ID in case we have a subscription for it and null otherwise/ |
(package private) void |
firePresenceStatusChanged(org.jivesoftware.smack.packet.Presence presence)
Fires the status change, respecting resource priorities. |
void |
fireProviderStatusChangeEvent(PresenceStatus oldStatus,
PresenceStatus newStatus)
Fires provider status change. |
String |
getCurrentStatusMessage()
Returns the status message that was confirmed by the serfver |
Contact |
getLocalContact()
Returns the protocol specific contact instance representing the local user. |
PresenceStatus |
getPresenceStatus()
Returns a PresenceStatus instance representing the state this provider is currently in. |
int |
getResourcePriority()
Returns the jabber account resource priority property value. |
ContactGroup |
getServerStoredContactListRoot()
Returns the root group of the server stored contact list. |
Iterator<PresenceStatus> |
getSupportedStatusSet()
Returns the set of PresenceStatus objects that a user of this service may request the provider to enter. |
static PresenceStatus |
jabberStatusToPresenceStatus(org.jivesoftware.smack.packet.Presence presence,
ProtocolProviderServiceJabberImpl jabberProvider)
Converts the specified jabber status to one of the status fields of the JabberStatusEnum class. |
void |
moveContactToGroup(Contact contactToMove,
ContactGroup newParent)
Removes the specified contact from its current parent and places it under newParent. |
void |
parseContactPhotoPresence(org.jivesoftware.smack.packet.Packet packet)
Parses a contact presence packet with the element name "x" and the namespace "vcard-temp:x:update", in order to decide if the SHA-1 avatar contained in the photo tag represents a new avatar for this contact. |
static org.jivesoftware.smack.packet.Presence.Mode |
presenceStatusToJabberMode(PresenceStatus status)
Converts the specified JabberStatusEnum member to the corresponding Jabber Mode |
void |
publishPresenceStatus(PresenceStatus status,
String statusMessage)
Requests the provider to enter into a status corresponding to the specified parameters. |
PresenceStatus |
queryContactStatus(String contactIdentifier)
Gets the PresenceStatus of a contact with a specific String identifier. |
void |
removeServerStoredContactGroup(ContactGroup group)
Removes the specified group from the server stored contact list. |
void |
removeServerStoredGroupChangeListener(ServerStoredGroupListener listener)
Removes the specified group change listener so that it won't receive any further events. |
void |
renameServerStoredContactGroup(ContactGroup group,
String newName)
Renames the specified group from the server stored contact list. |
void |
setAuthorizationHandler(AuthorizationHandler handler)
Handler for incoming authorization requests. |
void |
setDisplayName(Contact contact,
String newName)
Sets the display name for contact to be newName. |
void |
setResourcePriority(int resourcePriority)
Updates the jabber account resource priority property value. |
void |
subscribe(ContactGroup parent,
String contactIdentifier)
Persistently adds a subscription for the presence status of the contact corresponding to the specified contactIdentifier and indicates that it should be added to the specified group of the server stored contact list. |
void |
subscribe(String contactIdentifier)
Adds a subscription for the presence status of the contact corresponding to the specified contactIdentifier. |
void |
unsubscribe(Contact contact)
Removes a subscription for the presence status of the specified contact. |
void |
updateAccountPhotoPresenceExtension(byte[] imageBytes)
Updates the presence extension to advertise a new photo SHA-1 hash corresponding to the new avatar given in parameter. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public OperationSetPersistentPresenceJabberImpl(ProtocolProviderServiceJabberImpl provider)
provider - the parent provider.| Method Detail |
|---|
public void addServerStoredGroupChangeListener(ServerStoredGroupListener listener)
addServerStoredGroupChangeListener in interface OperationSetPersistentPresenceaddServerStoredGroupChangeListener in class AbstractOperationSetPersistentPresence<ProtocolProviderServiceJabberImpl>listener - a ServerStoredGroupChangeListener impl that would
receive events upon group changes.
public void createServerStoredContactGroup(ContactGroup parent,
String groupName)
throws OperationFailedException
parent - the group where the new group should be createdgroupName - the name of the new group to create.
OperationFailedException - if such group already existspublic ContactJabberImpl createVolatileContact(String id)
id - the address of the contact to create.
public Contact createUnresolvedContact(String address,
String persistentData,
ContactGroup parentGroup)
address - an identifier of the contact that we'll be creating.persistentData - a String returned Contact's getPersistentData()
method during a previous run and that has been persistently stored
locally.parentGroup - the group where the unresolved contact is supposed
to belong to.
public Contact createUnresolvedContact(String address,
String persistentData)
address - an identifier of the contact that we'll be creating.persistentData - a String returned Contact's getPersistentData()
method during a previous run and that has been persistently stored
locally.
public ContactGroup createUnresolvedContactGroup(String groupUID,
String persistentData,
ContactGroup parentGroup)
groupUID - an identifier, returned by ContactGroup's
getGroupUID, that the protocol provider may use in order to create
the group.persistentData - a String returned ContactGroups's
getPersistentData() method during a previous run and that has been
persistently stored locally.parentGroup - the group under which the new group is to be
created or null if this is group directly underneath the root.
public Contact findContactByID(String contactID)
contactID - a String identifier of the contact which we're
seeking a reference of.
public String getCurrentStatusMessage()
public Contact getLocalContact()
public PresenceStatus getPresenceStatus()
public ContactGroup getServerStoredContactListRoot()
public Iterator<PresenceStatus> getSupportedStatusSet()
public void moveContactToGroup(Contact contactToMove,
ContactGroup newParent)
contactToMove - the Contact to movenewParent - the ContactGroup where Contact
would be placed.
public void publishPresenceStatus(PresenceStatus status,
String statusMessage)
throws IllegalArgumentException,
IllegalStateException,
OperationFailedException
status - the PresenceStatus as returned by
getRequestableStatusSetstatusMessage - the message that should be set as the reason to
enter that status
IllegalArgumentException - if the status requested is not a
valid PresenceStatus supported by this provider.
IllegalStateException - if the provider is not currently
registered.
OperationFailedException - with code NETWORK_FAILURE if
publishing the status fails due to a network error.
public PresenceStatus queryContactStatus(String contactIdentifier)
throws IllegalArgumentException,
IllegalStateException,
OperationFailedException
contactIdentifier - the identifier of the contact whose status we're
interested in.
IllegalArgumentException - if the specified
contactIdentifier does not identify a contact known to the
underlying protocol provider
IllegalStateException - if the underlying protocol provider is not
registered/signed on a public service
OperationFailedException - with code NETWORK_FAILURE if retrieving
the status fails due to errors experienced during network communicationpublic void removeServerStoredContactGroup(ContactGroup group)
group - the group to remove.public void removeServerStoredGroupChangeListener(ServerStoredGroupListener listener)
removeServerStoredGroupChangeListener in interface OperationSetPersistentPresenceremoveServerStoredGroupChangeListener in class AbstractOperationSetPersistentPresence<ProtocolProviderServiceJabberImpl>listener - the ServerStoredGroupChangeListener to remove
public void renameServerStoredContactGroup(ContactGroup group,
String newName)
group - the group to rename.newName - the new name of the group.public void setAuthorizationHandler(AuthorizationHandler handler)
handler - an instance of an AuthorizationHandler for
authorization requests coming from other users requesting
permission add us to their contact list.
public void subscribe(ContactGroup parent,
String contactIdentifier)
throws IllegalArgumentException,
IllegalStateException,
OperationFailedException
parent - the parent group of the server stored contact list
where the contact should be added. contactIdentifier - the contact whose status updates we are
subscribing for.
IllegalArgumentException - if contact or
parent are not a contact known to the underlying protocol
provider.
IllegalStateException - if the underlying protocol provider is
not registered/signed on a public service.
OperationFailedException - with code NETWORK_FAILURE if
subscribing fails due to errors experienced during network
communication
public void subscribe(String contactIdentifier)
throws IllegalArgumentException,
IllegalStateException,
OperationFailedException
contactIdentifier - the identifier of the contact whose status
updates we are subscribing for.
IllegalArgumentException - if contact is not a contact
known to the underlying protocol provider
IllegalStateException - if the underlying protocol provider is
not registered/signed on a public service.
OperationFailedException - with code NETWORK_FAILURE if
subscribing fails due to errors experienced during network
communication
public void unsubscribe(Contact contact)
throws IllegalArgumentException,
IllegalStateException,
OperationFailedException
contact - the contact whose status updates we are unsubscribing
from.
IllegalArgumentException - if contact is not a contact
known to the underlying protocol provider
IllegalStateException - if the underlying protocol provider is
not registered/signed on a public service.
OperationFailedException - with code NETWORK_FAILURE if
unsubscribing fails due to errors experienced during network
communication
public static PresenceStatus jabberStatusToPresenceStatus(org.jivesoftware.smack.packet.Presence presence,
ProtocolProviderServiceJabberImpl jabberProvider)
presence - the Jabber StatusjabberProvider - the parent provider.
public static org.jivesoftware.smack.packet.Presence.Mode presenceStatusToJabberMode(PresenceStatus status)
status - the jabberStatus
void assertConnected()
throws IllegalStateException
IllegalStateException - if the underlying stack is not registered
and initialized.
public void fireProviderStatusChangeEvent(PresenceStatus oldStatus,
PresenceStatus newStatus)
fireProviderStatusChangeEvent in class AbstractOperationSetPersistentPresence<ProtocolProviderServiceJabberImpl>oldStatus - old statusnewStatus - new status
public void setDisplayName(Contact contact,
String newName)
throws IllegalArgumentException
setDisplayName in interface OperationSetPersistentPresencesetDisplayName in class AbstractOperationSetPersistentPresence<ProtocolProviderServiceJabberImpl>contact - the Contact that we are renamingnewName - a String containing the new display name for
metaContact.
IllegalArgumentException - if contact is not an
instance that belongs to the underlying implementation.void firePresenceStatusChanged(org.jivesoftware.smack.packet.Presence presence)
presence - the presence changed.public int getResourcePriority()
public void setResourcePriority(int resourcePriority)
resourcePriority - the new priority to setpublic void createAccountPhotoPresenceInterceptor()
public void updateAccountPhotoPresenceExtension(byte[] imageBytes)
imageBytes - The new avatar set for this account.public void createContactPhotoPresenceListener()
public void parseContactPhotoPresence(org.jivesoftware.smack.packet.Packet packet)
packet - The packet received to parse.
|
Jitsi: the OpenSource Java VoIP and Instant Messaging client. | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||