+static void
+update_folders_cb (TnyFolderStore *folder_store, TnyList *list, GError **err, gpointer user_data)
+{
+ ModestMailOperation *self;
+ ModestMailOperationPrivate *priv;
+ RefreshFolderAsyncHelper *helper;
+ TnyFolder *folder;
+
+ self = MODEST_MAIL_OPERATION (user_data);
+ priv = MODEST_MAIL_OPERATION_GET_PRIVATE (self);
+
+ if (*err) {
+ priv->error = g_error_copy (*err);
+ priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
+ return;
+ }
+
+ priv->total = tny_list_get_length (list);
+ priv->done = 0;
+ priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
+
+ helper = g_slice_new0 (RefreshFolderAsyncHelper);
+ helper->mail_op = self;
+ helper->iter = tny_list_create_iterator (list);
+ helper->failed = 0;
+ helper->canceled = 0;
+
+ /* Async refresh folders */
+ folder = TNY_FOLDER (tny_iterator_get_current (helper->iter));
+ tny_folder_refresh_async (folder, folder_refresh_cb,
+ status_update_cb, helper);
+ g_object_unref (G_OBJECT(folder));