1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-22 14:22:05 +01:00

Add MultiUserChat.createOrJoin(String,String,DiscussionHistory,long)

This commit is contained in:
Florian Schmaus 2014-12-26 18:21:38 +01:00
parent 7874daa59b
commit 0293ca2bcd

View file

@ -357,6 +357,22 @@ public class MultiUserChat {
throw new SmackException("Creation failed - Missing acknowledge of room creation."); throw new SmackException("Creation failed - Missing acknowledge of room creation.");
} }
/**
* Same as {@link #createOrJoin(String, String, DiscussionHistory, long)}, but without a password, specifying a
* discussion history and using the connections default reply timeout.
*
* @param nickname
* @return true if the room creation was acknowledged by the service, false otherwise.
* @throws NoResponseException
* @throws XMPPErrorException
* @throws SmackException
* @see #createOrJoin(String, String, DiscussionHistory, long)
*/
public synchronized boolean createOrJoin(String nickname) throws NoResponseException, XMPPErrorException,
SmackException {
return createOrJoin(nickname, null, null, connection.getPacketReplyTimeout());
}
/** /**
* Like {@link #create(String)}, but will return true if the room creation was acknowledged by * Like {@link #create(String)}, but will return true if the room creation was acknowledged by
* the service (with an 201 status code). It's up to the caller to decide, based on the return * the service (with an 201 status code). It's up to the caller to decide, based on the return
@ -364,17 +380,21 @@ public class MultiUserChat {
* already existed and the user is able to join right away, without sending a form. * already existed and the user is able to join right away, without sending a form.
* *
* @param nickname the nickname to use. * @param nickname the nickname to use.
* @param password the password to use.
* @param history the amount of discussion history to receive while joining a room.
* @param timeout the amount of time to wait for a reply from the MUC service(in milliseconds).
* @return true if the room creation was acknowledged by the service, false otherwise. * @return true if the room creation was acknowledged by the service, false otherwise.
* @throws XMPPErrorException if the room couldn't be created for some reason (e.g. 405 error if * @throws XMPPErrorException if the room couldn't be created for some reason (e.g. 405 error if
* the user is not allowed to create the room) * the user is not allowed to create the room)
* @throws NoResponseException if there was no response from the server. * @throws NoResponseException if there was no response from the server.
*/ */
public synchronized boolean createOrJoin(String nickname) throws NoResponseException, XMPPErrorException, SmackException { public synchronized boolean createOrJoin(String nickname, String password, DiscussionHistory history, long timeout)
throws NoResponseException, XMPPErrorException, SmackException {
if (joined) { if (joined) {
throw new IllegalStateException("Creation failed - User already joined the room."); throw new IllegalStateException("Creation failed - User already joined the room.");
} }
Presence presence = enter(nickname, null, null, connection.getPacketReplyTimeout()); Presence presence = enter(nickname, password, history, timeout);
// Look for confirmation of room creation from the server // Look for confirmation of room creation from the server
MUCUser mucUser = MUCUser.from(presence); MUCUser mucUser = MUCUser.from(presence);