g_object_unref (settings);
}
+static void
+account_prepare_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ EmpathyAccountsDialog *dialog = EMPATHY_ACCOUNTS_DIALOG (user_data);
+ TpAccount *account = TP_ACCOUNT (source_object);
+ GError *error = NULL;
+
+ if (!tp_account_prepare_finish (account, result, &error))
+ {
+ DEBUG ("Failed to prepare account: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ accounts_dialog_add_account (dialog, account);
+}
+
static void
accounts_dialog_account_validity_changed_cb (TpAccountManager *manager,
TpAccount *account,
gboolean valid,
EmpathyAccountsDialog *dialog)
{
- accounts_dialog_add_account (dialog, account);
+ tp_account_prepare_async (account, NULL, account_prepare_cb, dialog);
}
static void