diff options
-rw-r--r-- | libempathy-gtk/empathy-local-xmpp-assistant-widget.c | 3 | ||||
-rw-r--r-- | libempathy/empathy-utils.c | 43 | ||||
-rw-r--r-- | libempathy/empathy-utils.h | 3 | ||||
-rw-r--r-- | src/empathy-accounts-dialog.c | 3 | ||||
-rw-r--r-- | src/empathy-import-widget.c | 3 | ||||
-rw-r--r-- | tp-account-widgets/tpaw-account-widget.c | 3 | ||||
-rw-r--r-- | tp-account-widgets/tpaw-utils.c | 46 | ||||
-rw-r--r-- | tp-account-widgets/tpaw-utils.h | 7 |
8 files changed, 59 insertions, 52 deletions
diff --git a/libempathy-gtk/empathy-local-xmpp-assistant-widget.c b/libempathy-gtk/empathy-local-xmpp-assistant-widget.c index 04275282a..971ad5e96 100644 --- a/libempathy-gtk/empathy-local-xmpp-assistant-widget.c +++ b/libempathy-gtk/empathy-local-xmpp-assistant-widget.c @@ -23,6 +23,7 @@ #include <glib/gi18n-lib.h> #include <tp-account-widgets/tpaw-account-widget.h> +#include <tp-account-widgets/tpaw-utils.h> #include "empathy-ui-utils.h" #include "empathy-utils.h" @@ -181,7 +182,7 @@ account_enabled_cb (GObject *source, account_mgr = tp_account_manager_dup (); - empathy_connect_new_account (account, account_mgr); + tpaw_connect_new_account (account, account_mgr); g_object_unref (account_mgr); } diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index 25624bf00..b06edeb01 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -564,49 +564,6 @@ empathy_account_manager_get_accounts_connected (gboolean *connecting) return out_connected; } -/* Change the RequestedPresence of a newly created account to ensure that it - * is actually connected. */ -void -empathy_connect_new_account (TpAccount *account, - TpAccountManager *account_manager) -{ - TpConnectionPresenceType presence; - gchar *status, *message; - - /* only force presence if presence was offline, unknown or unset */ - presence = tp_account_get_requested_presence (account, NULL, NULL); - switch (presence) - { - case TP_CONNECTION_PRESENCE_TYPE_OFFLINE: - case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN: - case TP_CONNECTION_PRESENCE_TYPE_UNSET: - presence = tp_account_manager_get_most_available_presence ( - account_manager, &status, &message); - - if (presence == TP_CONNECTION_PRESENCE_TYPE_OFFLINE) - /* Global presence is offline; we force it so user doesn't have to - * manually change the presence to connect his new account. */ - presence = TP_CONNECTION_PRESENCE_TYPE_AVAILABLE; - - tp_account_request_presence_async (account, presence, - status, NULL, NULL, NULL); - - g_free (status); - g_free (message); - break; - - case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE: - case TP_CONNECTION_PRESENCE_TYPE_AWAY: - case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY: - case TP_CONNECTION_PRESENCE_TYPE_HIDDEN: - case TP_CONNECTION_PRESENCE_TYPE_BUSY: - case TP_CONNECTION_PRESENCE_TYPE_ERROR: - default: - /* do nothing if the presence is not offline */ - break; - } -} - /* Translate Folks' general presence type to the Tp presence type */ TpConnectionPresenceType empathy_folks_presence_type_to_tp (FolksPresenceType type) diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h index f002c41cd..1a86755c6 100644 --- a/libempathy/empathy-utils.h +++ b/libempathy/empathy-utils.h @@ -75,9 +75,6 @@ GType empathy_type_dbus_ao (void); gboolean empathy_account_manager_get_accounts_connected (gboolean *connecting); -void empathy_connect_new_account (TpAccount *account, - TpAccountManager *account_manager); - TpConnectionPresenceType empathy_folks_presence_type_to_tp ( FolksPresenceType type); gboolean empathy_folks_individual_contains_contact ( diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c index 409a9ce38..bf3934502 100644 --- a/src/empathy-accounts-dialog.c +++ b/src/empathy-accounts-dialog.c @@ -29,6 +29,7 @@ #include <glib/gi18n-lib.h> #include <tp-account-widgets/tpaw-account-widget.h> +#include <tp-account-widgets/tpaw-utils.h> #include "empathy-accounts-common.h" #include "empathy-import-dialog.h" @@ -212,7 +213,7 @@ accounts_dialog_enable_account_cb (GObject *object, { am = tp_account_manager_dup (); - empathy_connect_new_account (account, am); + tpaw_connect_new_account (account, am); g_object_unref (am); } } diff --git a/src/empathy-import-widget.c b/src/empathy-import-widget.c index 0103b6a8f..400a00629 100644 --- a/src/empathy-import-widget.c +++ b/src/empathy-import-widget.c @@ -26,6 +26,7 @@ #include "empathy-import-widget.h" #include <glib/gi18n-lib.h> +#include <tp-account-widgets/tpaw-utils.h> #include "empathy-ui-utils.h" #include "empathy-utils.h" @@ -169,7 +170,7 @@ import_widget_create_account_cb (GObject *source, if (tp_account_is_enabled (account)) { account_manager = tp_account_manager_dup (); - empathy_connect_new_account (account, account_manager); + tpaw_connect_new_account (account, account_manager); g_object_unref (account_manager); } diff --git a/tp-account-widgets/tpaw-account-widget.c b/tp-account-widgets/tpaw-account-widget.c index fcde66f36..e2c8016a6 100644 --- a/tp-account-widgets/tpaw-account-widget.c +++ b/tp-account-widgets/tpaw-account-widget.c @@ -29,6 +29,7 @@ #include <glib/gi18n-lib.h> #include <dbus/dbus-protocol.h> +#include <tp-account-widgets/tpaw-utils.h> #include "tpaw-account-widget-irc.h" #include "tpaw-account-widget-private.h" @@ -895,7 +896,7 @@ account_widget_account_enabled_cb (GObject *source_object, } else { - empathy_connect_new_account (account, self->priv->account_manager); + tpaw_connect_new_account (account, self->priv->account_manager); } g_signal_emit (self, signals[CLOSE], 0, GTK_RESPONSE_APPLY); diff --git a/tp-account-widgets/tpaw-utils.c b/tp-account-widgets/tpaw-utils.c index d8bebdac0..8570658c3 100644 --- a/tp-account-widgets/tpaw-utils.c +++ b/tp-account-widgets/tpaw-utils.c @@ -1,7 +1,8 @@ /* - * Copyright (C) 2013 Collabora Ltd. + * Copyright (C) 2009-2013 Collabora Ltd. * * Authors: Marco Barisione <marco.barisione@collabora.co.uk> + * Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,3 +24,46 @@ #define DEBUG_FLAG EMPATHY_DEBUG_OTHER #include "empathy-debug.h" + +/* Change the RequestedPresence of a newly created account to ensure that it + * is actually connected. */ +void +tpaw_connect_new_account (TpAccount *account, + TpAccountManager *account_manager) +{ + TpConnectionPresenceType presence; + gchar *status, *message; + + /* only force presence if presence was offline, unknown or unset */ + presence = tp_account_get_requested_presence (account, NULL, NULL); + switch (presence) + { + case TP_CONNECTION_PRESENCE_TYPE_OFFLINE: + case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN: + case TP_CONNECTION_PRESENCE_TYPE_UNSET: + presence = tp_account_manager_get_most_available_presence ( + account_manager, &status, &message); + + if (presence == TP_CONNECTION_PRESENCE_TYPE_OFFLINE) + /* Global presence is offline; we force it so user doesn't have to + * manually change the presence to connect his new account. */ + presence = TP_CONNECTION_PRESENCE_TYPE_AVAILABLE; + + tp_account_request_presence_async (account, presence, + status, NULL, NULL, NULL); + + g_free (status); + g_free (message); + break; + + case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE: + case TP_CONNECTION_PRESENCE_TYPE_AWAY: + case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY: + case TP_CONNECTION_PRESENCE_TYPE_HIDDEN: + case TP_CONNECTION_PRESENCE_TYPE_BUSY: + case TP_CONNECTION_PRESENCE_TYPE_ERROR: + default: + /* do nothing if the presence is not offline */ + break; + } +} diff --git a/tp-account-widgets/tpaw-utils.h b/tp-account-widgets/tpaw-utils.h index 8c5dc8cb1..55d83d506 100644 --- a/tp-account-widgets/tpaw-utils.h +++ b/tp-account-widgets/tpaw-utils.h @@ -1,7 +1,8 @@ /* - * Copyright (C) 2013 Collabora Ltd. + * Copyright (C) 2009-2013 Collabora Ltd. * * Authors: Marco Barisione <marco.barisione@collabora.co.uk> + * Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,9 +23,13 @@ #define __TPAW_UTILS_H__ #include <glib.h> +#include <telepathy-glib/telepathy-glib.h> G_BEGIN_DECLS +void tpaw_connect_new_account (TpAccount *account, + TpAccountManager *account_manager); + G_END_DECLS #endif /* __TPAW_UTILS_H__ */ |