* Fixes NB#91689. fixes a wrong check for ASCII
[modest] / src / modest-utils.c
index 3ac90cc..aceeafb 100644 (file)
@@ -43,6 +43,7 @@
 #include <modest-defs.h>
 #include "modest-utils.h"
 #include "modest-platform.h"
+#include <modest-account-protocol.h>
 #include "modest-account-mgr-helpers.h"
 #include "modest-text-utils.h"
 #include <modest-local-folder-info.h>
@@ -232,14 +233,23 @@ on_camel_account_get_supported_secure_authentication (TnyCamelAccount *self, gbo
                else if (tny_list_get_length(auth_types) == 0) 
                        g_warning ("DEBUG: %s: auth_types is an empty TnyList.\n", __FUNCTION__);
                else {
-                       ModestPairList* pairs = modest_protocol_info_get_auth_protocol_pair_list ();
+                       ModestPairList *pairs;
+                       GList *result;
+                       ModestProtocolRegistry *protocol_registry;
+
+                       protocol_registry = modest_runtime_get_protocol_registry ();
+                       pairs = modest_protocol_registry_get_pair_list_by_tag (protocol_registry, MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS);
   
                        /* Get the enum value for the strings: */
-                       GList *result = NULL;
+                       result = NULL;
                        TnyIterator* iter = tny_list_create_iterator(auth_types);
                        while (!tny_iterator_is_done(iter)) {
-                               TnyPair *pair = TNY_PAIR(tny_iterator_get_current(iter));
-                               const gchar *auth_name = NULL;
+                               TnyPair *pair;
+                               const gchar *auth_name;
+                               ModestProtocolType protocol_type;
+
+                               pair = TNY_PAIR(tny_iterator_get_current(iter));
+                               auth_name = NULL;
                                if (pair) {
                                        auth_name = tny_pair_get_name(pair);
                                        g_object_unref (pair);
@@ -248,9 +258,12 @@ on_camel_account_get_supported_secure_authentication (TnyCamelAccount *self, gbo
 
                                printf("DEBUG: %s: auth_name=%s\n", __FUNCTION__, auth_name);
 
-                               ModestAuthProtocol proto = modest_protocol_info_get_auth_protocol (auth_name);
-                               if(proto != MODEST_PROTOCOL_AUTH_NONE)
-                                               result = g_list_prepend(result, GINT_TO_POINTER(proto));
+                               protocol_type = modest_protocol_get_type_id (modest_protocol_registry_get_protocol_by_name (protocol_registry,
+                                                                                                                           MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS,
+                                                                                                                           auth_name));
+
+                               if(modest_protocol_registry_protocol_type_is_secure (protocol_registry, protocol_type))
+                                               result = g_list_prepend(result, GINT_TO_POINTER(protocol_type));
 
                                tny_iterator_next(iter);
                        }
@@ -303,10 +316,16 @@ keep_pulsing (gpointer user_data)
 }
 
 GList*
-modest_utils_get_supported_secure_authentication_methods (ModestTransportStoreProtocol proto, 
+modest_utils_get_supported_secure_authentication_methods (ModestProtocolType protocol_type, 
        const gchar* hostname, gint port, const gchar* username, GtkWindow *parent_window, GError** error)
 {
-       g_return_val_if_fail (proto != MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN, NULL);
+       TnyAccount * tny_account = NULL;
+       ModestProtocolRegistry *protocol_registry;
+       ModestProtocol *protocol;
+
+       g_return_val_if_fail (protocol_type != MODEST_PROTOCOL_REGISTRY_TYPE_INVALID, NULL);
+
+       protocol_registry = modest_runtime_get_protocol_registry ();
        
        /* We need a connection to get the capabilities; */
        if (!modest_platform_connect_and_wait (GTK_WINDOW (parent_window), NULL))
@@ -318,22 +337,11 @@ modest_utils_get_supported_secure_authentication_methods (ModestTransportStorePr
        
        /* Create a TnyCamelAccount so we can use 
         * tny_camel_account_get_supported_secure_authentication(): */
-       TnyAccount * tny_account = NULL;
-       switch (proto) {
-       case MODEST_PROTOCOL_TRANSPORT_SENDMAIL:
-       case MODEST_PROTOCOL_TRANSPORT_SMTP:
-               tny_account = TNY_ACCOUNT(tny_camel_transport_account_new ()); break;
-       case MODEST_PROTOCOL_STORE_POP:
-               tny_account = TNY_ACCOUNT(tny_camel_pop_store_account_new ()); break;
-       case MODEST_PROTOCOL_STORE_IMAP:
-               tny_account = TNY_ACCOUNT(tny_camel_imap_store_account_new ()); break;
-       case MODEST_PROTOCOL_STORE_MAILDIR:
-       case MODEST_PROTOCOL_STORE_MBOX:
-               tny_account = TNY_ACCOUNT(tny_camel_store_account_new()); break;
-       default:
-               tny_account = NULL;
+       protocol = modest_protocol_registry_get_protocol_by_type (protocol_registry, protocol_type);
+       tny_account = NULL;
+       if (MODEST_IS_ACCOUNT_PROTOCOL (protocol)) {
+               tny_account = modest_account_protocol_create_account (MODEST_ACCOUNT_PROTOCOL (protocol));
        }
-
        
        if (!tny_account) {
                g_printerr ("%s could not create tny account.", __FUNCTION__);
@@ -344,7 +352,7 @@ modest_utils_get_supported_secure_authentication_methods (ModestTransportStorePr
         * set_session(): */
         /* TODO: Why isn't this done in account_new()? */
        tny_account_set_proto (tny_account,
-                              modest_protocol_info_get_transport_store_protocol_name(proto));
+                              modest_protocol_get_name (modest_protocol_registry_get_protocol_by_type (protocol_registry, protocol_type)));
 
        tny_account_set_hostname (tny_account, hostname);
        /* Required for POP, at least */
@@ -529,7 +537,6 @@ modest_utils_get_available_space (const gchar *maildir_path)
 
        return (guint64) size;
 }
-
 static void
 on_destroy_dialog (GtkDialog *dialog)
 {
@@ -707,7 +714,7 @@ modest_utils_run_sort_dialog (GtkWindow *parent_window,
        if (dialog == NULL)
                return;
        modest_window_mgr_set_modal (modest_runtime_get_window_mgr (),
-                                    GTK_WINDOW (dialog));
+                                    GTK_WINDOW (dialog), parent_window);
 
        /* Fill sort keys */
        switch (type) {
@@ -757,16 +764,19 @@ modest_utils_get_account_name_from_recipient (const gchar *from_header)
                if (from) {
                        gchar *from_email = 
                                modest_text_utils_get_email_address (from);
+                       gchar *from_header_email =
+                               modest_text_utils_get_email_address (from_header);
                                
-                       if (from_email) {
-                               if (!modest_text_utils_utf8_strcmp (from_header, from_email, TRUE)) {
+                       if (from_email && from_header_email) {
+                               if (!modest_text_utils_utf8_strcmp (from_header_email, from_email, TRUE)) {
                                        account_name = g_strdup (node->data);
                                        g_free (from);
                                        g_free (from_email);
                                        break;
                                }
-                               g_free (from_email);
                        }
+                       g_free (from_email);
+                       g_free (from_header_email);
                        g_free (from);
                }
        }
@@ -775,3 +785,22 @@ modest_utils_get_account_name_from_recipient (const gchar *from_header)
 
        return account_name;
 }
+
+void 
+modest_utils_on_entry_invalid_character (ModestValidatingEntry *self, 
+                                        const gchar* character,
+                                        gpointer user_data)
+{
+       gchar *message = NULL;
+       const gchar *show_char = NULL;
+
+       if (character)
+               show_char = character;
+       else {
+               show_char = "' '";
+       }
+       
+       message = g_strdup_printf (_CS("ckdg_ib_illegal_characters_entered"), show_char);
+       modest_platform_information_banner (GTK_WIDGET (self), NULL, message);
+       g_free (message);
+}