MODEST_TYPE_TRANSPORT_ACCOUNT_DECORATOR);
smtp_protocol_type_id = modest_protocol_get_type_id (protocol);
modest_protocol_set_translation (protocol, MODEST_PROTOCOL_TRANSLATION_CONNECT_ERROR, translation_is_userdata, "emev_ib_ui_smtp_server_invalid", NULL);
+ modest_protocol_set_translation (protocol, MODEST_PROTOCOL_TRANSLATION_ACCOUNT_CONNECTION_ERROR, translation_is_userdata, "emev_ib_ui_smtp_server_invalid", NULL);
modest_protocol_set_translation (protocol, MODEST_PROTOCOL_TRANSLATION_AUTH_ERROR, translation_is_userdata, "emev_ni_ui_smtp_authentication_fail_error", NULL);
modest_protocol_registry_add (self, protocol, 2,
MODEST_PROTOCOL_REGISTRY_TRANSPORT_STORE_PROTOCOLS,
g_free(msg_uid);
return;
}
-
+
info = item->data;
/* Keep in queue so that we remember that the opertion has failed */
if (err->code == TNY_SYSTEM_ERROR_CANCEL) {
info->status = MODEST_TNY_SEND_QUEUE_SUSPENDED;
} else {
- if (err->code == TNY_SERVICE_ERROR_CONNECT) {
- TnyCamelTransportAccount* transport;
- TnyTransportAccount *conn_specific;
-
- transport = tny_camel_send_queue_get_transport_account (TNY_CAMEL_SEND_QUEUE (self));
- if (transport) {
- gchar *message;
- ModestTnyAccountStore *acc_store;
- const gchar *acc_name;
-
- acc_store = modest_runtime_get_account_store();
- acc_name = modest_tny_account_get_parent_modest_account_name_for_server_account (TNY_ACCOUNT (transport));
- conn_specific = (TnyTransportAccount *)
- modest_tny_account_store_get_transport_account_for_open_connection (acc_store, acc_name);
- if (conn_specific) {
- message = g_strdup_printf (_("emev_ib_ui_smtp_server_invalid"),
- tny_account_get_hostname (TNY_ACCOUNT (conn_specific)));
- g_object_unref (conn_specific);
- } else {
- message = g_strdup_printf (_("emev_ib_ui_smtp_server_invalid"),
- tny_account_get_hostname (TNY_ACCOUNT (transport)));
- }
- modest_platform_run_alert_dialog (message, FALSE);
- g_free (message);
- g_object_unref (transport);
- }
- }
info->status = MODEST_TNY_SEND_QUEUE_FAILED;
}
priv->current = NULL;
-
+
/* Notify status has changed */
g_signal_emit (self, signals[STATUS_CHANGED_SIGNAL], 0, info->msg_id, info->status);
gpointer user_data)
{
const gchar* server_name = NULL;
- TnyTransportAccount *server_account;
+ TnyTransportAccount *transport;
gchar *message = NULL;
+ ModestProtocol *protocol;
/* Don't show anything if the user cancelled something or the
* send receive request is not interactive. Authentication
return;
- /* Get the server name: */
- server_account =
- TNY_TRANSPORT_ACCOUNT (tny_camel_send_queue_get_transport_account (TNY_CAMEL_SEND_QUEUE (self)));
- if (server_account)
- server_name = tny_account_get_hostname (TNY_ACCOUNT (server_account));
- else
- g_return_if_reached ();
+ /* Get the server name. Note that we could be using a
+ connection specific transport account */
+ transport = (TnyTransportAccount *)
+ tny_camel_send_queue_get_transport_account (TNY_CAMEL_SEND_QUEUE (self));
+ if (transport) {
+ ModestTnyAccountStore *acc_store;
+ const gchar *acc_name;
+ TnyTransportAccount *conn_specific;
+
+ acc_store = modest_runtime_get_account_store();
+ acc_name = modest_tny_account_get_parent_modest_account_name_for_server_account (TNY_ACCOUNT (transport));
+ conn_specific = (TnyTransportAccount *)
+ modest_tny_account_store_get_transport_account_for_open_connection (acc_store, acc_name);
+ if (conn_specific) {
+ server_name = tny_account_get_hostname (TNY_ACCOUNT (conn_specific));
+ g_object_unref (conn_specific);
+ } else {
+ server_name = tny_account_get_hostname (TNY_ACCOUNT (transport));
+ }
+ g_object_unref (transport);
+ }
+
+ /* Get protocol */
+ protocol = modest_protocol_registry_get_protocol_by_name (modest_runtime_get_protocol_registry (),
+ MODEST_PROTOCOL_REGISTRY_TRANSPORT_STORE_PROTOCOLS,
+ tny_account_get_proto (TNY_ACCOUNT (transport)));
+ if (!protocol) {
+ g_warning ("%s: Account with no proto", __FUNCTION__);
+ return;
+ }
/* Show the appropriate message text for the GError: */
switch (err->code) {
case TNY_SERVICE_ERROR_CONNECT:
- message = g_strdup_printf (_("emev_ib_ui_smtp_server_invalid"), server_name);
+ message = modest_protocol_get_translation (protocol,
+ MODEST_PROTOCOL_TRANSLATION_ACCOUNT_CONNECTION_ERROR,
+ server_name);
break;
case TNY_SERVICE_ERROR_SEND:
message = g_strdup (_CS("sfil_ib_unable_to_send"));
break;
case TNY_SERVICE_ERROR_UNAVAILABLE:
- message = g_strdup_printf (_("emev_ib_ui_smtp_server_invalid"), server_name);
+ message = modest_protocol_get_translation (protocol,
+ MODEST_PROTOCOL_TRANSLATION_CONNECT_ERROR,
+ server_name);
break;
default:
g_warning ("%s: unexpected ERROR %d",
modest_platform_run_information_dialog (NULL, message, FALSE);
g_free (message);
- g_object_unref (server_account);
}
void