#include <tny-camel-transport-account.h>
#include <tny-camel-imap-store-account.h>
#include <tny-camel-pop-store-account.h>
-
+#include "modest-text-utils.h"
#include <modest-runtime.h>
#include <modest-marshal.h>
#include <modest-protocol-registry.h>
static void
show_password_warning_only (const gchar *msg)
{
- ModestWindow *main_window =
- modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (), FALSE); /* don't create */
-
/* Show an explanatory temporary banner: */
- if (main_window)
+ if (modest_window_mgr_get_num_windows (modest_runtime_get_window_mgr ()))
modest_platform_information_banner (NULL, NULL, msg);
}
__FUNCTION__, server_account_name ? server_account_name : "<NULL>");
if (cancel)
*cancel = TRUE;
-
+
return NULL;
}
-
+
/* This hash map stores passwords, including passwords that are not stored in gconf. */
/* Is it in the hash? if it's already there, it must be wrong... */
pwd_ptr = (gpointer)&pwd; /* pwd_ptr so the compiler does not complained about
MODEST_DEBUG_BLOCK(
g_debug ("%s: Already asked = %d\n", __FUNCTION__, already_asked);
);
-
+
/* If the password is not already there, try ModestConf */
if (!already_asked) {
pwd = modest_account_mgr_get_server_account_password (priv->account_mgr,
gchar *password;
password = modest_account_mgr_get_server_account_password (priv->account_mgr,
server_account_name);
- if (!password || strlen(password) == 0)
+
+ if (already_asked)
+ msg = g_strdup (_("mcen_ib_username_pw_incorrect"));
+ else if (!password || strlen(password) == 0)
msg = g_strdup_printf (_("emev_ni_ui_smtp_passwd_invalid"),
tny_account_get_name (account),
tny_account_get_hostname (account));
if (settings_have_password) {
/* The password must be wrong, so show the account settings dialog so it can be corrected: */
show_wrong_password_dialog (account);
-
+
if (cancel)
*cancel = TRUE;
-
+
return NULL;
}
-
+
/* we don't have it yet. Get the password from the user */
const gchar* account_id = tny_account_get_id (account);
gboolean remember = FALSE;
pwd = NULL;
-
+
if (already_asked) {
const gchar *msg;
gboolean username_known =
server_account_name);
/* If the login has ever succeeded then show a specific message */
if (username_known)
- msg = dgettext ("hildon-common-strings", "ecdg_ib_set_password_incorrect");
+ msg = _CS ("ecdg_ib_set_password_incorrect");
else
msg = _("mcen_ib_username_pw_incorrect");
show_password_warning_only (msg);
if (error->code == TNY_SERVICE_ERROR_CERTIFICATE)
retval = modest_platform_run_certificate_confirmation_dialog (server_name,
error->message);
- else if (error->code == TNY_SERVICE_ERROR_AUTHENTICATE) {
+ else if (error->code == TNY_SERVICE_ERROR_AUTHENTICATE ||
+ error->code == TNY_SERVICE_ERROR_CONNECT) {
+
modest_platform_run_information_dialog (NULL, prompt, TRUE);
/* Show the account dialog if it was wrong */
- if (error->code == TNY_SERVICE_ERROR_CONNECT ||
- error->code == TNY_SERVICE_ERROR_AUTHENTICATE)
+ if (error->code == TNY_SERVICE_ERROR_AUTHENTICATE)
show_wrong_password_dialog (account);
retval = TRUE;
if (!server_account_name) {
return NULL; /* No connection-specific SMTP server was specified for this connection. */
}
-
+
TnyAccount* account = modest_tny_account_store_get_tny_account_by (self,
MODEST_TNY_ACCOUNT_STORE_QUERY_ID,
server_account_name);
/* printf ("DEBUG: %s: account=%p\n", __FUNCTION__, account); */
- g_free (server_account_name);
+ g_free (server_account_name);
/* Unref the get()ed object, as required by the tny_maemo_conic_device_get_iap() documentation. */
g_object_unref (connection);
-
+
return account;
#else
return NULL; /* TODO: Implement this for GNOME, instead of just Maemo? */