X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-default-connection-policy.c;h=6dfe793823e8fc4968c436b854f258789023a976;hp=e72d478888244e9573373e9397bed8046f0f1c22;hb=332e97a4104d0e22210ed131902587e9a67e2b29;hpb=c48710f6ec77e4ac1ec76f92a2367839b19adea3 diff --git a/src/modest-default-connection-policy.c b/src/modest-default-connection-policy.c index e72d478..6dfe793 100644 --- a/src/modest-default-connection-policy.c +++ b/src/modest-default-connection-policy.c @@ -31,8 +31,11 @@ #include #include "modest-default-connection-policy.h" +#include "modest-account-mgr.h" #include "modest-account-mgr-helpers.h" #include "modest-runtime.h" +#include "modest-tny-account.h" +#include "modest-ui-actions.h" #include #include @@ -48,10 +51,32 @@ static void modest_default_connection_policy_on_connect (TnyConnectionPolicy *self, TnyAccount *account) { /* Set the username as succedded */ - if (TNY_IS_STORE_ACCOUNT (account)) - modest_account_mgr_set_server_account_username_has_succeeded (modest_runtime_get_account_mgr (), - tny_account_get_id (account), - TRUE); + if (TNY_IS_STORE_ACCOUNT (account)) { + gboolean first_time = FALSE; + const gchar *id; + ModestAccountMgr *acc_mgr; + + acc_mgr = modest_runtime_get_account_mgr (); + id = tny_account_get_id (account); + first_time = !modest_account_mgr_get_server_account_username_has_succeeded (acc_mgr, id); + + /* If it's the first connection then perform a send&receive */ + if (first_time) { + const gchar *account_name; + ModestWindow *top_window; + + modest_account_mgr_set_server_account_username_has_succeeded (acc_mgr, id, TRUE); + + /* Perform a send receive */ + account_name = modest_tny_account_get_parent_modest_account_name_for_server_account (account); + top_window = modest_window_mgr_get_current_top (modest_runtime_get_window_mgr ()); + if (top_window) + modest_ui_actions_do_send_receive (account_name, FALSE, FALSE, TRUE, top_window); + } + } + + /* Reset the attempt count */ + modest_tny_account_store_reset_attempt_count (modest_runtime_get_account_store (), account); return; } @@ -65,7 +90,6 @@ modest_default_connection_policy_on_connection_broken (TnyConnectionPolicy *self static void modest_default_connection_policy_on_disconnect (TnyConnectionPolicy *self, TnyAccount *account) { - tny_account_cancel (account); return; }