aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlberto Mardegan <alberto.mardegan@canonical.com>2013-01-10 19:20:12 +0800
committerDavid King <amigadave@amigadave.com>2013-01-11 20:17:21 +0800
commit02db084adde59fc94129ebd7ea5c2c24fad7c07a (patch)
treed750e5f0653a1e44093237e95b1780739acc6cf3
parentcfef33e79d3d01b5a407381267bd5f481ceca340 (diff)
downloadgsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.tar
gsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.tar.gz
gsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.tar.bz2
gsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.tar.lz
gsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.tar.xz
gsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.tar.zst
gsoc2013-empathy-02db084adde59fc94129ebd7ea5c2c24fad7c07a.zip
UOA: Use the new libaccounts-glib APIs
The APIs based on GValue are now deprecated. https://bugzilla.gnome.org/show_bug.cgi?id=691469
-rw-r--r--configure.ac2
-rw-r--r--ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c22
-rw-r--r--ubuntu-online-accounts/mc-plugin/mcp-account-manager-uoa.c59
3 files changed, 39 insertions, 44 deletions
diff --git a/configure.ac b/configure.ac
index 141a813f1..f873cd6db 100644
--- a/configure.ac
+++ b/configure.ac
@@ -76,7 +76,7 @@ NAUTILUS_SENDTO_REQUIRED=2.90.0
NETWORK_MANAGER_REQUIRED=0.7.0
CHAMPLAIN_REQUIRED=0.12.1
CHEESE_GTK_REQUIRED=3.4.0
-LIBACCOUNTS_REQUIRED=1.1
+LIBACCOUNTS_REQUIRED=1.4
LIBSIGNON_REQUIRED=1.1
MC_PLUGINS_REQUIRED=5.13.1
diff --git a/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c b/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c
index 34729960c..28b4716ab 100644
--- a/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c
+++ b/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c
@@ -102,7 +102,7 @@ create_account_settings (AgAccount *account)
AgService *service;
GList *services;
AgAccountService *account_service;
- GValue v = G_VALUE_INIT;
+ GVariant *v;
gchar *manager = NULL, *protocol = NULL;
EmpathyAccountSettings *settings;
@@ -114,17 +114,15 @@ create_account_settings (AgAccount *account)
account_service = ag_account_service_new (account, service);
- g_value_init (&v, G_TYPE_STRING);
- if (ag_account_service_get_value (account_service,
- "telepathy/manager", &v) != AG_SETTING_SOURCE_NONE)
- manager = g_value_dup_string (&v);
- g_value_unset (&v);
-
- g_value_init (&v, G_TYPE_STRING);
- if (ag_account_service_get_value (account_service,
- "telepathy/protocol", &v) != AG_SETTING_SOURCE_NONE)
- protocol = g_value_dup_string (&v);
- g_value_unset (&v);
+ v = ag_account_service_get_variant (account_service,
+ "telepathy/manager", NULL);
+ if (v != NULL)
+ manager = g_variant_dup_string (v, NULL);
+
+ v = ag_account_service_get_variant (account_service,
+ "telepathy/protocol", NULL);
+ if (v != NULL)
+ protocol = g_variant_dup_string (v, NULL);
g_return_val_if_fail (manager != NULL, NULL);
g_return_val_if_fail (protocol != NULL, NULL);
diff --git a/ubuntu-online-accounts/mc-plugin/mcp-account-manager-uoa.c b/ubuntu-online-accounts/mc-plugin/mcp-account-manager-uoa.c
index 304e4f38a..8919065ef 100644
--- a/ubuntu-online-accounts/mc-plugin/mcp-account-manager-uoa.c
+++ b/ubuntu-online-accounts/mc-plugin/mcp-account-manager-uoa.c
@@ -86,15 +86,14 @@ _service_dup_tp_value (AgAccountService *service,
const gchar *key)
{
gchar *real_key = g_strdup_printf (KEY_PREFIX "%s", key);
- GValue value = { 0, };
- gchar *ret;
+ GVariant *value;
- g_value_init (&value, G_TYPE_STRING);
- ag_account_service_get_value (service, real_key, &value);
- ret = g_value_dup_string (&value);
- g_value_unset (&value);
+ value = ag_account_service_get_variant (service, real_key, NULL);
+ g_free (real_key);
+ if (value == NULL)
+ return NULL;
- return ret;
+ return g_variant_dup_string (value, NULL);
}
static void
@@ -106,18 +105,14 @@ _service_set_tp_value (AgAccountService *service,
if (value != NULL)
{
- GValue gvalue = { 0, };
-
- g_value_init (&gvalue, G_TYPE_STRING);
- g_value_set_string (&gvalue, value);
- ag_account_service_set_value (service, real_key, &gvalue);
- g_value_unset (&gvalue);
- g_free (real_key);
+ GVariant *gvariant = g_variant_new_string (value);
+ ag_account_service_set_variant (service, real_key, gvariant);
}
else
{
- ag_account_service_set_value (service, real_key, NULL);
+ ag_account_service_set_variant (service, real_key, NULL);
}
+ g_free (real_key);
}
/* Returns NULL if the account never has been imported into MC before */
@@ -171,15 +166,20 @@ _service_changed_cb (AgAccountService *service,
}
static void
-_account_stored_cb (AgAccount *account,
- const GError *error,
+_account_stored_cb (GObject *source_object,
+ GAsyncResult *res,
gpointer user_data)
{
- if (error != NULL)
+ AgAccount *account = AG_ACCOUNT(source_object);
+ GError *error = NULL;
+
+ if (!ag_account_store_finish (account, res, &error))
{
+ g_assert (error != NULL);
DEBUG ("Error storing UOA account '%s': %s",
ag_account_get_display_name (account),
error->message);
+ g_error_free (error);
}
}
@@ -261,7 +261,7 @@ _account_created_cb (AgManager *manager,
cm_name, protocol_name, params);
_service_set_tp_account_name (service, account_name);
- ag_account_store (account, _account_stored_cb, self);
+ ag_account_store_async (account, NULL, _account_stored_cb, self);
g_hash_table_unref (params);
}
@@ -479,16 +479,16 @@ account_manager_uoa_get (const McpAccountStorage *storage,
{
AgAccountSettingIter iter;
const gchar *k;
- const GValue *v;
+ GVariant *v;
ag_account_service_settings_iter_init (service, &iter, KEY_PREFIX);
- while (ag_account_service_settings_iter_next (&iter, &k, &v))
+ while (ag_account_settings_iter_get_next (&iter, &k, &v))
{
- if (!G_VALUE_HOLDS_STRING (v))
+ if (!g_variant_is_of_type (v, G_VARIANT_TYPE_STRING))
continue;
mcp_account_manager_set_value (am, account_name,
- k, g_value_get_string (v));
+ k, g_variant_get_string (v, NULL));
}
}
@@ -676,7 +676,7 @@ account_manager_uoa_commit (const McpAccountStorage *storage,
AgAccountService *service = value;
AgAccount *account = ag_account_service_get_account (service);
- ag_account_store (account, _account_stored_cb, self);
+ ag_account_store_async (account, NULL, _account_stored_cb, self);
}
return TRUE;
@@ -781,7 +781,7 @@ account_manager_uoa_get_restrictions (const McpAccountStorage *storage,
McpAccountManagerUoa *self = (McpAccountManagerUoa *) storage;
AgAccountService *service;
guint restrictions = TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_SERVICE;
- GValue value = G_VALUE_INIT;
+ GVariant *value;
g_return_val_if_fail (self->priv->manager != NULL, 0);
@@ -790,15 +790,12 @@ account_manager_uoa_get_restrictions (const McpAccountStorage *storage,
if (service == NULL)
return G_MAXUINT;
- g_value_init (&value, G_TYPE_BOOLEAN);
- ag_account_service_get_value (service,
- KEY_PREFIX KEY_READONLY_PARAMS, &value);
+ value = ag_account_service_get_variant (service,
+ KEY_PREFIX KEY_READONLY_PARAMS, NULL);
- if (g_value_get_boolean (&value))
+ if (value != NULL && g_variant_get_boolean (value))
restrictions |= TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_PARAMETERS;
- g_value_unset (&value);
-
/* FIXME: We can't set Icon either, but there is no flag for that */
return restrictions;
}