synchronization could happen if an Exception was thrown while parsing
an untagged response without using executeSimpleCommand. For
instance, while doing a fetch. Once synchronization was lost, later
commands would fail in surprising ways. One manifestation of such
failures was spontaneously emptying of folders when search results
were not returned properly. The new code makes sure to only accept OK
responses with the tag of the command, and discards the untagged
responses from previous command.
Issue 252
394: Replace code change lost with move of DAmail MailService.java to
K-9. Eliminate the stopSelfs. Without the stopSelfs, the Service
remains active and the Android platform is far less likely to kill the
process, although not absolutely forbidden from doing so. Better will
be to implement the full BroadcastReceiver methodology referred to in
Issue 394, which would allow replacing the stopSelfs, which would make
K-9 a better good citizen.
252: Fix logic for raising and canceling notifications based on number
of new unread messages and total unread messages.
Issue 201
Issue 224
Issue 342
Handle untagged EXISTS messages at any time. Should increase
synchronization speed and accuracy.
Handle IMAP servers that send a NIL where a literal is normally.
Avoids failure to sync when folder contains certain messages.
Throw Exception if folder message count is less than 0, avoiding
accidentally emptying a folder.
Issue 192
Do not remove markers for deleted messages, even if the corresponding
remote message is not returned by the remote store. The remote
message may not be returned simply because the query did not encompass
it on this run. If the account's delete policy is set to "Do not
delete from server", or the delete hasn't succeeded before a folder
refresh, a message for which the deleted marker has been removed can
errorneously reappear.
This will lead to the local store eventually having a large number of
deleted message markers. In the long term, we'll need a way to manage
and possibly automatically remove them.