summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2012-09-11 18:42:22 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2012-09-12 14:27:04 +0100
commitf2cfc78ac1a37cb9a85055602cf7c001045492bf (patch)
tree7906b618f41bf125576be5f4ea8a0058a5b73017
parent20661d5734d5d7c8f1e95b70be7b4f49f7cf4c04 (diff)
McdAccount: consolidate AutomaticPresence setting
-rw-r--r--src/mcd-account.c42
1 files changed, 15 insertions, 27 deletions
diff --git a/src/mcd-account.c b/src/mcd-account.c
index addc0c02..031ed3f6 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -1471,29 +1471,12 @@ set_automatic_presence (TpSvcDBusProperties *self,
if (priv->auto_presence_type != type)
{
- GValue presence = G_VALUE_INIT;
-
- g_value_init (&presence, G_TYPE_INT);
- g_value_set_int (&presence, type);
-
- mcd_storage_set_attribute (priv->storage, account_name,
- MC_ACCOUNTS_KEY_AUTO_PRESENCE_TYPE,
- &presence);
priv->auto_presence_type = type;
changed = TRUE;
}
if (tp_strdiff (priv->auto_presence_status, status))
{
- const gchar *new_status = NULL;
-
- if (status != NULL && status[0] != 0)
- new_status = status;
-
- mcd_storage_set_string (priv->storage, account_name,
- MC_ACCOUNTS_KEY_AUTO_PRESENCE_STATUS,
- new_status);
-
g_free (priv->auto_presence_status);
priv->auto_presence_status = g_strdup (status);
changed = TRUE;
@@ -1501,23 +1484,28 @@ set_automatic_presence (TpSvcDBusProperties *self,
if (tp_strdiff (priv->auto_presence_message, message))
{
- const gchar *new_message = NULL;
-
- if (!tp_str_empty (message))
- new_message = message;
-
- mcd_storage_set_string (priv->storage, account_name,
- MC_ACCOUNTS_KEY_AUTO_PRESENCE_MESSAGE,
- new_message);
-
g_free (priv->auto_presence_message);
priv->auto_presence_message = g_strdup (message);
changed = TRUE;
}
-
if (changed)
{
+ GValue presence = G_VALUE_INIT;
+
+ g_value_init (&presence, G_TYPE_INT);
+ g_value_set_int (&presence, priv->auto_presence_type);
+
+ mcd_storage_set_attribute (priv->storage, account_name,
+ MC_ACCOUNTS_KEY_AUTO_PRESENCE_TYPE,
+ &presence);
+ mcd_storage_set_string (priv->storage, account_name,
+ MC_ACCOUNTS_KEY_AUTO_PRESENCE_STATUS,
+ priv->auto_presence_status);
+ mcd_storage_set_string (priv->storage, account_name,
+ MC_ACCOUNTS_KEY_AUTO_PRESENCE_MESSAGE,
+ priv->auto_presence_message);
+
mcd_storage_commit (priv->storage, account_name);
mcd_account_changed_property (account, name, value);
}