[empathy] use tp_text_channel_set_chat_state_async() directly



commit 5195f67f8a9fce3da49f875868e288df16df6a52
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu May 19 14:15:21 2011 +0200

    use tp_text_channel_set_chat_state_async() directly

 libempathy-gtk/empathy-chat.c |   37 +++++++++++++++++++++++++++++++------
 libempathy/empathy-tp-chat.c  |   19 -------------------
 libempathy/empathy-tp-chat.h  |    2 --
 3 files changed, 31 insertions(+), 27 deletions(-)
---
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index 1dbaf5d..3fdb3bd 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -326,6 +326,34 @@ chat_composing_remove_timeout (EmpathyChat *chat)
 	}
 }
 
+static void
+set_chate_state_cb (GObject *source,
+		    GAsyncResult *result,
+		    gpointer user_data)
+{
+	GError *error = NULL;
+
+	if (!tp_text_channel_set_chat_state_finish (TP_TEXT_CHANNEL (source), result,
+		&error)) {
+		DEBUG ("Failed to set chat state: %s", error->message);
+		g_error_free (error);
+	}
+}
+
+static void
+set_chat_state (EmpathyChat *self,
+		TpChannelChatState state)
+{
+	EmpathyChatPriv *priv = GET_PRIV (self);
+
+	if (!tp_proxy_has_interface_by_id (priv->tp_chat,
+		TP_IFACE_QUARK_CHANNEL_INTERFACE_CHAT_STATE))
+		return;
+
+	tp_text_channel_set_chat_state_async (TP_TEXT_CHANNEL (priv->tp_chat), state,
+		set_chate_state_cb, self);
+}
+
 static gboolean
 chat_composing_stop_timeout_cb (EmpathyChat *chat)
 {
@@ -334,8 +362,7 @@ chat_composing_stop_timeout_cb (EmpathyChat *chat)
 	priv = GET_PRIV (chat);
 
 	priv->composing_stop_timeout_id = 0;
-	empathy_tp_chat_set_state (priv->tp_chat,
-				   TP_CHANNEL_CHAT_STATE_PAUSED);
+	set_chat_state (chat, TP_CHANNEL_CHAT_STATE_PAUSED);
 
 	return FALSE;
 }
@@ -351,8 +378,7 @@ chat_composing_start (EmpathyChat *chat)
 		/* Just restart the timeout */
 		chat_composing_remove_timeout (chat);
 	} else {
-		empathy_tp_chat_set_state (priv->tp_chat,
-					   TP_CHANNEL_CHAT_STATE_COMPOSING);
+		set_chat_state (chat, TP_CHANNEL_CHAT_STATE_COMPOSING);
 	}
 
 	priv->composing_stop_timeout_id = g_timeout_add_seconds (
@@ -369,8 +395,7 @@ chat_composing_stop (EmpathyChat *chat)
 	priv = GET_PRIV (chat);
 
 	chat_composing_remove_timeout (chat);
-	empathy_tp_chat_set_state (priv->tp_chat,
-				   TP_CHANNEL_CHAT_STATE_ACTIVE);
+	set_chat_state (chat, TP_CHANNEL_CHAT_STATE_ACTIVE);
 }
 
 static gint
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 34e2d40..02bdc80 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -1578,25 +1578,6 @@ empathy_tp_chat_send (EmpathyTpChat *self,
 	g_free (message_body);
 }
 
-void
-empathy_tp_chat_set_state (EmpathyTpChat *self,
-			   TpChannelChatState  state)
-{
-	g_return_if_fail (EMPATHY_IS_TP_CHAT (self));
-
-	if (tp_proxy_has_interface_by_id (self,
-					  TP_IFACE_QUARK_CHANNEL_INTERFACE_CHAT_STATE)) {
-		DEBUG ("Set state: %d", state);
-		tp_cli_channel_interface_chat_state_call_set_chat_state ((TpChannel *) self, -1,
-									 state,
-									 tp_chat_async_cb,
-									 "setting chat state",
-									 NULL,
-									 G_OBJECT (self));
-	}
-}
-
-
 const GList *
 empathy_tp_chat_get_pending_messages (EmpathyTpChat *self)
 {
diff --git a/libempathy/empathy-tp-chat.h b/libempathy/empathy-tp-chat.h
index 31f9198..de55c1a 100644
--- a/libempathy/empathy-tp-chat.h
+++ b/libempathy/empathy-tp-chat.h
@@ -81,8 +81,6 @@ EmpathyContact *empathy_tp_chat_get_remote_contact   (EmpathyTpChat      *chat);
 TpAccount    * empathy_tp_chat_get_account          (EmpathyTpChat      *chat);
 void           empathy_tp_chat_send                 (EmpathyTpChat      *chat,
 						     TpMessage     *message);
-void           empathy_tp_chat_set_state            (EmpathyTpChat      *chat,
-						     TpChannelChatState  state);
 void           empathy_tp_chat_set_property         (EmpathyTpChat      *chat,
 						     const gchar        *name,
 						     const GValue       *value);



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