#include <telepathy-glib/telepathy-glib.h>
#include <telepathy-glib/proxy-subclass.h>
-#include <libempathy/empathy-channel-factory.h>
#include <libempathy/empathy-chatroom-manager.h>
#include <libempathy/empathy-request-util.h>
#include <libempathy/empathy-utils.h>
empathy_chat_manager_init (EmpathyChatManager *self)
{
EmpathyChatManagerPriv *priv = GET_PRIV (self);
- TpDBusDaemon *dbus;
+ TpAccountManager *am;
GError *error = NULL;
- EmpathyChannelFactory *factory;
priv->closed_queue = g_queue_new ();
priv->messages = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, (GDestroyNotify) g_hash_table_unref);
- dbus = tp_dbus_daemon_dup (&error);
- if (dbus == NULL)
- {
- g_critical ("Failed to get D-Bus daemon: %s", error->message);
- g_error_free (error);
- return;
- }
+ am = tp_account_manager_dup ();
priv->chatroom_mgr = empathy_chatroom_manager_dup_singleton (NULL);
/* Text channels handler */
- priv->handler = tp_simple_handler_new (dbus, FALSE, FALSE,
+ priv->handler = tp_simple_handler_new_with_am (am, FALSE, FALSE,
EMPATHY_CHAT_BUS_NAME_SUFFIX, FALSE, handle_channels, self, NULL);
- /* EmpathyTpChat relies on these features being prepared */
- tp_base_client_add_connection_features_varargs (priv->handler,
- TP_CONNECTION_FEATURE_CAPABILITIES, 0);
- tp_base_client_add_channel_features_varargs (priv->handler,
- TP_CHANNEL_FEATURE_CHAT_STATES, 0);
-
- g_object_unref (dbus);
+ g_object_unref (am);
tp_base_client_take_handler_filter (priv->handler, tp_asv_new (
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_TEXT,
TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_NONE,
NULL));
- factory = empathy_channel_factory_dup ();
-
- tp_base_client_set_channel_factory (priv->handler,
- TP_CLIENT_CHANNEL_FACTORY (factory));
-
if (!tp_base_client_register (priv->handler, &error))
{
g_critical ("Failed to register text handler: %s", error->message);
g_error_free (error);
}
-
- g_object_unref (factory);
}
static void
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- g_cclosure_marshal_VOID__UINT,
+ g_cclosure_marshal_generic,
G_TYPE_NONE,
1, G_TYPE_UINT, NULL);
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- g_cclosure_marshal_VOID__UINT,
+ g_cclosure_marshal_generic,
G_TYPE_NONE,
1, G_TYPE_UINT, NULL);
if (data->room)
empathy_join_muc (data->account, data->id, timestamp);
else if (data->sms)
- empathy_sms_contact_id (data->account, data->id, timestamp);
+ empathy_sms_contact_id (data->account, data->id, timestamp,
+ NULL, NULL);
else
- empathy_chat_with_contact_id (data->account, data->id, timestamp);
+ empathy_chat_with_contact_id (data->account, data->id, timestamp,
+ NULL, NULL);
g_signal_emit (self, signals[CLOSED_CHATS_CHANGED], 0,
g_queue_get_length (priv->closed_queue));