public final class MultiUserChatManager extends Manager
Use getMultiUserChat(EntityBareJid)
to retrieve an object representing a Multi-User Chat room.
Automatic rejoin: The manager supports automatic rejoin of MultiUserChat rooms once the connection got
re-established. This mechanism is disabled by default. To enable it, use setAutoJoinOnReconnect(boolean)
.
You can set a AutoJoinFailedCallback
via setAutoJoinFailedCallback(AutoJoinFailedCallback)
to get
notified if this mechanism failed for some reason. Note that as soon as rejoining for a single room failed, no
further attempts will be made for the other rooms.
Modifier and Type | Method and Description |
---|---|
void |
addInvitationListener(InvitationListener listener)
Adds a listener to invitation notifications.
|
void |
decline(org.jxmpp.jid.EntityBareJid room,
org.jxmpp.jid.EntityBareJid inviter,
String reason)
Informs the sender of an invitation that the invitee declines the invitation.
|
List<HostedRoom> |
getHostedRooms(org.jxmpp.jid.DomainBareJid serviceName)
Deprecated.
use
getRoomsHostedBy(DomainBareJid) instead. |
static MultiUserChatManager |
getInstanceFor(XMPPConnection connection)
Get a instance of a multi user chat manager for the given connection.
|
Set<org.jxmpp.jid.EntityBareJid> |
getJoinedRooms()
Returns a Set of the rooms where the user has joined.
|
List<org.jxmpp.jid.EntityBareJid> |
getJoinedRooms(org.jxmpp.jid.EntityJid user)
Returns a List of the rooms where the requested user has joined.
|
List<org.jxmpp.jid.DomainBareJid> |
getMucServiceDomains()
Returns a collection with the XMPP addresses of the Multi-User Chat services.
|
MultiUserChat |
getMultiUserChat(org.jxmpp.jid.EntityBareJid jid)
Creates a multi user chat.
|
RoomInfo |
getRoomInfo(org.jxmpp.jid.EntityBareJid room)
Returns the discovered information of a given room without actually having to join the room.
|
Map<org.jxmpp.jid.EntityBareJid,HostedRoom> |
getRoomsHostedBy(org.jxmpp.jid.DomainBareJid serviceName)
Returns a Map of HostedRooms where each HostedRoom has the XMPP address of the room and the room's name.
|
List<org.jxmpp.jid.DomainBareJid> |
getXMPPServiceDomains()
Deprecated.
use
getMucServiceDomains() instead. |
boolean |
isServiceEnabled(org.jxmpp.jid.Jid user)
Returns true if the specified user supports the Multi-User Chat protocol.
|
boolean |
providesMucService(org.jxmpp.jid.DomainBareJid domainBareJid)
Check if the provided domain bare JID provides a MUC service.
|
void |
removeInvitationListener(InvitationListener listener)
Removes a listener to invitation notifications.
|
void |
setAutoJoinFailedCallback(AutoJoinFailedCallback failedCallback)
Set a callback invoked by this manager when automatic join on reconnect failed.
|
void |
setAutoJoinOnReconnect(boolean autoJoin)
If automatic join on reconnect is enabled, then the manager will try to auto join MUC rooms after the connection
got re-established.
|
connection, getAuthenticatedConnectionOrThrow, schedule
public static MultiUserChatManager getInstanceFor(XMPPConnection connection)
connection
- public MultiUserChat getMultiUserChat(org.jxmpp.jid.EntityBareJid jid)
join
the chat room. On some server implementations, the room will not be
created until the first person joins it.
Most XMPP servers use a sub-domain for the chat service (eg chat.example.com for the XMPP server example.com). You must ensure that the room address you're trying to connect to includes the proper chat sub-domain.
jid
- the name of the room in the form "roomName@service", where "service" is the hostname at which the
multi-user chat service is running. Make sure to provide a valid JID.public boolean isServiceEnabled(org.jxmpp.jid.Jid user) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
user
- the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com.XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
public Set<org.jxmpp.jid.EntityBareJid> getJoinedRooms()
public List<org.jxmpp.jid.EntityBareJid> getJoinedRooms(org.jxmpp.jid.EntityJid user) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
user
- the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com.XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
public RoomInfo getRoomInfo(org.jxmpp.jid.EntityBareJid room) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
room
- the name of the room in the form "roomName@service" of which we want to discover its information.XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
public List<org.jxmpp.jid.DomainBareJid> getMucServiceDomains() throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
@Deprecated public List<org.jxmpp.jid.DomainBareJid> getXMPPServiceDomains() throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
getMucServiceDomains()
instead.XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
public boolean providesMucService(org.jxmpp.jid.DomainBareJid domainBareJid) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
domainBareJid
- the domain bare JID to check.true
if the provided JID provides a MUC service, false
otherwise.SmackException.NoResponseException
XMPPException.XMPPErrorException
SmackException.NotConnectedException
InterruptedException
@Deprecated public List<HostedRoom> getHostedRooms(org.jxmpp.jid.DomainBareJid serviceName) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, MultiUserChatException.NotAMucServiceException
getRoomsHostedBy(DomainBareJid)
instead.serviceName
- the service that is hosting the rooms to discover.XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
MultiUserChatException.NotAMucServiceException
public Map<org.jxmpp.jid.EntityBareJid,HostedRoom> getRoomsHostedBy(org.jxmpp.jid.DomainBareJid serviceName) throws SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, MultiUserChatException.NotAMucServiceException
serviceName
- the service that is hosting the rooms to discover.XMPPException.XMPPErrorException
SmackException.NoResponseException
SmackException.NotConnectedException
InterruptedException
MultiUserChatException.NotAMucServiceException
public void decline(org.jxmpp.jid.EntityBareJid room, org.jxmpp.jid.EntityBareJid inviter, String reason) throws SmackException.NotConnectedException, InterruptedException
room
- the room that sent the original invitation.inviter
- the inviter of the declined invitation.reason
- the reason why the invitee is declining the invitation.SmackException.NotConnectedException
InterruptedException
public void addInvitationListener(InvitationListener listener)
listener
- an invitation listener.public void removeInvitationListener(InvitationListener listener)
listener
- an invitation listener.public void setAutoJoinOnReconnect(boolean autoJoin)
autoJoin
- true
to enable, false
to disable.public void setAutoJoinFailedCallback(AutoJoinFailedCallback failedCallback)
null
,then automatic rejoin get also enabled.failedCallback
- the callback.