* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <modest-platform.h>
#include <modest-tny-platform-factory.h>
#include <modest-tny-account.h>
#include <modest-tny-account-store.h>
#include <modest-tny-local-folders-account.h>
#include <modest-runtime.h>
-#include <modest-platform.h>
#include <tny-simple-list.h>
#include <modest-tny-folder.h>
#include <modest-tny-outbox-account.h>
local_account = modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store(),
MODEST_TNY_ACCOUNT_STORE_QUERY_ID,
account_id);
+ if (!local_account) {
+ g_printerr ("modest: %s: modest_tny_account_store_get_tny_account_by(ID) returned NULL for %s\n", __FUNCTION__, account_id);
+ return NULL;
+ }
+
g_free (account_id);
} else {
/* Other local folders are all in one on-disk directory: */
/* There is no need to do this _async, as these are local folders. */
/* TODO: However, this seems to fail sometimes when the network is busy,
- * returning an empty list. murrayc. */
+ * returning an empty list. murrayc. */
+ GError *error = NULL;
tny_folder_store_get_folders (TNY_FOLDER_STORE (local_account),
- folders, NULL, NULL);
+ folders, NULL, &error);
+ if (error) {
+ g_warning ("%s: tny_folder_store_get_folders() failed:\n error=%s\n",
+ __FUNCTION__, error->message);
+ }
+
+ if (tny_list_get_length (folders) == 0) {
+ gchar* url_string = tny_account_get_url_string (local_account);
+ g_printerr ("modest: %s: tny_folder_store_get_folders() returned an empty list for account with URL '%s'\n",
+ __FUNCTION__, url_string);
+ g_free (url_string);
+ }
+
iter = tny_list_create_iterator (folders);
while (!tny_iterator_is_done (iter)) {
g_object_unref (G_OBJECT (iter));
g_object_unref (G_OBJECT (local_account));
+ /*
+ if (!special_folder) {
+ g_warning ("%s: Returning NULL.", __FUNCTION__);
+ }
+ */
+
return special_folder;
}
printf ("DEBUG: %s: status=%d\n", __FUNCTION__, status);
if (status == TNY_CONNECTION_STATUS_DISCONNECTED) {
- /* We are trying to use the network with an account,
- * but the accounts are set as offline, because our TnyDevice is offline,
+ /* A tinymail network operation failed, and tinymail then noticed that
+ * the account is offline, because our TnyDevice is offline,
* because libconic says we are offline.
- * So ask the user to go online:
+ * So ask the user to go online again.
+ *
+ * Note that this signal will not be emitted if the account was offline
+ * when the network operation was first attempted. For those cases,
+ * the application must do its own explicit checks.
+ *
+ * We make sure that this UI is shown in the main thread, to avoid races,
+ * because tinymail does not guarantee that this signal handler will be called
+ * in the main thread.
+ */
+ /* TODO: Commented out, because this causes hangs, probably related to
+ * our use of mainloops:
+ * modest_platform_connect_and_wait (NULL);
*/
- modest_platform_connect_and_wait(NULL);
} else if (status == TNY_CONNECTION_STATUS_CONNECTED_BROKEN) {
printf ("DEBUG: %s: Connection broken. Forcing TnyDevice offline.\n",
__FUNCTION__);
* When libconic reconnects, it will set the device back online again,
* regardless of it being forced offline before.
*/
+ /* TODO: Find out when this is falsely being emitted. */
+ printf (" DEBUG: %s: Not forcing offline because tinymail is sometimes reporting false connection breaks.\n",
+ __FUNCTION__);
+ /*
TnyDevice *device = modest_runtime_get_device ();
tny_device_force_offline (device);
+ */
}
}