aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-tp-chat.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-10-19 19:13:16 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-10-20 15:09:00 +0800
commitcb265f95cc5ca492f8808be0ab81d70e8e77d843 (patch)
tree473e98f477be3e3d7103286f2121af77bc6308b3 /libempathy/empathy-tp-chat.c
parent3e908f6ba9caefd06a6fbedb7dae55c3a71b9f44 (diff)
downloadgsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.tar
gsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.tar.gz
gsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.tar.bz2
gsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.tar.lz
gsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.tar.xz
gsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.tar.zst
gsoc2013-empathy-cb265f95cc5ca492f8808be0ab81d70e8e77d843.zip
tp-chat: stop using EmpathyDispatcher to check if Conference is supported
Diffstat (limited to 'libempathy/empathy-tp-chat.c')
-rw-r--r--libempathy/empathy-tp-chat.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index c1e911e65..f1351049a 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -30,7 +30,6 @@
#include "empathy-tp-chat.h"
#include "empathy-tp-contact-factory.h"
#include "empathy-contact-list.h"
-#include "empathy-dispatcher.h"
#include "empathy-marshal.h"
#include "empathy-time.h"
#include "empathy-utils.h"
@@ -1272,6 +1271,9 @@ tp_chat_constructor (GType type,
G_CALLBACK (tp_chat_invalidated_cb),
chat, 0);
+ g_assert (tp_proxy_is_prepared (priv->connection,
+ TP_CONNECTION_FEATURE_CAPABILITIES));
+
if (tp_proxy_has_interface_by_id (priv->channel,
TP_IFACE_QUARK_CHANNEL_INTERFACE_GROUP)) {
const TpIntSet *members;
@@ -1295,8 +1297,9 @@ tp_chat_constructor (GType type,
tp_g_signal_connect_object (priv->channel, "group-members-changed",
G_CALLBACK (tp_chat_group_members_changed_cb), chat, 0);
} else {
- EmpathyDispatcher *dispatcher = empathy_dispatcher_dup_singleton ();
- GList *list, *ptr;
+ TpCapabilities *caps;
+ GPtrArray *classes;
+ guint i;
/* Get the self contact from the connection's self handle */
handle = tp_connection_get_self_handle (priv->connection);
@@ -1310,13 +1313,13 @@ tp_chat_constructor (GType type,
handle, tp_chat_got_remote_contact_cb,
NULL, NULL, chat);
- list = empathy_dispatcher_find_requestable_channel_classes (
- dispatcher, priv->connection,
- tp_channel_get_channel_type (priv->channel),
- TP_UNKNOWN_HANDLE_TYPE, NULL);
+ caps = tp_connection_get_capabilities (priv->connection);
+ g_assert (caps != NULL);
+
+ classes = tp_capabilities_get_channel_classes (caps);
- for (ptr = list; ptr; ptr = ptr->next) {
- GValueArray *array = ptr->data;
+ for (i = 0; i < classes->len; i++) {
+ GValueArray *array = g_ptr_array_index (classes, i);
const char **oprops = g_value_get_boxed (
g_value_array_get_nth (array, 1));
@@ -1325,9 +1328,6 @@ tp_chat_constructor (GType type,
break;
}
}
-
- g_list_free (list);
- g_object_unref (dispatcher);
}
if (tp_proxy_has_interface_by_id (priv->channel,