]> git.0d.be Git - empathy.git/commitdiff
ft-handler: create EmpathyContact from TpContact
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 7 May 2012 10:00:27 +0000 (12:00 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 8 May 2012 07:13:07 +0000 (09:13 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=675597

libempathy/empathy-ft-handler.c

index effbf81bc891ab4081625f02b23c48b5b1615487..708f045df3fae187e989524398cc052d3ddb0a38 100644 (file)
@@ -1298,32 +1298,6 @@ out:
     }
 }
 
-static void
-contact_factory_contact_cb (TpConnection *connection,
-    EmpathyContact *contact,
-    const GError *error,
-    gpointer user_data,
-    GObject *weak_object)
-{
-  CallbacksData *cb_data = user_data;
-  EmpathyFTHandler *handler = EMPATHY_FT_HANDLER (weak_object);
-  EmpathyFTHandlerPriv *priv = GET_PRIV (handler);
-
-  if (error != NULL)
-    {
-      if (!g_cancellable_is_cancelled (priv->cancellable))
-        g_cancellable_cancel (priv->cancellable);
-
-      cb_data->callback (handler, (GError *) error, cb_data->user_data);
-      callbacks_data_free (cb_data);
-      return;
-    }
-
-  priv->contact = g_object_ref (contact);
-
-  cb_data->callback (handler, NULL, cb_data->user_data);
-}
-
 static void
 channel_get_all_properties_cb (TpProxy *proxy,
     GHashTable *properties,
@@ -1334,7 +1308,7 @@ channel_get_all_properties_cb (TpProxy *proxy,
   CallbacksData *cb_data = user_data;
   EmpathyFTHandler *handler = EMPATHY_FT_HANDLER (weak_object);
   EmpathyFTHandlerPriv *priv = GET_PRIV (handler);
-  TpHandle c_handle;
+  TpContact *contact;
 
   if (error != NULL)
     {
@@ -1353,11 +1327,10 @@ channel_get_all_properties_cb (TpProxy *proxy,
   priv->content_hash_type = g_value_get_uint (
       g_hash_table_lookup (properties, "ContentHashType"));
 
-  c_handle = tp_channel_get_handle (TP_CHANNEL (proxy), NULL);
-  empathy_tp_contact_factory_get_from_handle (
-      tp_channel_borrow_connection (TP_CHANNEL (proxy)), c_handle,
-      contact_factory_contact_cb, cb_data, callbacks_data_free,
-      G_OBJECT (handler));
+  contact = tp_channel_get_target_contact (TP_CHANNEL (proxy));
+  priv->contact = empathy_contact_dup_from_tp_contact (contact);
+
+  cb_data->callback (handler, NULL, cb_data->user_data);
 }
 
 /* public methods */