+static void
+connection_status_changed (TnyAccount *account,
+ TnyConnectionStatus status,
+ gpointer data)
+{
+ if (status == TNY_CONNECTION_STATUS_CONNECTED) {
+ const gchar *account_name;
+ ModestWindow *main_window;
+ ModestTnyAccountStorePrivate *priv = NULL;
+
+ priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE (data);
+
+ /* Remove this handler */
+ priv->sighandlers = modest_signal_mgr_disconnect (priv->sighandlers,
+ G_OBJECT (account),
+ "connection_status_changed");
+
+ /* Set the username as succedded */
+ modest_account_mgr_set_server_account_username_has_succeeded (modest_runtime_get_account_mgr (),
+ tny_account_get_id (account),
+ TRUE);
+
+ /* Perform a send receive */
+ account_name = modest_tny_account_get_parent_modest_account_name_for_server_account (account);
+ main_window = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (), FALSE);
+ modest_ui_actions_do_send_receive (account_name, FALSE, FALSE, main_window);
+ }
+}
+