Message List batch ops wired to bulk flagging.
Manage batch button state when messages are deleted (from outside
agents) while in batch mode.
Remove throws clause from Folder.close() to make it easier to close
folders where necessary.
Eliminate some cruft from MessageList
Consolidate unreadMessageCount fetching in notifyAccount
Fixes Issue 734
On reconnection, IMAP IDLE folders will now fetch up to the most
recent 10 message that arrived while a IDLE connection was not
available.
Fixes Issue 232
A serving of NAMESPACE-based auto-configuration on the side. If the
IMAP prefix is empty, and the IMAP server supports NAMESPACE, use the
IMAP prefix supplied by NAMESPACE. Also, if the user manually puts
the separator as the last character in the prefix, don't append the
separator.
Also:
Improved reliability of IMAP IDLE incoming message and flag state
change handling. Reduction (but not elimination) of multiple
connections under startup conditions.
1) Actual message sync on MessagingController uses same connection as
IDLE for faster and more efficient push operation. Uses fewer
connections to the server.
2) More aggressive handling of untagged responses should more reliably
get flag changes and new messages when many events happen at once.
3) Simplification of new mail notification
4) Push mail now respects the folder visible limit
5) When multiple untagged FETCH responses arrive en bloc, the actual
message flags and UIDs are fetched with a single request
Fixes Issue 394
Fixes Issue 763
Completely new Services architecture providing proper Service
lifecycle management.
Long running tasks in MailService are executed in a separate thread,
but the service is not stopped until the tasks are complete.
SleepService for providing synchronous sleeps with proper WakeLock
integration.
Mail polling logic moved from MailService to PollService
PushService to keep application from being killed while push is
running.
Improved logging of IMAP protocol, including logging folder name,
thread and connection hashcode.
Don't put a failed connection back into the IMAP mConnections
storage.
IMAP IDLE uses new SleepService for delaying between failed connection
attempts (allows phone to sleep and provides better reliability)
Use a ThreadLocal for ImapPusher wakelocks
Component enablement/disablement in Email is done only when components
are out of phase with desired state. (Issue 188)