diff options
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 27 | ||||
-rw-r--r-- | src/empathy-main-window.c | 20 | ||||
-rw-r--r-- | src/empathy-new-chatroom-dialog.c | 14 |
3 files changed, 25 insertions, 36 deletions
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c index d05c8591d..a1787189a 100644 --- a/libempathy-gtk/empathy-chat.c +++ b/libempathy-gtk/empathy-chat.c @@ -40,6 +40,7 @@ #include <libempathy/empathy-log-manager.h> #include <libempathy/empathy-contact-list.h> #include <libempathy/empathy-utils.h> +#include <libempathy/empathy-dispatcher.h> #include "empathy-chat.h" #include "empathy-conf.h" @@ -179,21 +180,21 @@ chat_connection_changed_cb (EmpathyAccountManager *manager, if (current == TP_CONNECTION_STATUS_CONNECTED && !priv->tp_chat && empathy_account_equal (account, priv->account) && priv->handle_type != TP_HANDLE_TYPE_NONE) { - TpConnection *connection; - MissionControl *mc; - + DEBUG ("Account reconnected, request a new Text channel"); - mc = empathy_mission_control_new (); - connection = mission_control_get_tpconnection (mc, account, NULL); - tp_connection_run_until_ready (connection, FALSE, NULL, NULL); - empathy_connection_request_channel (connection, -1, - TP_IFACE_CHANNEL_TYPE_TEXT, - priv->handle_type, - priv->id, TRUE, - NULL, NULL, NULL, NULL); - g_object_unref (connection); - g_object_unref (mc); + switch (priv->handle_type) { + case TP_HANDLE_TYPE_CONTACT: + empathy_dispatcher_chat_with_contact_id (account, unique_name, + NULL, NULL); + break; + case TP_HANDLE_TYPE_ROOM: + empathy_dispatcher_join_muc (account, unique_name, NULL, NULL); + break; + default: + g_assert_not_reached (); + break; + } } } diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c index 4a6c86212..a20345e6d 100644 --- a/src/empathy-main-window.c +++ b/src/empathy-main-window.c @@ -31,6 +31,7 @@ #include <libempathy/empathy-contact.h> #include <libempathy/empathy-utils.h> #include <libempathy/empathy-account-manager.h> +#include <libempathy/empathy-dispatcher.h> #include <libempathy/empathy-chatroom-manager.h> #include <libempathy/empathy-chatroom.h> #include <libempathy/empathy-contact-list.h> @@ -49,6 +50,8 @@ #include <libempathy-gtk/empathy-new-message-dialog.h> #include <libempathy-gtk/empathy-gtk-enum-types.h> +#include <libmissioncontrol/mission-control.h> + #include "empathy-accounts-dialog.h" #include "empathy-main-window.h" #include "ephy-spinner.h" @@ -843,25 +846,20 @@ main_window_favorite_chatroom_join (EmpathyChatroom *chatroom) { MissionControl *mc; McAccount *account; - TpConnection *connection; const gchar *room; mc = empathy_mission_control_new (); account = empathy_chatroom_get_account (chatroom); room = empathy_chatroom_get_room (chatroom); + if (mission_control_get_connection_status (mc, account, NULL) != + TP_CONNECTION_STATUS_CONNECTED) { + return; + } + DEBUG ("Requesting channel for '%s'", room); + empathy_dispatcher_join_muc (account, room, NULL, NULL); - connection = mission_control_get_tpconnection (mc, account, NULL); - if (connection) { - tp_connection_run_until_ready (connection, TRUE, NULL, NULL); - empathy_connection_request_channel (connection, -1, - TP_IFACE_CHANNEL_TYPE_TEXT, - TP_HANDLE_TYPE_ROOM, - room, TRUE, - NULL, NULL, NULL, NULL); - g_object_unref (connection); - } g_object_unref (mc); } diff --git a/src/empathy-new-chatroom-dialog.c b/src/empathy-new-chatroom-dialog.c index 4a1fb90df..9c9a9a4cd 100644 --- a/src/empathy-new-chatroom-dialog.c +++ b/src/empathy-new-chatroom-dialog.c @@ -39,6 +39,7 @@ #include <libempathy/empathy-tp-roomlist.h> #include <libempathy/empathy-chatroom.h> #include <libempathy/empathy-utils.h> +#include <libempathy/empathy-dispatcher.h> #include <libempathy-gtk/empathy-account-chooser.h> #include <libempathy-gtk/empathy-ui-utils.h> @@ -489,8 +490,6 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog) { EmpathyAccountChooser *account_chooser; McAccount *account; - MissionControl *mc; - TpConnection *connection; const gchar *room; const gchar *server = NULL; gchar *room_name = NULL; @@ -508,18 +507,9 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *dialog) } DEBUG ("Requesting channel for '%s'", room_name); + empathy_dispatcher_join_muc (account, room_name, NULL, NULL); - mc = empathy_mission_control_new (); - connection = mission_control_get_tpconnection (mc, account, NULL); - tp_connection_run_until_ready (connection, TRUE, NULL, NULL); - empathy_connection_request_channel (connection, -1, - TP_IFACE_CHANNEL_TYPE_TEXT, - TP_HANDLE_TYPE_ROOM, - room_name, TRUE, - NULL, NULL, NULL, NULL); g_free (room_name); - g_object_unref (connection); - g_object_unref (mc); } static void |