- /* Check whether any connections are active, and cancel them if
- * the user wishes.
- */
- ModestAccountMgr* mgr = modest_runtime_get_account_mgr ();
- ModestMailOperationQueue* queue = modest_runtime_get_mail_operation_queue();
- if (modest_account_mgr_account_is_busy(mgr, account_name)) {
- GtkWidget *note = hildon_note_new_confirmation (GTK_WINDOW (self),
- _("emev_nc_disconnect_account"));
- const int response = gtk_dialog_run (GTK_DIALOG(note));
- gtk_widget_destroy (note);
+ ModestTnyAccountStore *acc_store;
+ ModestMailOperationQueue* queue;
+ TnyConnectionStatus store_conn_status, transport_conn_status;
+ TnyAccount *store_account = NULL, *transport_account = NULL;
+ gboolean retval = TRUE;
+ gboolean do_disconnect = TRUE;
+
+ acc_store = modest_runtime_get_account_store ();
+ queue = modest_runtime_get_mail_operation_queue ();
+
+ store_account =
+ modest_tny_account_store_get_server_account (acc_store,
+ account_name,
+ TNY_ACCOUNT_TYPE_STORE);
+ transport_account =
+ modest_tny_account_store_get_server_account (acc_store,
+ account_name,
+ TNY_ACCOUNT_TYPE_TRANSPORT);
+
+ store_conn_status = tny_account_get_connection_status (store_account);
+ transport_conn_status = tny_account_get_connection_status (transport_account);
+
+ if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED ||
+ transport_conn_status == TNY_CONNECTION_STATUS_CONNECTED) {
+ gint response;
+
+ response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self),
+ _("emev_nc_disconnect_account"));
+ do_disconnect = (response == FALSE);