summaryrefslogtreecommitdiff
path: root/src/connection-contact-info.c
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2011-08-15 16:40:01 +0100
committerWill Thompson <will.thompson@collabora.co.uk>2011-08-16 12:07:39 +0100
commit1fe8255709572fe97a338d848d419965a7dc1338 (patch)
treed39e34a5652efc4c5839fc4889a8f71ed6c21b34 /src/connection-contact-info.c
parent246f3bc72ba494c640f3db1fd8dacd92fd24e42e (diff)
downloadtelepathy-salut-1fe8255709572fe97a338d848d419965a7dc1338.tar.gz
ContactInfo: implement change notification
Diffstat (limited to 'src/connection-contact-info.c')
-rw-r--r--src/connection-contact-info.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/connection-contact-info.c b/src/connection-contact-info.c
index 6ab65b40..a4e722a5 100644
--- a/src/connection-contact-info.c
+++ b/src/connection-contact-info.c
@@ -25,7 +25,6 @@
#include <telepathy-glib/gtypes.h>
#include "contact-manager.h"
-#include "contact.h"
enum {
PROP_CONTACT_INFO_FLAGS,
@@ -142,6 +141,16 @@ build_contact_info (
return contact_info;
}
+static GPtrArray *
+build_contact_info_for_contact (
+ SalutContact *contact)
+{
+ g_return_val_if_fail (contact != NULL, NULL);
+
+ return build_contact_info (contact->first, contact->last, contact->email,
+ contact->jid);
+}
+
static void
salut_conn_contact_info_fill_contact_attributes (
GObject *obj,
@@ -170,8 +179,7 @@ salut_conn_contact_info_fill_contact_attributes (
contact_manager, handle);
if (contact != NULL)
{
- contact_info = build_contact_info (contact->first, contact->last,
- contact->email, contact->jid);
+ contact_info = build_contact_info_for_contact (contact);
g_object_unref (contact);
}
}
@@ -195,6 +203,19 @@ void salut_conn_contact_info_init (
salut_conn_contact_info_fill_contact_attributes);
}
+void
+salut_conn_contact_info_changed (
+ SalutConnection *self,
+ SalutContact *contact,
+ TpHandle handle)
+{
+ GPtrArray *contact_info = build_contact_info_for_contact (contact);
+
+ tp_svc_connection_interface_contact_info_emit_contact_info_changed (self,
+ handle, contact_info);
+ g_boxed_free (TP_ARRAY_TYPE_CONTACT_INFO_FIELD_LIST, contact_info);
+}
+
static void
salut_conn_contact_info_refresh_contact_info (
TpSvcConnectionInterfaceContactInfo *iface,