- notification = hildon_notification_new (tny_header_get_from (header),
- subject,
- "qgn_list_messagin",
- NULL);
-
- folder = tny_header_get_folder (header);
- url = g_strdup_printf ("%s/%s",
- tny_folder_get_url_string (folder),
- tny_header_get_uid (header));
- g_object_unref (folder);
-
- hildon_notification_add_dbus_action(notification,
- "default",
- "Cancel",
- MODEST_DBUS_SERVICE,
- MODEST_DBUS_OBJECT,
- MODEST_DBUS_IFACE,
- MODEST_DBUS_METHOD_OPEN_MESSAGE,
- G_TYPE_STRING, url,
- -1);
- g_free (url);
+ display_date = modest_text_utils_get_display_date (tny_header_get_date_received (header));
+ display_address = modest_text_utils_get_display_address (tny_header_get_from (header));
+ summary = g_strdup_printf ("%s - %s", display_date, display_address);
+ notification = hildon_notification_new (summary,
+ tny_header_get_subject (header),
+ "qgn_list_messagin",
+ "email.arrive");
+
+ /* Create the message URL */
+ url = g_strdup_printf ("%s/%s", tny_folder_get_url_string (folder),
+ tny_header_get_uid (header));
+
+ hildon_notification_add_dbus_action(notification,
+ "default",
+ "Cancel",
+ MODEST_DBUS_SERVICE,
+ MODEST_DBUS_OBJECT,
+ MODEST_DBUS_IFACE,
+ MODEST_DBUS_METHOD_OPEN_MESSAGE,
+ G_TYPE_STRING, url,
+ -1);
+
+ /* Play sound if the user wants. Show the LED
+ pattern. Show and play just one */
+ if (G_UNLIKELY (first_notification)) {
+ first_notification = FALSE;
+ if (modest_conf_get_bool (modest_runtime_get_conf (),
+ MODEST_CONF_PLAY_SOUND_MSG_ARRIVE,
+ NULL)) {
+ notify_notification_set_hint_string(NOTIFY_NOTIFICATION (notification),
+ "sound-file", "/usr/share/sounds/ui-new_email.wav");
+ }
+
+ /* Set the led pattern */
+ notify_notification_set_hint_int32 (NOTIFY_NOTIFICATION (notification),
+ "dialog-type", 4);
+ notify_notification_set_hint_string(NOTIFY_NOTIFICATION (notification),
+ "led-pattern",
+ "PatternCommunicationEmail");
+ }
+
+ /* Notify. We need to do this in an idle because this function
+ could be called from a thread */
+ notify_notification_show (NOTIFY_NOTIFICATION (notification), NULL);
+
+ /* Save id in the list */
+ g_object_get(G_OBJECT(notification), "id", ¬if_id, NULL);
+ notifications_list = g_slist_prepend (notifications_list, GINT_TO_POINTER(notif_id));
+ /* We don't listen for the "closed" signal, because we
+ don't care about if the notification was removed or
+ not to store the list in gconf */