mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-12-12 05:51:08 +01:00
Improve MUC message and presence listeners
instead of using a PacketListener, which means that the user has to downcast the Packet to Message, we now use a Listener which callback parameter is already Message/Presence. It is necessary to introduce MessageListener and PresenceListener, which are interfaces that have a callback for Message/Presence instead of Packet. The 'old' MessageListener is renamed to ChatMessageListener. Use Generics in ConnectionDetachedPacketCollector.
This commit is contained in:
parent
38582eed84
commit
e835df5641
13 changed files with 178 additions and 65 deletions
|
|
@ -18,14 +18,14 @@
|
|||
package org.jivesoftware.smackx.chatstates;
|
||||
|
||||
import org.jivesoftware.smack.Chat;
|
||||
import org.jivesoftware.smack.MessageListener;
|
||||
import org.jivesoftware.smack.ChatMessageListener;
|
||||
|
||||
/**
|
||||
* Events for when the state of a user in a chat changes.
|
||||
*
|
||||
* @author Alexander Wenckus
|
||||
*/
|
||||
public interface ChatStateListener extends MessageListener {
|
||||
public interface ChatStateListener extends ChatMessageListener {
|
||||
|
||||
/**
|
||||
* Fired when the state of a chat with another user changes.
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ import java.util.WeakHashMap;
|
|||
import org.jivesoftware.smack.Chat;
|
||||
import org.jivesoftware.smack.ChatManager;
|
||||
import org.jivesoftware.smack.ChatManagerListener;
|
||||
import org.jivesoftware.smack.ChatMessageListener;
|
||||
import org.jivesoftware.smack.SmackException.NotConnectedException;
|
||||
import org.jivesoftware.smack.XMPPConnection;
|
||||
import org.jivesoftware.smack.Manager;
|
||||
import org.jivesoftware.smack.MessageListener;
|
||||
import org.jivesoftware.smack.PacketInterceptor;
|
||||
import org.jivesoftware.smack.filter.NotFilter;
|
||||
import org.jivesoftware.smack.filter.PacketExtensionFilter;
|
||||
|
|
@ -143,7 +143,7 @@ public class ChatStateManager extends Manager {
|
|||
}
|
||||
|
||||
private void fireNewChatState(Chat chat, ChatState state) {
|
||||
for (MessageListener listener : chat.getListeners()) {
|
||||
for (ChatMessageListener listener : chat.getListeners()) {
|
||||
if (listener instanceof ChatStateListener) {
|
||||
((ChatStateListener) listener).stateChanged(chat, state);
|
||||
}
|
||||
|
|
@ -164,7 +164,7 @@ public class ChatStateManager extends Manager {
|
|||
}
|
||||
}
|
||||
|
||||
private class IncomingMessageInterceptor implements ChatManagerListener, MessageListener {
|
||||
private class IncomingMessageInterceptor implements ChatManagerListener, ChatMessageListener {
|
||||
|
||||
public void chatCreated(final Chat chat, boolean createdLocally) {
|
||||
chat.addMessageListener(this);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue