* Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
*/
-#include <telepathy-glib/util.h>
+#include "config.h"
+#include "empathy-import-utils.h"
-#include <libempathy/empathy-utils.h>
+#include <tp-account-widgets/tpaw-connection-managers.h>
+#include <tp-account-widgets/tpaw-utils.h>
-#include "empathy-import-utils.h"
#include "empathy-import-pidgin.h"
+#include "empathy-utils.h"
EmpathyImportAccountData *
empathy_import_account_data_new (const gchar *source)
{
EmpathyImportAccountData *data;
- g_return_val_if_fail (!EMP_STR_EMPTY (source), NULL);
+ g_return_val_if_fail (!TPAW_STR_EMPTY (source), NULL);
data = g_slice_new0 (EmpathyImportAccountData);
data->settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
data->source = g_strdup (source);
data->protocol = NULL;
data->connection_manager = NULL;
+ data->enabled = FALSE;
return data;
}
if (data->connection_manager != NULL)
g_free (data->connection_manager);
if (data->settings != NULL)
- g_hash_table_destroy (data->settings);
+ g_hash_table_unref (data->settings);
if (data->source != NULL)
g_free (data->source);
return empathy_import_pidgin_load ();
}
+
+gboolean
+empathy_import_protocol_is_supported (const gchar *protocol,
+ TpConnectionManager **cm)
+{
+ TpawConnectionManagers *manager;
+ GList *cms;
+ GList *l;
+ gboolean proto_is_supported = FALSE;
+
+ manager = tpaw_connection_managers_dup_singleton ();
+ cms = tpaw_connection_managers_get_cms (manager);
+
+ for (l = cms; l; l = l->next)
+ {
+
+ TpConnectionManager *tp_cm = l->data;
+ if (tp_connection_manager_has_protocol (tp_cm,
+ (const gchar*) protocol))
+ {
+ if (!tp_strdiff (protocol, "irc")
+ && !tp_strdiff (tp_connection_manager_get_name (tp_cm), "haze"))
+ continue;
+
+ if (!proto_is_supported)
+ {
+ *cm = tp_cm;
+ proto_is_supported = TRUE;
+
+ continue;
+ }
+
+ /* we have more than one CM for this protocol,
+ * select the one which is not haze.
+ */
+ if (!tp_strdiff (tp_connection_manager_get_name ((*cm)), "haze"))
+ {
+ *cm = tp_cm;
+ break;
+ }
+ }
+ }
+
+ g_object_unref (manager);
+
+ return proto_is_supported;
+}