#include "empathy-tp-chat.h"
#include "empathy-chatroom-manager.h"
+#include "empathy-account-manager.h"
#include "empathy-utils.h"
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
{
GList *chatrooms;
gchar *file;
+ EmpathyAccountManager *account_manager;
/* source id of the autosave timer */
gint save_timer_id;
} EmpathyChatroomManagerPriv;
priv = GET_PRIV (object);
+ g_object_unref (priv->account_manager);
+
if (priv->save_timer_id > 0)
{
/* have to save before destroy the object */
chatroom_manager_singleton = self;
g_object_add_weak_pointer (obj, (gpointer) &chatroom_manager_singleton);
+ priv->account_manager = empathy_account_manager_dup_singleton ();
+
if (priv->file == NULL)
{
/* Set the default file path */
static void
chatroom_manager_chat_destroyed_cb (EmpathyTpChat *chat,
- gpointer user_data)
+ gpointer manager)
{
- EmpathyChatroomManager *manager = EMPATHY_CHATROOM_MANAGER (user_data);
- McAccount *account = empathy_tp_chat_get_account (chat);
+ EmpathyChatroomManagerPriv *priv = GET_PRIV (manager);
+ McAccount *account;
+ TpConnection *connection;
EmpathyChatroom *chatroom;
const gchar *roomname;
gboolean favorite;
+ connection = empathy_tp_chat_get_connection (chat);
+ account = empathy_account_manager_get_account (priv->account_manager,
+ connection);
roomname = empathy_tp_chat_get_id (chat);
chatroom = empathy_chatroom_manager_find (manager, account, roomname);
static void
chatroom_manager_observe_channel_cb (EmpathyDispatcher *dispatcher,
- EmpathyDispatchOperation *operation, gpointer user_data)
+ EmpathyDispatchOperation *operation, gpointer manager)
{
- EmpathyChatroomManager *manager = EMPATHY_CHATROOM_MANAGER (user_data);
+ EmpathyChatroomManagerPriv *priv = GET_PRIV (manager);
EmpathyChatroom *chatroom;
TpChannel *channel;
EmpathyTpChat *chat;
GQuark channel_type;
TpHandleType handle_type;
McAccount *account;
+ TpConnection *connection;
channel_type = empathy_dispatch_operation_get_channel_type_id (operation);
chat = EMPATHY_TP_CHAT (
empathy_dispatch_operation_get_channel_wrapper (operation));
- account = empathy_tp_chat_get_account (chat);
+ connection = empathy_tp_chat_get_connection (chat);
+ account = empathy_account_manager_get_account (priv->account_manager,
+ connection);
roomname = empathy_tp_chat_get_id (chat);