1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2025-09-11 18:19:38 +02:00

getInstanceFor() for ChatManager and AccountManager

This commit is contained in:
Florian Schmaus 2014-03-17 20:46:08 +01:00
parent 6197f6200f
commit 4db967079f
9 changed files with 97 additions and 102 deletions

View file

@ -21,6 +21,7 @@ import java.util.Map;
import java.util.WeakHashMap;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.ChatManagerListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.Manager;
@ -80,10 +81,13 @@ public class ChatStateManager extends Manager {
*/
private final Map<Chat, ChatState> chatStates = new WeakHashMap<Chat, ChatState>();
private final ChatManager chatManager;
private ChatStateManager(XMPPConnection connection) {
super(connection);
connection.getChatManager().addOutgoingMessageInterceptor(outgoingInterceptor, filter);
connection.getChatManager().addChatListener(incomingInterceptor);
chatManager = ChatManager.getInstanceFor(connection);
chatManager.addOutgoingMessageInterceptor(outgoingInterceptor, filter);
chatManager.addChatListener(incomingInterceptor);
ServiceDiscoveryManager.getInstanceFor(connection).addFeature(NAMESPACE);
INSTANCES.put(connection, this);
@ -148,7 +152,7 @@ public class ChatStateManager extends Manager {
public void interceptPacket(Packet packet) {
Message message = (Message) packet;
Chat chat = connection().getChatManager().getThreadChat(message.getThread());
Chat chat = chatManager.getThreadChat(message.getThread());
if (chat == null) {
return;
}

View file

@ -34,6 +34,7 @@ import java.util.logging.Logger;
import org.jivesoftware.smack.AbstractConnectionListener;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.ConnectionCreationListener;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.PacketCollector;
@ -1627,7 +1628,7 @@ public class MultiUserChat {
* @return new Chat for sending private messages to a given room occupant.
*/
public Chat createPrivateChat(String occupant, MessageListener listener) {
return connection.getChatManager().createChat(occupant, listener);
return ChatManager.getInstanceFor(connection).createChat(occupant, listener);
}
/**