#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 <tny-simple-list.h>
#include <modest-tny-folder.h>
#include <tny-camel-pop-store-account.h>
#include <tny-folder-stats.h>
#include <string.h>
-
+#ifdef MODEST_HAVE_HILDON0_WIDGETS
+#include <hildon-widgets/hildon-file-system-info.h>
+#else
+#include <hildon/hildon-file-system-info.h>
+#endif
TnyFolder *
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) {
*/
#define MODEST_ACCOUNT_OPTION_SSL "use_ssl"
#define MODEST_ACCOUNT_OPTION_SSL_NEVER "never"
-#define MODEST_ACCOUNT_OPTION_SSL_ALWAYS "always"
+/* This is a tinymail camel-lite specific option,
+ * roughly equivalent to "always" in regular camel,
+ * which is appropriate for a generic "SSL" connection option: */
+#define MODEST_ACCOUNT_OPTION_SSL_WRAPPED "wrapped"
+/* Not used in our UI so far: */
#define MODEST_ACCOUNT_OPTION_SSL_WHEN_POSSIBLE "when-possible"
+/* This is a tinymailcamel-lite specific option that is not in regular camel. */
+#define MODEST_ACCOUNT_OPTION_SSL_TLS "tls"
/* These seem to be listed in
* libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-provider.c
option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_NEVER;
break;
case MODEST_PROTOCOL_CONNECTION_SSL:
+ /* Apparently, use of "IMAPS" (specified in our UI spec), implies
+ * use of the "wrapped" option: */
+ option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_WRAPPED;
+ break;
case MODEST_PROTOCOL_CONNECTION_TLS:
- option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_ALWAYS;;
+ option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_TLS;
break;
case MODEST_PROTOCOL_CONNECTION_TLS_OP:
+ /* This is not actually in our UI: */
option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_WHEN_POSSIBLE;
break;
default:
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);
/***********************/
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;
return tny_account;
}
-#if 0
+/* TODO: Notify the treemodel somehow that the display name
+ * is now available. We should probably request this from the cell_data_func
+ * so we can provide a treerowreference. */
static void
on_modest_file_system_info(HildonFileSystemInfoHandle *handle,
HildonFileSystemInfo *info,
const GError *error, gpointer data)
{
- if (info) {
- printf("DEBUG: %s: display name=%s\n", __FUNCTION__,
- hildon_file_system_info_get_display_name(info));
+ TnyAccount *account = TNY_ACCOUNT (data);
+
+ if (error) {
+/* printf (" DEBUG: %s: error=%s\n", __FUNCTION__, error->message); */
}
- else {
- printf("DEBUG: %s: info is NULL.\n", __FUNCTION__);
+
+ const gchar *display_name = NULL;
+ if (!error && info) {
+ display_name = hildon_file_system_info_get_display_name(info);
}
- if (error) {
- printf (" DEBUG: error=%s\n", error->message);
+ if (display_name) {
+ /* printf ("DEBUG: %s: display name=%s\n", __FUNCTION__, display_name); */
+ tny_account_set_name (account, display_name);
}
}
-#endif
TnyAccount*
g_return_val_if_fail (account_mgr, NULL);
- tny_account = tny_camel_store_account_new ();
+ if (!location_filepath) {
+ /* A NULL filepath means that this is the special local-folders maildir
+ * account: */
+ tny_account = TNY_STORE_ACCOUNT (modest_tny_local_folders_account_new ());
+ }
+ else {
+ /* Else, for instance, a per-account outbox maildir account: */
+ tny_account = TNY_STORE_ACCOUNT (tny_camel_store_account_new ());
+ }
+
if (!tny_account) {
- g_printerr ("modest: cannot create account for local folders");
+ g_printerr ("modest: %s: cannot create account for local folders. filepath=%s",
+ __FUNCTION__, location_filepath);
return NULL;
}
tny_camel_account_set_session (TNY_CAMEL_ACCOUNT(tny_account), session);
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
location_filepath &&
(strcmp (location_filepath, MODEST_MCC1_VOLUMEPATH) == 0);
- /* TODO: Use hildon_file_system_info_async_new() to get the display name? */
-#if 0
- const gchar *uri = "file:///media/mmc1";
- /* HildonFileSystemInfoHandle *async_handle = */
- hildon_file_system_info_async_new(uri,
- on_modest_file_system_info, NULL /* user_data */);
-#endif
-
+ /* The name of memory card locations will be updated asynchronously.
+ * This is just a default: */
const gchar *name = is_mmc ? _("Memory Card") :
MODEST_LOCAL_FOLDERS_DEFAULT_DISPLAY_NAME;
tny_account_set_name (TNY_ACCOUNT(tny_account), name);
+ /* Get the correct display name for memory cards, asynchronously: */
+ if (location_filepath) {
+ GError *error = NULL;
+ gchar *uri = g_filename_to_uri(location_filepath, NULL, &error);
+ if (error) {
+ g_warning ("%s: g_filename_to_uri(%s) failed: %s", __FUNCTION__,
+ location_filepath, error->message);
+ g_error_free (error);
+ error = NULL;
+ } else if (uri) {
+ /* TODO: gnome_vfs_volume_get_display_name() does not return
+ * the same string. But why not? Why does hildon needs its own
+ * function for this?
+ */
+ hildon_file_system_info_async_new(uri,
+ on_modest_file_system_info, tny_account /* user_data */);
+
+ g_free (uri);
+ uri = NULL;
+ }
+ }
+
+
const gchar* id = is_mmc ? MODEST_MMC_ACCOUNT_ID :
- MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID;
- tny_account_set_id (TNY_ACCOUNT(tny_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);
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,
/* 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);
}
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);
}