mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-23 14:52:06 +01:00
Adds ability to listen for possible errors while sending the room configuration form.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@2329 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
0e938bfe1a
commit
0b49cbc374
1 changed files with 20 additions and 8 deletions
|
@ -357,7 +357,7 @@ public class MultiUserChat {
|
||||||
* decide to create a new room or not.
|
* decide to create a new room or not.
|
||||||
*
|
*
|
||||||
* @param nickname the nickname to use.
|
* @param nickname the nickname to use.
|
||||||
* @param timeout the number of seconds to wait for reply from the group chat server.
|
* @param timeout the amount of time to wait for a reply from the MUC service(in milleseconds).
|
||||||
* @param password the password to use.
|
* @param password the password to use.
|
||||||
* @param maxchars the total number of characters to receive in the history.
|
* @param maxchars the total number of characters to receive in the history.
|
||||||
* @param maxstanzas the total number of messages to receive in the history.
|
* @param maxstanzas the total number of messages to receive in the history.
|
||||||
|
@ -485,7 +485,7 @@ public class MultiUserChat {
|
||||||
iq.setTo(room);
|
iq.setTo(room);
|
||||||
iq.setType(IQ.Type.GET);
|
iq.setType(IQ.Type.GET);
|
||||||
|
|
||||||
// Wait for a presence packet back from the server.
|
// Filter packets looking for an answer from the server.
|
||||||
PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID());
|
PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID());
|
||||||
PacketCollector response = connection.createPacketCollector(responseFilter);
|
PacketCollector response = connection.createPacketCollector(responseFilter);
|
||||||
// Request the configuration form to the server.
|
// Request the configuration form to the server.
|
||||||
|
@ -518,11 +518,22 @@ public class MultiUserChat {
|
||||||
iq.setType(IQ.Type.SET);
|
iq.setType(IQ.Type.SET);
|
||||||
iq.addExtension(form.getDataFormToSend());
|
iq.addExtension(form.getDataFormToSend());
|
||||||
|
|
||||||
|
// Filter packets looking for an answer from the server.
|
||||||
|
PacketFilter responseFilter = new PacketIDFilter(iq.getPacketID());
|
||||||
|
PacketCollector response = connection.createPacketCollector(responseFilter);
|
||||||
// Send the completed configuration form to the server.
|
// Send the completed configuration form to the server.
|
||||||
connection.sendPacket(iq);
|
connection.sendPacket(iq);
|
||||||
|
// Wait up to a certain number of seconds for a reply.
|
||||||
|
IQ answer = (IQ) response.nextResult(SmackConfiguration.getPacketReplyTimeout());
|
||||||
|
// Stop queuing results
|
||||||
|
response.cancel();
|
||||||
|
|
||||||
// TODO Check for possible returned errors? permission errors?
|
if (answer == null) {
|
||||||
// TODO Check that the form is of type "submit" or "cancel"
|
throw new XMPPException("No response from server.");
|
||||||
|
}
|
||||||
|
else if (answer.getError() != null) {
|
||||||
|
throw new XMPPException(answer.getError());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1882,11 +1893,11 @@ public class MultiUserChat {
|
||||||
*
|
*
|
||||||
* <tr><td>Moderator</td><td>Participant</td><td>moderatorRevoked</td></tr>
|
* <tr><td>Moderator</td><td>Participant</td><td>moderatorRevoked</td></tr>
|
||||||
* <tr><td>Participant</td><td>Visitor</td><td>voiceRevoked</td></tr>
|
* <tr><td>Participant</td><td>Visitor</td><td>voiceRevoked</td></tr>
|
||||||
* <tr><td>Visitor</td><td>None</td><td>--</td></tr>
|
* <tr><td>Visitor</td><td>None</td><td>kicked</td></tr>
|
||||||
*
|
*
|
||||||
* <tr><td>Moderator</td><td>Visitor</td><td>voiceRevoked + moderatorRevoked</td></tr>
|
* <tr><td>Moderator</td><td>Visitor</td><td>voiceRevoked + moderatorRevoked</td></tr>
|
||||||
* <tr><td>Moderator</td><td>None</td><td>voiceRevoked + moderatorRevoked</td></tr>
|
* <tr><td>Moderator</td><td>None</td><td>kicked</td></tr>
|
||||||
* <tr><td>Participant</td><td>None</td><td>voiceRevoked</td></tr>
|
* <tr><td>Participant</td><td>None</td><td>kicked</td></tr>
|
||||||
* </table>
|
* </table>
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -1986,6 +1997,7 @@ public class MultiUserChat {
|
||||||
* <tr><td>Owner</td><td>Member</td><td>ownershipRevoked + membershipGranted</td></tr>
|
* <tr><td>Owner</td><td>Member</td><td>ownershipRevoked + membershipGranted</td></tr>
|
||||||
* <tr><td>Owner</td><td>None</td><td>ownershipRevoked</td></tr>
|
* <tr><td>Owner</td><td>None</td><td>ownershipRevoked</td></tr>
|
||||||
* <tr><td>Admin</td><td>None</td><td>adminRevoked</td></tr>
|
* <tr><td>Admin</td><td>None</td><td>adminRevoked</td></tr>
|
||||||
|
* <tr><td><i>Anyone</i></td><td>Outcast</td><td>banned</td></tr>
|
||||||
* </table>
|
* </table>
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -2110,7 +2122,7 @@ public class MultiUserChat {
|
||||||
userHasLeft();
|
userHasLeft();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// TODO Check is we have to send the JID of the banned user
|
// TODO Check if we have to send the JID of the banned user
|
||||||
fireParticipantStatusListeners("banned", from);
|
fireParticipantStatusListeners("banned", from);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue