Thunderbird2:NewMailAlerts

From MozillaWiki
Jump to: navigation, search
Please do not edit these pages unless you are a member of Team Thunderbird. Your feedback and comments are welcomed on the discussion page.

Tracked by: bug 312940

Design Overview

Objectives

The primary objectives of this project are to:

  • Make the existing new mail notification alert more informative and helpful by including information like subject, sender and the first line of message text.

Background

Thunderbird has always had an animated new mail alert notification window which informs the user that a particular mail account has new messages. The current alert appears in the lower right hand corner of the window, sliding up into view and then sliding back down out of view again.

old alert notification image

Requirements

The new UI should contain the following pieces of information:

  • Number of new messages for the account triggering the alert
  • The name of the account with new mail
  • For the first 'n' messages, include the subject, sender, and the first line or so of message body text for each message.
  • Improve the animation effect used to show the alert from the existing 'slide' to a fade transitition effect.
  • Add a close button to allow users to close the alert by hand
  • Left clicking the new mail icon in the Windows system tray should re-open the new mail alert notification.

Design

Here's the new design showing the new UI elements we added to the alert.

newmailalert.png

Tracking Bugs

For the most part, this new feature has been implemented already. For details, see the following bugs used to implement this work:

  • Bug 312940 --> the meta bug for this feature.
  • Bug 330523 --> replacing the animation with a fade effect.
  • Bug 329954 --> Re-open the alert on left clicking the biff icon. Add a close button.

Front End Implementation

The new mail source code can be found here:

Back End Implementation

Showing the first line of the message body in the alert notification proved challenging for IMAP where we typically don't fetch the message body until the user tries to read the message. We had to explicitly request the first 'n' bytes of the message. This is an asynchronous operation that happens after the client is informed of the new message.

Open Issues