wiki:progress20

LogicMail 2.0 Status

Supported platform configurations

This is the list of builds that the source tree is currently configured to support. Any build for OS X.Y can run on any device running OS X.Y or higher. All builds from 4.7.0 onward include touch support, if those builds are installed on a touch-capable device.

  • BlackBerry OS 4.5.0
  • BlackBerry OS 4.6.0
  • BlackBerry OS 4.7.0
  • BlackBerry OS 5.0.0
  • BlackBerry OS 6.0.0

Known issues

There are obviously far more issues listed within the task list, and the more specific ones should be documented on the milestone status page, but these are general things anyone should know when attempting to run the development version.

  • All possible error conditions might not be handled elegantly. Feel free to document these with bug report tickets if you can describe it in a way I can actually reproduce.
  • While IMAP IDLE is functional when you are connected to an IMAP mail server, there is currently no logic to handle periodic polling of a mail server. Continue to use this version in a deliberate manner like the old one, until this is taken care of. While this is (#79) the most user-requested feature of all time, it is complex enough that it might get pushed off to 2.1 in favor of a stable 2.0 release.
  • Memory management has not yet been implemented (#212). This means that any loaded message data remains in memory as long as the application is running.
  • The application might freeze for a while if it is actively processing a request on the mail server when you try to quit it.

Dogfooding

This is all the relevant information about how I'm currently using LogicMail on my own device...

Working Task List

This is a copy of a loosely combined version of the task lists I've been keeping locally to organize my efforts, and tickets I've created to track work. Once the code is sufficiently stable that I move into integration/bugfix mode, it'll mostly become tickets.

  • Add status notification when loading from local file cache (undecided on whether to do this)
  • Implement home screen banner icon for new message notification (4.6+) (#169)
  • BrowserField2 on 5.0+ (#170)
  • Wizard issues
    • Generated configuration needs to set sent/draft folders (#196)
    • Connection tester needed on last page (#197)
  • Message count updates quirky, need scrub/fix
  • MIMEInputStream still broken on truncated POP responses, and some other specific cases (#238)
  • Detect connection timeout errors (already sort-of works)
  • Provide a way to cancel pending queue items if connection fails?
  • MenuItems need ordering cleanup
  • Error-recovery use cases
    • Possible case where delete fails, but user isn't informed
    • Message headers downloaded to client then deleted on server (is error condition, but need to handle elegantly)
      • May now correctly handle some versions of this use case, due to post-connection message synchronization
  • Improve shutdown process
    • Don't freeze the UI
    • Kill any request in-process
    • Consider forcefully termination of the socket in some cases

Milestones

These checklists of features are currently out-of-date. Most of M1 is done, and most of M2 is also done, but there are plenty of loose ends to deal with.

Milestone 1

Theme: Get something functional

  • [X] Implement and integrate the new architecture
  • [X] Get existing application features functional on the new architecture
  • [X] Migrate configuration storage from J2ME RMS to RIM PS
  • [X] Implement IMAP IDLE (#56)
    • [X] Basic idle state support for current folder
    • [X] Return-to-INBOX monitoring
  • [X] Implement local folders
    • Uses local file storage with a  maildir-compatible format
    • Can use local file storage or SD card storage
    • Device firewall issues have been discovered with with  FileConnection that may force an alternate RIM PS based option to also be made available
  • [_] Enhanced mail composition use case
    • [X] Sent messages spooled through a local Outbox folder
    • [X] Unfinished messages can be saved to a designated Drafts folder
    • [/] Drafts can be resumed and sent
      • Still some rough edges with reply messages to be sorted out
  • [X] New account setup wizard
    • [X] Basic wizard workflow implementation
    • [X] Full integration for account creation
    • [X] Localization support
    • Note: The wizard also needs connection testing, which will be added in a later milestone
  • [X] User Interface Enhancements
    • [X] Rollover and notification icons for the application
    • [X] Field borders for message composition and display
      • Simulates the look of the native E-Mail application in BlackBerry OS 4.5.0, the API for which is not exposed until 4.6.0
    • [X] Spinning throbber during message loading
      • Still some integration details to sort out
    • [X] Rewritten E-Mail address entry field (the real fix for #108)
  • [/] Buzz the device on new messages
    • [X] Basic notification support and integration
    • [_] Completed notification support, with odds and ends fixed up
  • [/] Odds and ends
    • [X] IMAP protocol implementation now references messages by UID (#87)
    • [X] Continual merge of protocol bug fixes from the 1.0 baseline
  • [X] First pass of localization
    • [X] Integrate resource files and map text strings to resource keys
    • [X] Get translators to do a first pass at several languages
    • Translations: U.S. English, Dutch, German, French, Spanish, Danish, Chinese
    • Note: Translations will need to be periodically updated as features are implemented

Milestone 2

Theme: Handle data intelligently

  • [_] Implement data caching and memory management

Milestone 3

Theme: Deal with the network

  • [_] Implement intelligent connection handling

Milestone 4

Theme: Round out the rough edges

  • [_] Finish up the loose ends