#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"
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;
+ }
}
}
#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>
#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"
{
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);
}
#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>
{
EmpathyAccountChooser *account_chooser;
McAccount *account;
- MissionControl *mc;
- TpConnection *connection;
const gchar *room;
const gchar *server = NULL;
gchar *room_name = NULL;
}
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