[empathy] Use Account.Avatar to set our own avatar (#613043)



commit a75c2aa330535747d736c53cf69f0601fbf0f7b3
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Apr 1 12:16:10 2010 +0200

    Use Account.Avatar to set our own avatar (#613043)

 libempathy-gtk/empathy-contact-widget.c |   32 +++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 2 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index 138ec21..43688e4 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -872,18 +872,46 @@ widget_avatar_button_press_event_cb (GtkWidget *widget,
 }
 
 static void
+set_avatar_cb (GObject *source,
+    GAsyncResult *res,
+    gpointer user_data)
+{
+  GError *error = NULL;
+
+  if (!tp_account_set_avatar_finish (TP_ACCOUNT (source), res, &error)) {
+      DEBUG ("Failed to set Account.Avatar: %s", error->message);
+      g_error_free (error);
+  }
+}
+
+static void
+set_avatar_on_account (TpAccount *account,
+    const gchar *data,
+    gsize size,
+    const gchar *mime_type)
+{
+  DEBUG ("%s Account.Avatar on %s", size > 0 ? "Set": "Clear",
+      tp_proxy_get_object_path (account));
+
+  tp_account_set_avatar_async (account, (const guchar *) data, size,
+      mime_type, set_avatar_cb, NULL);
+}
+
+static void
 contact_widget_avatar_changed_cb (EmpathyAvatarChooser *chooser,
                                   EmpathyContactWidget *information)
 {
   const gchar *data;
   gsize size;
   const gchar *mime_type;
+  TpAccount *account;
 
   empathy_avatar_chooser_get_image_data (
       EMPATHY_AVATAR_CHOOSER (information->widget_avatar),
       &data, &size, &mime_type);
-  empathy_tp_contact_factory_set_avatar (information->factory,
-      data, size, mime_type);
+
+  account = empathy_contact_get_account (information->contact);
+  set_avatar_on_account (account, data, size, mime_type);
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]