diff --git a/src/usermanager.cpp b/src/usermanager.cpp index e783e43d3bc3bbfeafce607c101dc0ab3eef8c28..9511f3df45d8c81baf0218df2d60e4888ef8dab6 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -22,6 +22,7 @@ #include "transport/user.h" #include "transport/transport.h" #include "transport/storagebackend.h" +#include "transport/conversationmanager.h" namespace Transport { @@ -32,6 +33,7 @@ UserManager::UserManager(Component *component, StorageBackend *storageBackend) { m_storageBackend = storageBackend; component->onUserPresenceReceived.connect(bind(&UserManager::handlePresence, this, _1)); + m_component->getStanzaChannel()->onMessageReceived.connect(bind(&UserManager::handleMessageReceived, this, _1)); // component->onDiscoInfoResponse.connect(bind(&UserManager::handleDiscoInfoResponse, this, _1, _2, _3)); } @@ -144,4 +146,13 @@ void UserManager::handlePresence(Swift::Presence::ref presence) { } } +void UserManager::handleMessageReceived(Swift::Message::ref message) { + User *user = getUser(message->getFrom().toBare().toString()); + if (!user ){ + return; + } + + user->getConversationManager()->handleMessageReceived(message); +} + }