diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-05-19 20:15:21 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-05-25 15:22:42 +0800 |
commit | 5195f67f8a9fce3da49f875868e288df16df6a52 (patch) | |
tree | e4ca1d39ec0c8dd6e27d2d7b59be06dc2a7f2f83 | |
parent | 515c3eac45ed42be34feac88245a8a509825bf82 (diff) | |
download | gsoc2013-empathy-5195f67f8a9fce3da49f875868e288df16df6a52.tar.gz gsoc2013-empathy-5195f67f8a9fce3da49f875868e288df16df6a52.tar.zst gsoc2013-empathy-5195f67f8a9fce3da49f875868e288df16df6a52.zip |
use tp_text_channel_set_chat_state_async() directly
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 37 | ||||
-rw-r--r-- | libempathy/empathy-tp-chat.c | 19 | ||||
-rw-r--r-- | 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 1dbaf5d8a..3fdb3bd53 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 34e2d40b2..02bdc80e3 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 31f9198e1..de55c1a8c 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); |