2007-06-26 Murray Cumming <murrayc@murrayc.com>
[modest] / src / modest-tny-account.c
index 5c76d04..640094b 100644 (file)
@@ -42,7 +42,7 @@
 #include <tny-camel-pop-store-account.h>
 #include <tny-folder-stats.h>
 #include <string.h>
-#ifdef MODEST_HILDON_VERSION_0
+#ifdef MODEST_HAVE_HILDON0_WIDGETS
 #include <hildon-widgets/hildon-file-system-info.h>
 #else
 #include <hildon/hildon-file-system-info.h>
@@ -79,13 +79,15 @@ modest_tny_account_get_special_folder (TnyAccount *account,
                        MODEST_PER_ACCOUNT_LOCAL_OUTBOX_FOLDER_ACCOUNT_ID_PREFIX "%s", 
                        modest_account_name);
                
-               local_account = modest_tny_account_store_get_tny_account_by_id (modest_runtime_get_account_store(),
-                                                                       account_id);
+               local_account = modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store(),
+                                                                            MODEST_TNY_ACCOUNT_STORE_QUERY_ID,
+                                                                            account_id);
                g_free (account_id);
        } else {
                /* Other local folders are all in one on-disk directory: */
-               local_account = modest_tny_account_store_get_tny_account_by_id (modest_runtime_get_account_store(),
-                                                                               MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID);
+               local_account = modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store(),
+                                                                            MODEST_TNY_ACCOUNT_STORE_QUERY_ID,
+                                                                            MODEST_LOCAL_FOLDERS_ACCOUNT_ID);
        }
        
        if (!local_account) {
@@ -319,12 +321,15 @@ modest_tny_account_new_from_server_account (ModestAccountMgr *account_mgr,
                        tny_account_set_port (tny_account, account_data->port);
        }
 
-       /* FIXME: for debugging */
+       /* FIXME: for debugging. 
+        * Let's keep this because it is very useful for debugging. */
        url = tny_account_get_url_string (TNY_ACCOUNT(tny_account));
-/*     g_message ("modest: %s:\n  account-url: %s", __FUNCTION__, url); */
+
+       printf ("DEBUG %s:\n  account-url: %s\n", __FUNCTION__, url);
+
        g_free (url);
        /***********************/
-       
+
        return tny_account;
 }
 
@@ -340,7 +345,7 @@ modest_tny_account_new_from_server_account_name (ModestAccountMgr *account_mgr,
 
        TnyAccount *result = modest_tny_account_new_from_server_account (
                account_mgr, account_data);
-               
+
        modest_account_mgr_free_server_account_data (account_mgr, account_data);
        
        return result;
@@ -405,14 +410,28 @@ modest_tny_account_new_from_account (ModestAccountMgr *account_mgr, const gchar
        tny_account_set_pass_func (tny_account,
                                   get_pass_func ? get_pass_func: get_pass_dummy);
        
-       /* This name is what shows up in the folder view -- so for some POP/IMAP/... server
-        * account, we set its name to the account of which it is part. */
-       if (account_data->display_name)
-               tny_account_set_name (tny_account, account_data->display_name); 
 
-       modest_tny_account_set_parent_modest_account_name_for_server_account (tny_account, account_name);
-       
-       modest_account_mgr_free_account_data (account_mgr, account_data);
+        /* This name is what shows up in the folder view -- so for some POP/IMAP/... server
+       *  account, we set its name to the account of which it is part. */
+
+        if (account_data->display_name)
+                tny_account_set_name (tny_account, account_data->display_name);
+
+        modest_tny_account_set_parent_modest_account_name_for_server_account (tny_account, account_name);
+
+        modest_account_mgr_free_account_data (account_mgr, account_data);
+
+        TnyAccountStore *astore = (TnyAccountStore *) modest_runtime_get_account_store ();
+        if (astore) {
+               TnyDevice *device = tny_account_store_get_device (astore);
+               GError *err = NULL;
+               g_object_set_data (G_OBJECT(tny_account), "account_store", (gpointer)astore);
+               tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (tny_account),
+                               tny_device_is_online (device), &err);
+               if (err)
+                       g_print ("Error connecting: %s\n", err->message);
+               g_object_unref (device);
+        } 
 
        return tny_account;
 }
@@ -428,7 +447,7 @@ on_modest_file_system_info(HildonFileSystemInfoHandle *handle,
        TnyAccount *account = TNY_ACCOUNT (data);
        
        if (error) {
-               printf ("  DEBUG: %s: error=%s\n", __FUNCTION__, error->message);
+/*             printf ("  DEBUG: %s: error=%s\n", __FUNCTION__, error->message); */
        }
        
        const gchar *display_name = NULL;
@@ -483,7 +502,7 @@ modest_tny_account_new_for_local_folders (ModestAccountMgr *account_mgr, TnySess
        url_string = camel_url_to_string (url, 0);
        
        tny_account_set_url_string (TNY_ACCOUNT(tny_account), url_string);
-       printf("DEBUG: %s:\n  url=%s\n", __FUNCTION__, url_string);
+/*     printf("DEBUG: %s:\n  url=%s\n", __FUNCTION__, url_string); */
 
        /* TODO: Use a more generic way of identifying memory card paths, 
         * and of marking accounts as memory card accounts, maybe
@@ -522,14 +541,14 @@ modest_tny_account_new_for_local_folders (ModestAccountMgr *account_mgr, TnySess
        
        
        const gchar* id = is_mmc ? MODEST_MMC_ACCOUNT_ID :
-               MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID;
+               MODEST_LOCAL_FOLDERS_ACCOUNT_ID;
        tny_account_set_id (TNY_ACCOUNT(tny_account), id);
        
        tny_account_set_forget_pass_func (TNY_ACCOUNT(tny_account), forget_pass_dummy);
        tny_account_set_pass_func (TNY_ACCOUNT(tny_account), get_pass_dummy);
        
        modest_tny_account_set_parent_modest_account_name_for_server_account (
-               TNY_ACCOUNT (tny_account), MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID);
+               TNY_ACCOUNT (tny_account), id);
        
        camel_url_free (url);
        g_free (maildir);
@@ -578,7 +597,7 @@ modest_tny_account_new_for_per_account_local_outbox_folder (ModestAccountMgr *ac
        camel_url_free (url);
        
        tny_account_set_url_string (TNY_ACCOUNT(tny_account), url_string);
-       printf("DEBUG: %s:\n  url=%s\n", __FUNCTION__, url_string);
+/*     printf("DEBUG: %s:\n  url=%s\n", __FUNCTION__, url_string); */
        g_free (url_string);
 
        /* This text should never been seen,
@@ -597,7 +616,7 @@ modest_tny_account_new_for_per_account_local_outbox_folder (ModestAccountMgr *ac
        
        /* Make this think that it belongs to the modest local-folders parent account: */
        modest_tny_account_set_parent_modest_account_name_for_server_account (
-               TNY_ACCOUNT (tny_account), MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID);
+               TNY_ACCOUNT (tny_account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID);
 
        return TNY_ACCOUNT(tny_account);
 }
@@ -632,16 +651,17 @@ recurse_folders (TnyFolderStore *store,
                folder = TNY_FOLDER (tny_iterator_get_current (iter));
                stats = tny_folder_get_stats (folder);
 
-               /* initially, we sometimes get -1 from tinymail; ignore that */
-               if (helper->function && helper->function (stats) > 0)
-                       helper->sum += helper->function (stats);
+               if (stats) {
+                       /* initially, we sometimes get -1 from tinymail; ignore that */
+                       if (helper->function && helper->function (stats) > 0)
+                               helper->sum += helper->function (stats);
 
-               if (TNY_IS_FOLDER_STORE (folder)) {
-                       recurse_folders (TNY_FOLDER_STORE (folder), query, helper);
-               }
-           
+                       if (TNY_IS_FOLDER_STORE (folder)) {
+                               recurse_folders (TNY_FOLDER_STORE (folder), query, helper);
+                       }
+                       g_object_unref (stats);
+               }    
                g_object_unref (folder);
-               g_object_unref (stats);
                tny_iterator_next (iter);
        }
         g_object_unref (G_OBJECT (iter));
@@ -723,7 +743,7 @@ const gchar* modest_tny_account_get_parent_modest_account_name_for_server_accoun
 void modest_tny_account_set_parent_modest_account_name_for_server_account (TnyAccount *self, const gchar* parent_modest_acount_name)
 {
        g_object_set_data_full (G_OBJECT(self), "modest_account",
-                               (gpointer*) g_strdup (parent_modest_acount_name), g_free);
+                               (gpointer) g_strdup (parent_modest_acount_name), g_free);
 }