From 119351a936be47a235b9fd0d7cce1b73fb8e289e Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 2 Aug 2012 15:48:38 +0200 Subject: Rely on the empathy factory rather than 're-preparing' the AM tp_account_manager_prepare_all_async() seems to be a bad idea so, instead, let's just rely the empathy factory and set it as default. This makes the code much more symetric with empathy-accounts and shouldn't prepare that much useless features as we are not going to prepare the contact list anyway. --- .../app-plugin/empathy-app-plugin-widget.c | 20 ++------------------ .../cc-plugins/app-plugin/empathy-app-plugin.c | 15 +++++++++++++++ .../cc-plugins/empathy-accounts-plugin-widget.c | 10 +++------- .../cc-plugins/empathy-accounts-plugin.c | 16 ++++++++++++++++ 4 files changed, 36 insertions(+), 25 deletions(-) (limited to 'ubuntu-online-accounts') diff --git a/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin-widget.c b/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin-widget.c index 04cbd7f41..d52b3a360 100644 --- a/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin-widget.c +++ b/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin-widget.c @@ -181,7 +181,7 @@ manager_prepared_cb (GObject *source, GList *accounts; GError *error = NULL; - if (!tp_account_manager_prepare_all_finish (manager, result, &error)) + if (!tp_proxy_prepare_finish (manager, result, &error)) { g_debug ("Error preparing Account Manager: %s", error->message); g_clear_error (&error); @@ -226,7 +226,6 @@ empathy_app_plugin_widget_constructed (GObject *object) ((GObjectClass *) empathy_app_plugin_widget_parent_class)->constructed; GtkWidget *top; TpAccountManager *manager; - TpSimpleClientFactory *factory; if (chain_up != NULL) chain_up (object); @@ -241,22 +240,7 @@ empathy_app_plugin_widget_constructed (GObject *object) /* Prepare tp's account manager to find the TpAccount corresponding to our * AgAccount */ manager = tp_account_manager_dup (); - factory = tp_proxy_get_factory (manager); - tp_simple_client_factory_add_account_features_varargs (factory, - TP_ACCOUNT_FEATURE_STORAGE, - TP_ACCOUNT_FEATURE_CONNECTION, - 0); - tp_simple_client_factory_add_connection_features_varargs (factory, - TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS, - TP_CONNECTION_FEATURE_CONTACT_INFO, - 0); - tp_simple_client_factory_add_contact_features_varargs (factory, - TP_CONTACT_FEATURE_ALIAS, - TP_CONTACT_FEATURE_AVATAR_DATA, - TP_CONTACT_FEATURE_CONTACT_INFO, - TP_CONTACT_FEATURE_INVALID, - 0); - tp_account_manager_prepare_all_async (manager, + tp_proxy_prepare_async (manager, NULL, manager_prepared_cb, g_object_ref (self)); g_object_unref (manager); } diff --git a/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin.c b/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin.c index 43b86ad96..c15a13a7a 100644 --- a/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin.c +++ b/ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin.c @@ -22,6 +22,8 @@ #include "empathy-app-plugin.h" +#include + #include "empathy-app-plugin-widget.h" G_DEFINE_TYPE (EmpathyAppPlugin, empathy_app_plugin, AP_TYPE_APPLICATION_PLUGIN) @@ -60,6 +62,19 @@ empathy_app_plugin_class_init (EmpathyAppPluginClass *klass) static void empathy_app_plugin_init (EmpathyAppPlugin *self) { + if (tp_account_manager_can_set_default ()) + { + EmpathyClientFactory *factory; + TpAccountManager *am; + + factory = empathy_client_factory_dup (); + am = tp_account_manager_new_with_factory ( + TP_SIMPLE_CLIENT_FACTORY (factory)); + tp_account_manager_set_default (am); + + g_object_unref (factory); + g_object_unref (am); + } } GType diff --git a/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin-widget.c b/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin-widget.c index a17c13821..8a16904fb 100644 --- a/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin-widget.c +++ b/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin-widget.c @@ -289,7 +289,7 @@ manager_prepared_cb (GObject *source, GList *accounts; GError *error = NULL; - if (!tp_account_manager_prepare_all_finish (manager, result, &error)) + if (!tp_proxy_prepare_finish (manager, result, &error)) { g_debug ("Error preparing Account Manager: %s", error->message); g_clear_error (&error); @@ -341,16 +341,12 @@ empathy_accounts_plugin_widget_constructed (GObject *object) if (self->priv->account->id != 0) { TpAccountManager *manager; - TpSimpleClientFactory *factory; /* Prepare tp's account manager to find the TpAccount corresponding to our * AgAccount */ manager = tp_account_manager_dup (); - factory = tp_proxy_get_factory (manager); - tp_simple_client_factory_add_account_features_varargs (factory, - TP_ACCOUNT_FEATURE_STORAGE, - 0); - tp_account_manager_prepare_all_async (manager, + + tp_proxy_prepare_async (manager, NULL, manager_prepared_cb, g_object_ref (self)); g_object_unref (manager); return; diff --git a/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin.c b/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin.c index 858ef65e1..7431abc08 100644 --- a/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin.c +++ b/ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin.c @@ -22,6 +22,8 @@ #include "empathy-accounts-plugin.h" +#include + #include "empathy-accounts-plugin-widget.h" G_DEFINE_TYPE (EmpathyAccountsPlugin, empathy_accounts_plugin, AP_TYPE_PLUGIN) @@ -101,6 +103,20 @@ empathy_accounts_plugin_class_init ( static void empathy_accounts_plugin_init (EmpathyAccountsPlugin *self) { + if (tp_account_manager_can_set_default ()) + { + EmpathyClientFactory *factory; + TpAccountManager *am; + + factory = empathy_client_factory_dup (); + am = tp_account_manager_new_with_factory ( + TP_SIMPLE_CLIENT_FACTORY (factory)); + tp_account_manager_set_default (am); + + g_object_unref (factory); + g_object_unref (am); + } + } GType -- cgit v1.2.3