Refactored modest_platform_on_new_headers_received().
authorAlberto Garcia <agarcia@igalia.com>
Tue, 22 Jan 2008 19:11:39 +0000 (19:11 +0000)
committerAlberto Garcia <agarcia@igalia.com>
Tue, 22 Jan 2008 19:11:39 +0000 (19:11 +0000)
New function modest_platform_push_email_notification().
This removes a critical warning and makes notifications work
again from on_msg_count_changed()

pmo-trunk-r4078

src/gnome/modest-platform.c
src/maemo/modest-main-window.c
src/maemo/modest-platform.c
src/modest-platform.h

index 2105b1f..cc9b6a4 100644 (file)
@@ -320,6 +320,12 @@ modest_platform_get_global_settings_dialog ()
        return modest_gnome_global_settings_dialog_new ();
 }
 
+void
+modest_platform_push_email_notification(void)
+{
+       /* TODO: implement this */
+       g_print ("--------------- NEW MESSAGE ARRIVED ---------------\n");
+}
 
 void 
 modest_platform_on_new_headers_received (TnyList *header_list,
index 83039d9..80abed1 100644 (file)
@@ -1923,7 +1923,7 @@ on_msg_count_changed (ModestHeaderView *header_view,
 
                /* Play a sound (if configured) and make the LED blink  */
                if (changed & TNY_FOLDER_CHANGE_CHANGED_ADDED_HEADERS) {
-                       modest_platform_on_new_headers_received (NULL, FALSE);
+                       modest_platform_push_email_notification ();
                }
        }
 
index f34538c..f325631 100644 (file)
@@ -1336,12 +1336,52 @@ modest_platform_set_update_interval (guint minutes)
        return TRUE;
 }
 
+void
+modest_platform_push_email_notification(void)
+{
+       gboolean play_sound;
+       ModestWindow *main_window;
+       gboolean screen_on = TRUE, app_in_foreground;
+
+       /* Check whether or not we should play a sound */
+       play_sound = modest_conf_get_bool (modest_runtime_get_conf (),
+                                          MODEST_CONF_PLAY_SOUND_MSG_ARRIVE,
+                                          NULL);
+
+       /* Get the screen status */
+       main_window = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (), FALSE);
+       if (main_window)
+               screen_on = modest_main_window_screen_is_on (MODEST_MAIN_WINDOW (main_window));
+
+       /* Get the window status */
+       app_in_foreground = hildon_program_get_is_topmost (hildon_program_get_instance ());
+
+       /* If the screen is on and the app is in the
+          foreground we don't show anything */
+       if (!(screen_on && app_in_foreground)) {
+               /* Play a sound */
+               if (play_sound)
+                       hildon_play_system_sound (MODEST_NEW_MAIL_SOUND_FILE);
+
+               /* Activate LED. This must be deactivated by
+                  modest_platform_remove_new_mail_notifications */
+#ifdef MODEST_HAVE_MCE
+               osso_rpc_run_system (modest_maemo_utils_get_osso_context (),
+                                    MCE_SERVICE,
+                                    MCE_REQUEST_PATH,
+                                    MCE_REQUEST_IF,
+                                    MCE_ACTIVATE_LED_PATTERN,
+                                    NULL,
+                                    DBUS_TYPE_STRING, MODEST_NEW_MAIL_LIGHTING_PATTERN,
+                                    DBUS_TYPE_INVALID);
+#endif
+       }
+}
+
 void 
 modest_platform_on_new_headers_received (TnyList *header_list,
                                         gboolean show_visual)
 {
-       gboolean play_sound;
-
        g_return_if_fail (TNY_IS_LIST(header_list));
 
        if (tny_list_get_length(header_list) == 0) {
@@ -1349,48 +1389,20 @@ modest_platform_on_new_headers_received (TnyList *header_list,
                return;
        }
        
-       /* Check whether or not we should play a sound */
-       play_sound = modest_conf_get_bool (modest_runtime_get_conf (),
-                                          MODEST_CONF_PLAY_SOUND_MSG_ARRIVE,
-                                          NULL);
-
        if (!show_visual) {
-               gboolean screen_on = TRUE, app_in_foreground;
-               ModestWindow *main_window;
-
-               /* Get the screen status */
-               main_window = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr (), FALSE);
-               if (main_window)
-                       screen_on = modest_main_window_screen_is_on (MODEST_MAIN_WINDOW (main_window));
-
-               /* Get the window status */
-               app_in_foreground = hildon_program_get_is_topmost (hildon_program_get_instance ());
-
-               /* If the screen is on and the app is in the
-                  foreground we don't show anything */
-               if (!(screen_on && app_in_foreground)) {
-                       /* Play a sound */
-                       if (play_sound)
-                               hildon_play_system_sound (MODEST_NEW_MAIL_SOUND_FILE);
-                       
-                       /* Activate LED. This must be deactivated by
-                          modest_platform_remove_new_mail_notifications */
-#ifdef MODEST_HAVE_MCE
-                       osso_rpc_run_system (modest_maemo_utils_get_osso_context (),
-                                            MCE_SERVICE,
-                                            MCE_REQUEST_PATH,
-                                            MCE_REQUEST_IF,
-                                            MCE_ACTIVATE_LED_PATTERN,
-                                            NULL,
-                                            DBUS_TYPE_STRING, MODEST_NEW_MAIL_LIGHTING_PATTERN,
-                                            DBUS_TYPE_INVALID);
-#endif
-               }
+                modest_platform_push_email_notification ();
                /* We do a return here to avoid indentation with an else */
                return;
        }
 
 #ifdef MODEST_HAVE_HILDON_NOTIFY
+       gboolean play_sound;
+
+       /* Check whether or not we should play a sound */
+       play_sound = modest_conf_get_bool (modest_runtime_get_conf (),
+                                          MODEST_CONF_PLAY_SOUND_MSG_ARRIVE,
+                                          NULL);
+
        HildonNotification *notification;
        TnyIterator *iter;
        GSList *notifications_list = NULL;
index 9e2d386..28f1b9f 100644 (file)
@@ -297,6 +297,14 @@ gboolean modest_platform_set_update_interval (guint minutes);
 GtkWidget* modest_platform_get_global_settings_dialog (void);
 
 /**
+ * modest_platform_push_email_notification:
+ *
+ * Notify the user when new e-mail arrives by playing a sound, making
+ * a light blink, etc.
+ */
+void modest_platform_push_email_notification(void);
+
+/**
  * modest_platform_on_new_headers_received:
  * @header_list: the list of new received headers
  * @show_visual: adds a visual notification