+void
+empathy_contact_factory_set_avatar (EmpathyContactFactory *factory,
+ McAccount *account,
+ const gchar *data,
+ gsize size,
+ const gchar *mime_type)
+{
+ ContactFactoryAccountData *account_data;
+ GArray avatar;
+
+ g_return_if_fail (EMPATHY_IS_CONTACT_FACTORY (factory));
+ g_return_if_fail (MC_IS_ACCOUNT (account));
+
+ account_data = contact_factory_account_data_get (factory, account);
+
+ if (!account_data->avatars_iface) {
+ return;
+ }
+
+ empathy_debug (DEBUG_DOMAIN, "Setting avatar on account %s",
+ mc_account_get_unique_name (account));
+
+ avatar.data = (gchar*) data;
+ avatar.len = size;
+ tp_conn_iface_avatars_set_avatar_async (account_data->avatars_iface,
+ &avatar,
+ mime_type,
+ contact_factory_set_avatar_cb,
+ contact_factory_account_data_ref (account_data));
+}
+