Move asdbus stuff to src/hildon2, as it's hildon/maemo specific.
[modest] / src / hildon2 / modest-platform.c
index 1125cde..885427b 100644 (file)
@@ -41,7 +41,6 @@
 #include <modest-maemo-utils.h>
 #include <modest-utils.h>
 #include <dbus_api/modest-dbus-callbacks.h>
-#include <modest-osso-autosave-callbacks.h>
 #include <libosso.h>
 #include <tny-maemo-conic-device.h>
 #include <tny-camel-folder.h>
@@ -208,15 +207,6 @@ modest_platform_init (int argc, char *argv[])
        hw_state.shutdown_ind = TRUE;
        osso_hw_set_event_cb(osso_context, NULL, NULL, NULL);
 
-       /* Register osso auto-save callbacks: */
-       result = osso_application_set_autosave_cb (osso_context, 
-               modest_on_osso_application_autosave, NULL /* user_data */);
-       if (result != OSSO_OK) {
-               g_printerr ("modest: osso_application_set_autosave_cb() failed.\n");
-               return FALSE;
-       }
-       
-
        /* Make sure that the update interval is changed whenever its gconf key 
         * is changed */
        /* CAUTION: we're not using here the
@@ -1604,6 +1594,10 @@ void
 modest_platform_on_new_headers_received (GList *URI_list,
                                         gboolean show_visual)
 {
+       /* Check if the user wants to show notifications or not */
+       if (!modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_NOTIFICATIONS, NULL))
+               return;
+
        if (g_list_length (URI_list) == 0)
                return;
 
@@ -1615,6 +1609,7 @@ modest_platform_on_new_headers_received (GList *URI_list,
        gchar *from;
        TnyAccountStore *acc_store;
        TnyAccount *account;
+       gchar *acc_name;
 
        data = (ModestMsgNotificationData *) URI_list->data;
 
@@ -1664,10 +1659,9 @@ modest_platform_on_new_headers_received (GList *URI_list,
        /* Set the account of the headers */
        acc_store = (TnyAccountStore *) modest_runtime_get_account_store ();
        account = tny_account_store_find_account (acc_store, data->uri);
+       acc_name = NULL;
        if (account) {
-               const gchar *acc_name;
-               acc_name =
-                       modest_tny_account_get_parent_modest_account_name_for_server_account (account);
+               acc_name = g_strdup (modest_tny_account_get_parent_modest_account_name_for_server_account (account));
                notify_notification_set_hint_string(NOTIFY_NOTIFICATION (notification),
                                                    "email-account",
                                                    acc_name);
@@ -1678,9 +1672,11 @@ modest_platform_on_new_headers_received (GList *URI_list,
                GSList *notifications_list = NULL;
 
                /* Get previous notifications ids */
-               notifications_list = modest_conf_get_list (modest_runtime_get_conf (),
-                                                          MODEST_CONF_NOTIFICATION_IDS,
-                                                          MODEST_CONF_VALUE_INT, NULL);
+               if (acc_name) {
+                       notifications_list = modest_account_mgr_get_list (modest_runtime_get_account_mgr (), acc_name,
+                                                                         MODEST_ACCOUNT_NOTIFICATION_IDS,
+                                                                         MODEST_CONF_VALUE_INT, FALSE);
+               }
 
                /* Save id in the list */
                g_object_get(G_OBJECT (notification), "id", &notif_id, NULL);
@@ -1691,19 +1687,22 @@ modest_platform_on_new_headers_received (GList *URI_list,
                   not to store the list in gconf */
 
                /* Save the ids */
-               modest_conf_set_list (modest_runtime_get_conf (), MODEST_CONF_NOTIFICATION_IDS,
-                                     notifications_list, MODEST_CONF_VALUE_INT, NULL);
-
+               if (acc_name)
+                       modest_account_mgr_set_list (modest_runtime_get_account_mgr (), acc_name,
+                                                    MODEST_ACCOUNT_NOTIFICATION_IDS,
+                                                    notifications_list, MODEST_CONF_VALUE_INT, FALSE);
+                       
                g_slist_free (notifications_list);
        } else {
                g_warning ("Failed to send notification");
        }
+       g_free (acc_name);
 
 #endif /*MODEST_HAVE_HILDON_NOTIFY*/
 }
 
 void
-modest_platform_remove_new_mail_notifications (gboolean only_visuals) 
+modest_platform_remove_new_mail_notifications (gboolean only_visuals, const gchar *acc_name) 
 {
        if (only_visuals) {
 #ifdef MODEST_HAVE_MCE
@@ -1723,9 +1722,10 @@ modest_platform_remove_new_mail_notifications (gboolean only_visuals)
        GSList *notif_list = NULL;
 
        /* Get previous notifications ids */
-       notif_list = modest_conf_get_list (modest_runtime_get_conf (), 
-                                          MODEST_CONF_NOTIFICATION_IDS, 
-                                          MODEST_CONF_VALUE_INT, NULL);
+       notif_list = modest_account_mgr_get_list (modest_runtime_get_account_mgr (), 
+                                                 acc_name,
+                                                 MODEST_ACCOUNT_NOTIFICATION_IDS, 
+                                                 MODEST_CONF_VALUE_INT, FALSE);
 
         while (notif_list) {
                gint notif_id;
@@ -1748,10 +1748,13 @@ modest_platform_remove_new_mail_notifications (gboolean only_visuals)
         }
 
        /* Save the ids */
-       modest_conf_set_list (modest_runtime_get_conf (), MODEST_CONF_NOTIFICATION_IDS, 
-                             notif_list, MODEST_CONF_VALUE_INT, NULL);
+       if (notif_list) {
+               modest_account_mgr_set_list (modest_runtime_get_account_mgr (), acc_name,
+                                            MODEST_ACCOUNT_NOTIFICATION_IDS,
+                                            notif_list, MODEST_CONF_VALUE_INT, FALSE);
 
-       g_slist_free (notif_list);
+               g_slist_free (notif_list);
+       }
 
 #endif /* MODEST_HAVE_HILDON_NOTIFY */
 }
@@ -3035,7 +3038,8 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window,
                                              GTK_WINDOW (parent_window),
                                              GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR |
                                              GTK_DIALOG_DESTROY_WITH_PARENT,
-                                             _HL("wdgt_bd_new"), MODEST_GTK_RESPONSE_NEW_FOLDER,
+                                             _FM ("ckdg_bd_change_folder_new_folder"),
+                                             MODEST_GTK_RESPONSE_NEW_FOLDER,
                                              NULL);
 
        align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
@@ -3158,3 +3162,60 @@ modest_platform_get_list_to_move (ModestWindow *window)
 
        return list;
 }
+
+DBusConnection*
+modest_platform_get_dbus_connection (void)
+{
+       osso_context_t *osso_context;
+       DBusConnection *con;
+
+       osso_context = modest_maemo_utils_get_osso_context();
+
+       con = osso_get_dbus_connection (osso_context);
+
+       return con;
+}
+
+void
+modest_platform_emit_folder_updated_signal (const gchar *account_id, const gchar *folder_id)
+{
+       DBusConnection *con;
+
+       con = modest_platform_get_dbus_connection ();
+       if (!con) return;
+
+       modest_dbus_emit_folder_updated_signal (con, account_id, folder_id);
+}
+
+void
+modest_platform_emit_account_created_signal (const gchar *account_id)
+{
+       DBusConnection *con;
+
+       con = modest_platform_get_dbus_connection ();
+       if (!con) return;
+
+       modest_dbus_emit_account_created_signal (con, account_id);
+}
+
+void
+modest_platform_emit_account_removed_signal (const gchar *account_id)
+{
+       DBusConnection *con;
+
+       con = modest_platform_get_dbus_connection ();
+       if (!con) return;
+
+       modest_dbus_emit_account_removed_signal (con, account_id);
+}
+void
+modest_platform_emit_msg_read_changed_signal (const gchar *msg_uid,
+                                             gboolean is_read)
+{
+       DBusConnection *con;
+
+       con = modest_platform_get_dbus_connection ();
+       if (!con) return;
+
+       modest_dbus_emit_msg_read_changed_signal (con, msg_uid, is_read);
+}