]> git.0d.be Git - empathy.git/commitdiff
empathy_tp_chat_is_invited: return a TpContact for the inviter
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 3 May 2012 09:02:39 +0000 (11:02 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 3 May 2012 09:25:19 +0000 (11:25 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=675229

libempathy/empathy-tp-chat.c
libempathy/empathy-tp-chat.h
src/empathy-event-manager.c

index c70b03087625dea86a9c858a1220d4e503417d0d..aa324ca3bef6fc1ad9816130ef82cb6020ee8bff 100644 (file)
@@ -1358,11 +1358,10 @@ empathy_tp_chat_leave (EmpathyTpChat *self,
 
 gboolean
 empathy_tp_chat_is_invited (EmpathyTpChat *self,
-    TpHandle *inviter)
+    TpContact **inviter)
 {
-  TpContact *self_contact, *actor;
+  TpContact *self_contact;
   TpChannel *channel = TP_CHANNEL (self);
-  gboolean result;
 
   if (!tp_proxy_has_interface (self, TP_IFACE_CHANNEL_INTERFACE_GROUP))
     return FALSE;
@@ -1371,13 +1370,8 @@ empathy_tp_chat_is_invited (EmpathyTpChat *self,
   if (self_contact == NULL)
     return FALSE;
 
-  result = tp_channel_group_get_local_pending_contact_info (channel,
-      self_contact, &actor, NULL, NULL);
-
-  if (inviter != NULL)
-    *inviter = tp_contact_get_handle (actor);
-
-  return result;
+  return tp_channel_group_get_local_pending_contact_info (channel,
+      self_contact, inviter, NULL, NULL);
 }
 
 TpChannelChatState
index 44f6a240e0858990bcd3cd7b28bb3fa4871c706c..d3ad334b3bec0a5217717d775a8c823eca226823 100644 (file)
@@ -96,7 +96,7 @@ void empathy_tp_chat_leave (EmpathyTpChat *chat,
     const gchar *message);
 
 gboolean empathy_tp_chat_is_invited (EmpathyTpChat *chat,
-    TpHandle *inviter);
+    TpContact **inviter);
 TpChannelChatState empathy_tp_chat_get_chat_state (EmpathyTpChat *chat,
     EmpathyContact *contact);
 
index 8f26feb6687a8628017929098f9aff13a55317b6..b3465cea19e414b8876260a0491ed6ea8d15e2bf 100644 (file)
@@ -846,27 +846,6 @@ display_invite_room_dialog (EventManagerApproval *approval)
   g_object_unref (window);
 }
 
-static void
-event_manager_muc_invite_got_contact_cb (TpConnection *connection,
-                                         EmpathyContact *contact,
-                                         const GError *error,
-                                         gpointer user_data,
-                                         GObject *object)
-{
-  EventManagerApproval *approval = (EventManagerApproval *) user_data;
-
-  if (error != NULL)
-    {
-      DEBUG ("Error: %s", error->message);
-    }
-  else
-    {
-      approval->contact = g_object_ref (contact);
-    }
-
-  display_invite_room_dialog (approval);
-}
-
 static void
 event_manager_ft_got_contact_cb (TpConnection *connection,
                                  EmpathyContact *contact,
@@ -979,7 +958,7 @@ approve_channels (TpSimpleApprover *approver,
       if (tp_proxy_has_interface (channel, TP_IFACE_CHANNEL_INTERFACE_GROUP))
         {
           /* Are we in local-pending ? */
-          TpHandle inviter;
+          TpContact *inviter;
 
           if (empathy_tp_chat_is_invited (tp_chat, &inviter))
             {
@@ -987,17 +966,13 @@ approve_channels (TpSimpleApprover *approver,
               DEBUG ("Have been invited to %s. Ask user if he wants to accept",
                   tp_channel_get_identifier (channel));
 
-              if (inviter != 0)
-                {
-                  empathy_tp_contact_factory_get_from_handle (connection,
-                      inviter, event_manager_muc_invite_got_contact_cb,
-                      approval, NULL, G_OBJECT (self));
-                }
-              else
+              if (inviter != NULL)
                 {
-                  display_invite_room_dialog (approval);
+                  approval->contact = empathy_contact_dup_from_tp_contact (
+                      inviter);
                 }
 
+              display_invite_room_dialog (approval);
               goto out;
             }