summaryrefslogtreecommitdiff
path: root/libempathy/empathy-contact.c
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@gmail.com>2010-05-26 11:34:06 +0200
committerXavier Claessens <xclaesse@gmail.com>2010-05-26 11:34:06 +0200
commitea03354dacd0da472875bb64d0f2d8c124f3193b (patch)
tree8e0f1d852609ec5a33b5e69f64a8fbb6a61b076a /libempathy/empathy-contact.c
parent986064a03ac759da8e87d085b8941444c8b57c5a (diff)
downloadempathy-ea03354dacd0da472875bb64d0f2d8c124f3193b.tar.gz
Move empathy_tp_contact_factory_set_alias() to EmpathyContact
Diffstat (limited to 'libempathy/empathy-contact.c')
-rw-r--r--libempathy/empathy-contact.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index d76452891..bd8a63efa 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -618,6 +618,44 @@ empathy_contact_set_name (EmpathyContact *contact,
g_object_unref (contact);
}
+static void
+contact_set_aliases_cb (TpConnection *connection,
+ const GError *error,
+ gpointer user_data,
+ GObject *weak_object)
+{
+ if (error)
+ DEBUG ("Error: %s", error->message);
+}
+
+void
+empathy_contact_set_alias (EmpathyContact *contact,
+ const gchar *alias)
+{
+ TpConnection *connection;
+ GHashTable *new_alias;
+ guint handle;
+
+ g_return_if_fail (EMPATHY_IS_CONTACT (contact));
+
+ handle = empathy_contact_get_handle (contact);
+
+ DEBUG ("Setting alias for contact %s (%d) to %s",
+ empathy_contact_get_id (contact),
+ handle, alias);
+
+ new_alias = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
+ g_free);
+
+ g_hash_table_insert (new_alias, GUINT_TO_POINTER (handle), g_strdup (alias));
+
+ connection = empathy_contact_get_connection (contact);
+ tp_cli_connection_interface_aliasing_call_set_aliases (connection, -1,
+ new_alias, contact_set_aliases_cb, NULL, NULL, NULL);
+
+ g_hash_table_destroy (new_alias);
+}
+
EmpathyAvatar *
empathy_contact_get_avatar (EmpathyContact *contact)
{