From: Alberto Garcia Date: Tue, 22 Jan 2008 19:11:39 +0000 (+0000) Subject: Refactored modest_platform_on_new_headers_received(). X-Git-Tag: git_migration_finished~1771 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=6dfdd25404174f69b0b3b5da601b070b4450a047;hp=09b069e31accb6b38686b8a04d7cbf5ce01f78bc Refactored modest_platform_on_new_headers_received(). 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 --- diff --git a/src/gnome/modest-platform.c b/src/gnome/modest-platform.c index 2105b1f..cc9b6a4 100644 --- a/src/gnome/modest-platform.c +++ b/src/gnome/modest-platform.c @@ -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, diff --git a/src/maemo/modest-main-window.c b/src/maemo/modest-main-window.c index 83039d9..80abed1 100644 --- a/src/maemo/modest-main-window.c +++ b/src/maemo/modest-main-window.c @@ -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 (); } } diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index f34538c..f325631 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -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; diff --git a/src/modest-platform.h b/src/modest-platform.h index 9e2d386..28f1b9f 100644 --- a/src/modest-platform.h +++ b/src/modest-platform.h @@ -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