diff options
author | Will Thompson <will.thompson@collabora.co.uk> | 2011-08-15 16:40:01 +0100 |
---|---|---|
committer | Will Thompson <will.thompson@collabora.co.uk> | 2011-08-16 12:07:39 +0100 |
commit | 1fe8255709572fe97a338d848d419965a7dc1338 (patch) | |
tree | d39e34a5652efc4c5839fc4889a8f71ed6c21b34 /src/connection-contact-info.c | |
parent | 246f3bc72ba494c640f3db1fd8dacd92fd24e42e (diff) | |
download | telepathy-salut-1fe8255709572fe97a338d848d419965a7dc1338.tar.gz |
ContactInfo: implement change notification
Diffstat (limited to 'src/connection-contact-info.c')
-rw-r--r-- | src/connection-contact-info.c | 27 |
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, |