Provide for only showing folders that are subscribed on the server
(IMAP only)
Also:
Change default for Notification behavior to the old way. Make going
to the search for unread messages off by default.
Fix up some hiding of labels, etc. on the incoming server settings.
Check for message suppression in search results.
- Created "controller" and "mail.filter" package
- Moved a lot of classes to new/other packages
- Removed unused classes: NoSuchProviderException, MessageDateComparator
Simplify WakeLocks use by pushing.
Correct fault in IMAP IDLE WakeLock usage. The ThreadLocal in
MessagingControllerPushReceiver meant that the WakeLock acquired when
the DONE was sent was not being released when entering back into IDLE
state.
Consolidate the account notification so that all Activities use the
methods in MessagingController.
Fixes Issue 1577
Issue 1551:
Some IMAP servers send untagged EXPUNGEs to IDLEing
clients without ever haven't sent an untagged FETCH. The untagged
EXPUNGEs are harder to deal with because they don't have a UID. So,
if the user has elected to have the IDLE connection start with a poll,
we can maintain a map of message sequence numbers to UIDs that we can
use to figure out which message to delete. To mitigate the risk of
the map falling out of date, we do a UID SEARCH UID before removing
the local copy of the message, just to make sure the message is really
gone from the server. If we detect an error, do another poll to
resync the map.
Issue 1577:
Restore the removal of notifications for an account when the account's
unread message count goes to 0.
Fixes Issue 1562
Issue 1474:
Provide new facility to totally wipe all data for an account but leave
settings intact. This is useful because sometimes storage is so full
that SQLite cannot perform the usual VACUUM or message deletion.
Add confirmation dialogs to destructive Clear and Recreate operations.
Remove destructive Clear from FolderList so as not to have to
duplicate the confirmation dialogs.
Issue 1562:
Suppress notifications when new messages arrive in Trash, Sent or
Drafts special folders.
Fixes Issue 772
Fixes Issue 852
Issue 300: Handle incoming IMAP tokens in a case-insensitive manner
Issue 772: Add Yahoo workaround
Issue 852: Add configurable IMAP IDLE refresh frequency in Incoming
server settings
Also:
Add configuration option for whether push system executes a poll on
each connect.
Move the configuration for the maximum number of push folders to the
Incoming server Settings.
Keep search results in sync with newly arrived or deleted messages.
Intentionally does not remove messages from search results due to
flag (flagged/starred or read/unread) state changes, because that
would be awkward while manipulating messages in search results.
Pass around simple Serializable MessageReference objects containing
account UUID, folder name and message UID so that MessageView can
traverse lists of messages which span folders and accounts.
Fixes ClassCastException.
Also:
Envelope and star in Accounts Activity are now both "hot". Tapping
the main part of the search opens the full search; tapping the
envelope opens the search only for unread messages; tapping the star
opens the search but only for starred messages.
The envelope and star are a bit small to reliably tap. Both options
should be available via long-press, also.
Methodology will be extended to real accounts, as well.
Fixes Issue 1431
Present flagged message count inside a star, matching the visual
presentation on individual messages.
Provide display of unread and flagged message counts for canned
searches.
Perhaps the message counts for searches and account size display
should be defeatable for improved speed.
Computing the account size is pretty slow for big accounts, and making
this functionality optional should be considered.
Also, displays the number of flagged messages ("stars") in each
account in the Accounts list and each folder in the FolderList. Needs
better presentation of the flagged message counts, but this works as a
proof-of-concept and gets the data structures built.
Not done, yet, but available for developers to use.
Definite things to be done in the short term:
1) Allow user to hide canned searches in Accounts Activity
2) Make newly arrived mail immediately appear in search results.
Possible improvements:
3) User-definable searches
4) Make newly deleted mail immediately disappear search results.
5) Make message with flag changes immediately appear/disappear from
search results.
6) Show search result size in Accounts Activity.
Allow user to turn off gesture-based control.
Also, consolidate so that gestures could be used by other subclasses
of K9Activity. Probably should be made usable to K9ListActivity, too,
by making MyGestureDetector its own class and make it used by
K9Activity and K9ListActivity, and have the Activities implement a
callback interface for onNext and onPrevious.
Provides for the user to elect to have certain folders displayed first
in the FolderList. Folders so elected are displayed in alphabetical
order first, then folders not so elected are displayed alphabetical
order.
No special handling is done for Inbox any more, except that it is in
"top group" by default, to preserve current behavior until the user
changes the settings.
Implement DEFLATE compression for IMAP communication, enabled by
default. User can disable compression for Wi-Fi, Mobile, or Other
networks, if it causes problems or if uncompressed communication is
faster, which is possible on Wi-Fi and wired networks, especially.
"Other" is to allow for the Android platform to introduce new
networking types without having to immediately change K-9 Mail.
However, as those arise, new network types should be added as explicit
types in K-9 Mail.
Fixes Issue 1278
Fixes Issue 119
Fixes Issue 1077
Fixes Issue 1238
Worked performed by danapple0 and cketti in
https://k9mail.googlecode.com/svn/k9mail/branches/issue1116
Add support for most batch ops (except move and copy) in search
results. Add support for batch move and copy on real folders.
Increase efficiency of bulk IMAP moves and copies by doing as multiple
UID operations.
Eliminated serialization of Account objects.
Provide up-references in useful places to make all future code cleaner
and more efficient.
Fixed a bunch of draft handling
Merged from issue1116 branch, except for Account.java, which was
copied wholesale. Account.java was manually merged in issue1116
branch at r1489
svn merge -r 1459:1489 https://k9mail.googlecode.com/svn/k9mail/branches/issue1116 .
cp ../issue1116/src/com/fsck/k9/Account.java src/com/fsck/k9/Account.java
Provide for setting Sent folder to -NONE- which suppresses actually
saving sent mail in any folder.
Also, eliminate logging which folders are not configured for pushing.
It was just too much logging.
Only reschedule polling and setup pushing when necessary due to
particular setting changes. Makes the K-9 Mail UI much more
responsive to setting changes that do not affect polling and pushing.
The poll schedule is deliberately only rescheduled when the period is
decreased. An increase in period will still allow the next scheduled
check to happen as originally scheduled.
Fixes Issue 1034
Refresh Account from Preferences, so that it'll have a fresh copy of
all information. Failure to do this caused the AccountSettings
Activity to show stale information when invoked repeatedly from the
same prior Activity.
Provides for menu items to quickly change the mode of displayed
folders. Also, reorganizes the menu to have an Advanced sub-menu,
like Accounts page has.
Desparately needs a new icon for the Folders menu item.
physical keyboards, though, and should be modified to only re-setup
pushers. Current implementation causes a wasteful reschedule of
polling.
Also gets the help Toast for the folder up-to-date after the
FolderList/MessageList split.
force-closes and inconsistent data on activity reuse. Also, removing
broken/unused code to preserve activity state across invocations.
across invocations.
* Add an explicit configuration option for stars
* Replace now-outdated "left handed" widgets config option, now that
select widgets are always on the left.
* since the multi-modality of the message list was now only a "toggle
stars" option, kill that, as it was lots of code and rather redundant
always-available select action. For the moment, this means
that widgets_on_left does nothing at all. based on feedback, I may kill
the preference and multi-mode behaviour entirely in favor of "show stars?"
(and possibly "show stars on left"
Stars, "checkboxes" and color bars updated to actually fit in wide mode.
Fixes Issue 806
Make sure to close opened folders in finally blocks in
MessagingController.
Don't make another connection when deleting or copying a
message. (Nicely speeds up copy and delete, as well.)
Another connection is still created for creating a folder while
copying or deleting (a pretty rare event), and the IMAP IDLE
connections are not re-used for user initiated activity.
global config option rather than a per-account one. (But with a new
implementation.) - As we now have views that show messages across
accounts, this needed to become a global)
MessagingController was calling the MessagingListener twice for
deleted messages. By the time the second call was made, some
Activities already had removed the message holder, so a null holder
was being put on the list.
This change should prevent the double calls, and adds protection
against have the MessageList MessagingListener called with a message
that is no longer in the MessageList.
Also, some logical cleanups.
push technology. This provide a layer of safety in case of
misconfiguration (accidentally setting too many folders to push using
classes), which can bog down the device till it is unusable. On a G1,
25 folders is a very large load. Fixes Issue 871.
Also, move some pending commands to the background to make way for
more important user interface activity.
On each IMAP account, the expunge behavior can be set to expunge
messages in a folder as soon as a move or delete is performed on the
folder ("immediately"), each time the folder is polled, or only when
executed manually.
In the Message List, there is now an Expunge action in the option
menu.
In the Folder List, there is now an Expunge action in the context
menu (long-press on the folder).
For IMAP accounts, it is also possible to disable the copying of deleted messages to the
Trash folder, by setting the Trash folder to -NONE-.
Fixes Issue 536.
Separately, in WebDAV accounts, the user can now choose the
server-side equivalents of the special folders, just like for IMAP.
count, scoped for the Activity, the in-progress operation, the account
on which the operation is in progress, the folder for the operation,
when appropriate, and the progress of the operation, when it applies
to multiple items. For the MessageList, also use the determinate
progress bar to show progress for synchronization of the folder being
displayed.
Fixes Issue 924.
Also, a minor change that might help with Issue 913, by putting the
insertion of the pending command into a background thread.
r51837@31b (orig r127): ismarc31 | 2008-11-10 19:10:50 -0500
Experimental branch for Exchange WebDAV support
r51838@31b (orig r128): ismarc31 | 2008-11-10 19:24:52 -0500
Initial proof-of-concept code for WebDav support
r51839@31b (orig r129): ismarc31 | 2008-11-10 22:02:37 -0500
Fixed a couple of migration issues and enabled WebDav as a mail type
r53269@31b (orig r132): ismarc31 | 2008-11-21 21:55:55 -0500
Mostly rewritten class and organization. Better implementation of message fetching.
Consolidated response parsing. Removed a large number of redundant calls. There is still
some unused functions needing cleaning up, and some unimplemented actions
r53338@31b (orig r133): ismarc31 | 2008-11-22 16:50:02 -0500
Removed more redundant and unused calls. Implemented checking read status
r53453@31b (orig r134): ismarc31 | 2008-11-24 20:13:24 -0500
Added support for marking messages as read.
r53454@31b (orig r135): ismarc31 | 2008-11-24 22:04:04 -0500
Added support for deleting messages server side
r53455@31b (orig r136): ismarc31 | 2008-11-25 01:32:19 -0500
Improved flag setting functionality, do bulk HTTP request instead of lots of little ones
r53589@31b (orig r138): young.bradley | 2008-11-29 16:18:25 -0500
Missing some ports (webDavPorts); this causes an array index out of bounds exception when anything other than "None" or "SSL (Optional)" are selected.
Adding the three additional ports solves this issue.
r53590@31b (orig r139): young.bradley | 2008-11-30 00:47:42 -0500
Initial support for sending via WebDav
r53591@31b (orig r140): ismarc31 | 2008-11-30 20:12:41 -0500
Fix for display names being URL Encoded for folders. Initial support of Uid Hashmaps instead
of plain arrays.
r53592@31b (orig r141): ismarc31 | 2008-11-30 21:46:06 -0500
Fix to constructor of HttpGeneric(final String uri). URLs returned from Exchange aren't
always fully encoded, this fixes the encoding before creating the method.
r53593@31b (orig r142): ismarc31 | 2008-12-01 02:22:16 -0500
Completed support for using hashmaps instead of arrays for indexing urls to emails and read
status. Delete is safe again and read status is correct the first time through.
r53594@31b (orig r143): ismarc31 | 2008-12-01 22:20:50 -0500
Fix for double-Inbox display issue. Removed volumous amounts of Log.d messages.
r53644@31b (orig r157): young.bradley | 2008-12-04 15:14:28 -0500
Fix for wildcard certificates (e.g. issued to *.example.com). Only checking the
trust of the certificate itself, since apparently the full chain causes it to
not work.
r53765@31b (orig r161): ismarc31 | 2008-12-06 18:55:08 -0500
Implemented new functionality for pulling message envelope. Uses a WebDAV call for all messages rather than parsing the stream. Message size is properly set now as well.
r54055@31b (orig r163): jessev | 2008-12-06 19:28:24 -0500
* merge fixes
Now pulls k9.VISIBLE_LIMIT_INCREMENT and says "Load up to (increment value) more".
Also, the build number was auto-updated by my build script. This shows up in the debug menu. It would be nice to have ant handle this, but I'm not sure how to make it do that.