aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy/empathy-tp-chat.c14
-rw-r--r--libempathy/empathy-tp-chat.h2
-rw-r--r--src/empathy-event-manager.c35
3 files changed, 10 insertions, 41 deletions
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index c70b03087..aa324ca3b 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -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
diff --git a/libempathy/empathy-tp-chat.h b/libempathy/empathy-tp-chat.h
index 44f6a240e..d3ad334b3 100644
--- a/libempathy/empathy-tp-chat.h
+++ b/libempathy/empathy-tp-chat.h
@@ -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);
diff --git a/src/empathy-event-manager.c b/src/empathy-event-manager.c
index 8f26feb66..b3465cea1 100644
--- a/src/empathy-event-manager.c
+++ b/src/empathy-event-manager.c
@@ -847,27 +847,6 @@ display_invite_room_dialog (EventManagerApproval *approval)
}
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,
const GError *error,
@@ -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;
}