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)
Fixes Issue 577
K-9 has earned its Canine Good Citizen.
K-9 now respects the Android-global Background data preference, by
default. However, there is an override, allowing K-9 to ignore the
global preference, by either always running around and synchronizing
in the background, or staying put and not synchronizing.
A user can now elect to turn off mail synchronization across all
accounts in either the K-9 Preferences page by setting Background
synchronization to Never, or leaving that value as "When 'Background
data' is checked" and deselecting the Android-global Background data
preference.
This commit contains the entirety of the changes performed in the
issue4-1.X branch from revision 718 through revision 851. Because the
issue4-1.X branch was up-to-date with trunk revision 847 at revision
849, the source of this commit was not an "svn merge". Instead, it is
merely a copy of all changed files from the issue4-1.X branch to my
trunk working copy and a straight commit.
Also:
Issue 551
Issue 628
Issue 650
Issue 654
Issue 656
Issue 682
Issue 696
Issue 30
Provide support for multiple identities. Identities can be managed in
the Account Settings. While composing a message, an identity can be
chosen for sending. Identity information and signature edits are
saved in a header field, so that they survive being synced to the
server and back.
Provide support for editing the quoted text, either for replies or
forwards. The quoted text is immediately editable, in a separate
editor from the main body. When saved in a draft, the two are
contatenated, but the length of the main body is saved with the
identity information, and is used to split the two parts again, when
opening the draft.