static void set_alias_on_account (TpAccount *account, const gchar *alias) { DEBUG ("Set Account.Nickname to %s", alias); tp_account_set_nickname_async (account, alias, set_nickname_cb, NULL); }
void tpaw_user_info_apply_async (TpawUserInfo *self, GAsyncReadyCallback callback, gpointer user_data) { GSimpleAsyncResult *result; const gchar *new_nickname; guint count = 0; GList *l, *next; g_return_if_fail (TPAW_IS_USER_INFO (self)); result = g_simple_async_result_new ((GObject *) self, callback, user_data, tpaw_user_info_apply_async); /* Apply avatar */ tpaw_avatar_chooser_apply_async ( (TpawAvatarChooser *) self->priv->avatar_chooser, avatar_chooser_apply_cb, g_object_ref (result)); count++; /* Apply nickname */ new_nickname = gtk_entry_get_text (GTK_ENTRY (self->priv->nickname_entry)); if (tp_strdiff (new_nickname, tp_account_get_nickname (self->priv->account))) { tp_account_set_nickname_async (self->priv->account, new_nickname, set_nickname_cb, g_object_ref (result)); count++; } /* Remove empty fields */ for (l = self->priv->details_to_set; l != NULL; l = next) { TpContactInfoField *field = l->data; next = l->next; if (field_value_is_empty (field)) { DEBUG ("Drop empty field: %s", field->field_name); tp_contact_info_field_free (field); self->priv->details_to_set = g_list_delete_link (self->priv->details_to_set, l); } } if (self->priv->details_to_set != NULL) { if (self->priv->details_changed) { tp_connection_set_contact_info_async ( tp_account_get_connection (self->priv->account), self->priv->details_to_set, set_contact_info_cb, g_object_ref (result)); count++; } tp_contact_info_list_free (self->priv->details_to_set); self->priv->details_to_set = NULL; } self->priv->details_changed = FALSE; g_simple_async_result_set_op_res_gssize (result, count); g_object_unref (result); }