aboutsummaryrefslogtreecommitdiffstats
path: root/ubuntu-online-accounts
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-08-02 21:48:38 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-08-03 22:13:29 +0800
commit119351a936be47a235b9fd0d7cce1b73fb8e289e (patch)
treed4f883dbd8be291d7c6bb133bc26924f9775a0aa /ubuntu-online-accounts
parent44982406d7bc6317a7674d21f830ad50ab4f3810 (diff)
downloadgsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.tar
gsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.tar.gz
gsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.tar.bz2
gsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.tar.lz
gsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.tar.xz
gsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.tar.zst
gsoc2013-empathy-119351a936be47a235b9fd0d7cce1b73fb8e289e.zip
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.
Diffstat (limited to 'ubuntu-online-accounts')
-rw-r--r--ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin-widget.c20
-rw-r--r--ubuntu-online-accounts/cc-plugins/app-plugin/empathy-app-plugin.c15
-rw-r--r--ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin-widget.c10
-rw-r--r--ubuntu-online-accounts/cc-plugins/empathy-accounts-plugin.c16
4 files changed, 36 insertions, 25 deletions
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 <libempathy/empathy-client-factory.h>
+
#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 <libempathy/empathy-client-factory.h>
+
#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