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. Touch builds include extra classes and resources to support touch-screen devices, but should fall back to the same code as their non-touch counterparts if run on traditional devices.
- BlackBerry OS 4.2.1
- BlackBerry OS 4.6.0
- BlackBerry OS 4.7.0 (Non-touch)
- BlackBerry OS 4.7.0 (Touch)
- BlackBerry OS 5.0.0 (Non-touch)
- BlackBerry OS 5.0.0 (Touch)
Known issues
There are obviously far more issues listed within the task list, but these are general things anyone should know when attempting to run the development version.
- Application-writable local file storage is currently required.
- On most devices this means an SD Card, but the Storm has this built-in as well
- The built-in file storage on most devices is not writable by 3rd-party applications
- It is advisable to go straight to the Global Configuration screen, make sure Media Card is selected, and toggle anything necessary to force the configuration to be saved. This should fix any file-related errors that strangely might appear.
- All possible error conditions might not be handled elegantly
- 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.
- Large messages on POP servers may not load correctly. (these are messages longer than size limit in the advanced account settings)
- Memory management has not yet been implemented. 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...
- Device: BlackBerry Bold 9000
- OS: 5.0.0.330
- Network: T-Mobile (US) and Wi-Fi
- Mail server: Cyrus (IMAP) and Sendmail (SMTP)
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. Once the code is sufficiently stable that I move into integration/bugfix mode, I'll consider moving to a better ticket-based approach.
- Make LogicMail handle the lack of a writable filesystem root (#167)
- Option 1: Require a writable filesystem to function
- Option 2: Fall back to persistant store with more limited functionality
- Implement intelligent network interface selection (#146)
- Brute-force and/or CoverageInfo on <5.0
- Network API on 5.0
- Implement add-attachment use case (#168)
- UI for adding attachments during composition
- Custom dialog on <5.0
- File Picker API on 5.0
- Need to handle drafts
- Need to handle sending messages with attachments
- UI for adding attachments during composition
- 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)
- Fix loaded HTML message seen flag (may need rules for manual flag change) (#177)
- BrowserField2 on 5.0 (#170)
- Wizard issues
- Message count updates quirky, need scrub/fix
- Check MessageToken.isLoadable() to deal with POP cache/server mismatch cases
- MIMEInputStream still broken on truncated POP responses
- Detect connection timeout errors (already sort-of works)
- Provide a way to cancel pending queue items if connection fails?
- CompositionScreen: Click ball on field does not show "Select address"
- 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
- Do a complete scrub of the Copy-To/Move-To Use Cases (#173)
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] 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
