TnyAccount *tny_account;
tny_account = TNY_ACCOUNT (tny_iterator_get_current (iter));
if (tny_account) {
- TnyConnectionStatus conn_status = tny_account_get_connection_status (tny_account);
-
- if (conn_status != TNY_CONNECTION_STATUS_RECONNECTING &&
- conn_status != TNY_CONNECTION_STATUS_INIT) {
- if (!strcmp (tny_account_get_id (tny_account), account_name)) {
- found = TRUE;
- modest_tny_account_update_from_account (tny_account);
- g_signal_emit (G_OBJECT(self), signals[ACCOUNT_CHANGED_SIGNAL], 0, tny_account);
- }
+ if (!strcmp (tny_account_get_id (tny_account), account_name)) {
+ found = TRUE;
+ modest_tny_account_update_from_account (tny_account);
+ g_signal_emit (G_OBJECT(self), signals[ACCOUNT_CHANGED_SIGNAL], 0, tny_account);
}
g_object_unref (tny_account);
}
gboolean created_dialog = FALSE;
if (!found || !dialog) {
+ ModestAccountSettings *settings;
dialog = modest_account_settings_dialog_new ();
- modest_account_settings_dialog_set_account_name (dialog, modest_account_name);
+ settings = modest_account_mgr_load_account_settings (priv->account_mgr, modest_account_name);
+ modest_account_settings_dialog_set_account (dialog, settings);
+ g_object_unref (settings);
modest_account_settings_dialog_switch_to_user_info (dialog);
modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog));
g_return_val_if_fail (account, NULL);
MODEST_DEBUG_BLOCK(
- g_debug ("DEBUG: modest: %s: prompt (not shown) = %s\n", __FUNCTION__, prompt_not_used);
+ g_debug ("%s: prompt (not shown) = %s\n", __FUNCTION__, prompt_not_used);
);
/* Initialize the output parameter: */
NULL,
(gpointer*)&pwd_ptr);
MODEST_DEBUG_BLOCK(
- g_debug ("DEBUG: modest: %s: Already asked = %d\n", __FUNCTION__, already_asked);
+ g_debug ("%s: Already asked = %d\n", __FUNCTION__, already_asked);
);
/* If the password is not already there, try ModestConf */
const gboolean settings_have_password =
modest_account_mgr_get_server_account_has_password (priv->account_mgr, server_account_name);
MODEST_DEBUG_BLOCK(
- printf ("DEBUG: modest: %s: settings_have_password=%d\n",
+ printf ("%s: settings_have_password=%d\n",
__FUNCTION__, settings_have_password);
);
if (settings_have_password) {
static void
forget_password (TnyAccount *account)
{
- printf ("DEBUG: %s\n", __FUNCTION__);
ModestTnyAccountStore *self;
ModestTnyAccountStorePrivate *priv;
const TnyAccountStore *account_store;
g_return_val_if_fail (account, FALSE);
g_return_val_if_fail (error, FALSE);
- if ((error->domain != TNY_ACCOUNT_ERROR) && (error->domain != TNY_ACCOUNT_STORE_ERROR))
- return FALSE;
-
/* Get the server name: */
server_name = tny_account_get_hostname (account);
}
switch (error->code) {
- case TNY_ACCOUNT_STORE_ERROR_CANCEL_ALERT:
- case TNY_ACCOUNT_ERROR_TRY_CONNECT_USER_CANCEL:
+ case TNY_SYSTEM_ERROR_CANCEL:
/* Don't show waste the user's time by showing him a dialog telling
* him that he has just cancelled something: */
return TRUE;
- case TNY_ACCOUNT_ERROR_TRY_CONNECT_HOST_LOOKUP_FAILED:
- case TNY_ACCOUNT_ERROR_TRY_CONNECT_SERVICE_UNAVAILABLE:
+ case TNY_SERVICE_ERROR_PROTOCOL:
+ /* Like a BAD from IMAP (protocol error) */
+ case TNY_SERVICE_ERROR_LOST_CONNECTION:
+ /* Lost the connection with the service */
+ case TNY_SERVICE_ERROR_UNAVAILABLE:
+ /* You must be working online for this operation */
+ case TNY_SERVICE_ERROR_CONNECT:
/* TODO: Show the appropriate message, depending on whether it's POP or IMAP: */
switch (proto) {
case MODEST_PROTOCOL_STORE_POP:
}
break;
- case TNY_ACCOUNT_ERROR_TRY_CONNECT_AUTHENTICATION_NOT_SUPPORTED:
+ case TNY_SERVICE_ERROR_AUTHENTICATE:
/* This is "Secure connection failed", even though the logical
* ID has _certificate_ in the name: */
prompt = g_strdup (_("mail_ni_ssl_certificate_error"));
break;
- case TNY_ACCOUNT_ERROR_TRY_CONNECT_CERTIFICATE:
+ case TNY_SERVICE_ERROR_CERTIFICATE:
/* We'll show the proper dialog later */
break;
-
- case TNY_ACCOUNT_ERROR_TRY_CONNECT:
- /* The tinymail camel implementation just sends us this for almost
- * everything, so we have to guess at the cause.
- * It could be a wrong password, or inability to resolve a hostname,
- * or lack of network, or incorrect authentication method, or something entirely different: */
- /* TODO: Fix camel to provide specific error codes, and then use the
- * specific dialog messages from Chapter 12 of the UI spec.
- */
- case TNY_ACCOUNT_STORE_ERROR_UNKNOWN_ALERT:
+
+ case TNY_SYSTEM_ERROR_MEMORY:
+ /* Can't allocate memory for this operation */
+
+ case TNY_SERVICE_ERROR_UNKNOWN:
return FALSE;
default:
g_return_val_if_reached (FALSE);
}
- if (error->code == TNY_ACCOUNT_ERROR_TRY_CONNECT_CERTIFICATE)
+ if (error->code == TNY_SERVICE_ERROR_CERTIFICATE)
retval = modest_platform_run_certificate_confirmation_dialog (server_name,
error->message);
else
gboolean found = FALSE;
TnyAccount *retval = NULL;
+ g_return_val_if_fail (accounts && TNY_IS_LIST(accounts), NULL);
+
iter = tny_list_create_iterator (accounts);
while (!tny_iterator_is_done (iter) && !found) {
TnyAccount *tmp_account = NULL;
modest_tny_account_store_get_smtp_specific_transport_account_for_open_connection (ModestTnyAccountStore *self,
const gchar *account_name)
{
+ TnyDevice *device;
+
+ g_return_val_if_fail (self && MODEST_IS_TNY_ACCOUNT_STORE(self), NULL);
+ g_return_val_if_fail (account_name, NULL);
+
/* Get the current connection: */
- TnyDevice *device = modest_runtime_get_device ();
+ device = modest_runtime_get_device ();
if (!tny_device_is_online (device))
return NULL;
-
- g_return_val_if_fail (self, NULL);
-
#ifdef MODEST_HAVE_CONIC
g_return_val_if_fail (TNY_IS_MAEMO_CONIC_DEVICE (device), NULL);
if (!connection)
return NULL;
- const gchar *connection_name = con_ic_iap_get_name (connection);
- /* printf ("DEBUG: %s: connection_name=%s\n", __FUNCTION__, connection_name); */
- if (!connection_name)
+ const gchar *connection_id = con_ic_iap_get_id (connection);
+ /* printf ("DEBUG: %s: connection_id=%s\n", __FUNCTION__, connection_id); */
+ if (!connection_id)
return NULL;
/* Get the connection-specific transport acccount, if any: */
}
gchar* server_account_name = modest_account_mgr_get_connection_specific_smtp (account_manager,
- connection_name);
+ connection_id);
/* printf ("DEBUG: %s: server_account_name=%s\n", __FUNCTION__, server_account_name); */
if (!server_account_name) {
self = MODEST_TNY_ACCOUNT_STORE (user_data);
priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE (self);
- if (canceled || err) {
- /* The account was not cancelled */
- } else {
- /* Clear the cache if it's an store account */
- if (TNY_IS_STORE_ACCOUNT (account))
- tny_store_account_delete_cache (TNY_STORE_ACCOUNT (account));
- }
-
/* Remove it from the list of accounts */
if (TNY_IS_STORE_ACCOUNT (account))
tny_list_remove (priv->store_accounts, (GObject *) account);
/* Unref the extra reference added by get_server_account */
g_object_unref (account);
+
+ /* Clear the cache if it's an store account */
+ if (TNY_IS_STORE_ACCOUNT (account))
+ tny_store_account_delete_cache (TNY_STORE_ACCOUNT (account));
}
static void
-on_account_removed (ModestAccountMgr *acc_mgr, const gchar *account,
+on_account_removed (ModestAccountMgr *acc_mgr,
+ const gchar *account,
gpointer user_data)
{
TnyAccount *store_account = NULL, *transport_account = NULL;