• Home
  • History
  • Annotate
  • only in /packages/apps/Email/src/com/
History log of /packages/apps/Email/src/com/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5b323a3d1504411f1e88ba6621ebc0673a586e3f 22-Oct-2013 Martin Hibdon <mhibdon@google.com> Change trigger to allow duplicate messages in search folders

b/11294681
b/11325976
The problem is that when we get a message as part of a search
result, we'll end up deleting that message from the inbox (or
whatever folder it's currently in). This is because there is
a trigger that deletes messages if a new message is inserted
that has the same serverId and account.

Now, messages with duplicate serverId/account combinations are
allowed if one of the messages is in a SEARCH type folder.
Also, make a change so that when a message comes down in
a search result, we do also copy it into the primary mailbox
that message resides in, we only add it to the SEARCH folder.
Prior to this there was some code that intended to put
the search result message into the regular mailbox it's supposed
to be in, so that we'd have correct state in that message.
Unfortunately, there are several problems with this:
1. The code didn't work, it would make a copy in the regular
folder, and then unconditionally move it to the search folder.
2. If we leave this code in place, putting the message
temporarily into the regular folder still activates the duplicate
message deletion trigger, wiping out the original copy, even with
the update to the trigger.
3. It's unclear that it's even desirable to load the search
result message into the regular folder. It could be a very old
message that would not have been synced before, leaving a large
gap in your inbox, which is confusing and could interfere with
IMAP syncing.

Change-Id: I34671a3b677ab42a3efd0d170a6ebd9246ec493d
ndroid/email/provider/DBHelper.java
ndroid/email/service/ImapService.java
3b866d40ece8c974165d3199a713b2dd07b216ba 21-Oct-2013 Yu Ping Hu <yph@google.com> Treat updates into non-existent body rows as inserts.

Bug: 11245727
Change-Id: I648b0267e9149f3f431ce01be9789087f73edab1
ndroid/email/provider/EmailProvider.java
904764cedcd114c3917b37db8905d659b5bb663a 17-Oct-2013 Tony Mantler <nicoya@google.com> Don't bail out of downloading an attachment if the size is delcared as zero

b/11225306

Change-Id: If67401dd3e6b652b03fba2e71cfc82fdae80ccb2
ndroid/email/mail/store/ImapFolder.java
5c88388e30159dc7c71529f37ad3508840465fb2 17-Oct-2013 Martin Hibdon <mhibdon@google.com> Don't allow duplicate messages to appear in Sent folder

b/11224731
There is a problem in ImapService.processPendingUploads().
It was trying to process updates to existing messages
as uploads. This is wrong, it means that marking a sent
messages as Read can cause it to be uploaded again,
resuling in a new message being created.

Change-Id: I502df52a7b315daeee10c1041db8f30dbfd2c04e
ndroid/email/service/ImapService.java
ndroid/email/service/PopImapSyncAdapterService.java
7acf30e9ab077362dc03812583044fb3e23206c3 17-Oct-2013 Tony Mantler <nicoya@google.com> Make sure account upgrade code always runs before reconciling

b/11240251

Change-Id: Id6d6ad98b729757991b19c8dcd84822d6216f9a0
ndroid/email/service/EmailBroadcastProcessorService.java
85d2190552d05dbc06518bdc21674c6aabeb583b 15-Oct-2013 Martin Hibdon <mhibdon@google.com> Clear all "drafts" related flags from email when sending

b/11224331

Change-Id: I1df8ea3e0e24b050cd391dea454124e06988bf7d
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ec0bb58b9a9ef98bed2e8139c366792b48e500ae 14-Oct-2013 Yu Ping Hu <yph@google.com> Merge "Fix folder list loading." into jb-ub-mail-ur10
1004d74f2c2c8085d793bf8f0118d80fe934e830 14-Oct-2013 Yu Ping Hu <yph@google.com> Fix folder list loading.

We used to do N+1 DB queries when our list has
N folders in it. Now just do 1 and be smarter about
how we read our values out of it.

Bug: 11112954
Change-Id: Icde0b979ca985e63d6ceba05c3a63f3a9b7e3566
ndroid/email/provider/EmailProvider.java
efd835aceaa58ceefa29057b21644653bff70ae3 14-Oct-2013 Tony Mantler <nicoya@google.com> Fix threading issues in EmailDownloadService

b/7257927

Change-Id: I390ced0eee18ff324032481ae55c31f5d4b26ffd
ndroid/email/service/AttachmentDownloadService.java
6df3709128f4c1f64709b832130c9dde4952aca2 14-Oct-2013 Martin Hibdon <mhibdon@google.com> Merge "Correct syntax for IMAP date range search" into jb-ub-mail-ur10
35cdca3fb49840e867e133ce0ef1ed69e28b4c90 13-Oct-2013 Martin Hibdon <mhibdon@google.com> Correct syntax for IMAP date range search

b/11183568
We were surrounding the data parameters with
double quotes. Apparently some servers do not
accept this, and they aren't present in the
imap spec.
However, we've been running with the quotes
for several months now, and it seems to work
on most servers. I'm afraid of changing this
right now, it might cause other servers to fail.
So now we'll try the query without quotes, and
if we get an exception, fall back to the old
style query with the quotes.

Change-Id: Ifb7b1a6dd4a9f7bb6b38bd1611c64e2bddb2e188
ndroid/email/mail/store/ImapFolder.java
ndroid/email/service/ImapService.java
ac93f838b8673437e416d1ab4d6259457e10ef70 13-Oct-2013 Yu Ping Hu <yph@google.com> Only fake the footer for mailboxes that sync from server.

Bug: 11193271
Change-Id: I7bc8903889ae4f91065cdb4696128a4eed62844f
ndroid/email/provider/EmailProvider.java
67e78a67baa5f301e136a38c050ac1ee5dc600f1 12-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Clean up usage of Account.name when accessing account/folder prefs" into jb-ub-mail-ur10
32614f3746f0fa8a09370672abaca68fa795fc33 12-Oct-2013 Tony Mantler <nicoya@google.com> Clean up usage of Account.name when accessing account/folder prefs

b/11185963

Change-Id: Id928732bee5f67887252b1f949a8e4d396fffaa6
ndroid/email/NotificationController.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/preferences/EmailPreferenceMigrator.java
9a342b31472536b89f55b1e6ae2e6f868ba1064d 11-Oct-2013 Alon Albert <aalbert@google.com> Cleanup Logs

Bug: 11149133
Change-Id: I764e2e3a8c37769d2e788688cf50789d0f22e9d3
ndroid/email/provider/EmailProvider.java
e7f61f403c65f08ff57f45aeb22f71a31cef0ce7 12-Oct-2013 Martin Hibdon <mhibdon@google.com> Merge "Always fix parent keys on startup of email" into jb-ub-mail-ur10
f7078466c3a5ac9eefc388787aa5fcf187dfe4ee 11-Oct-2013 Martin Hibdon <mhibdon@google.com> Always fix parent keys on startup of email

b/11174975
There are already several database fixing steps that
occur when the database is opened, add another one
to correct uninitialzed mailbox parent keys.
This is because we use a two pass system for adding
mailbox rows, first to insert the rows, and second to
assign parentKeys to child rows. We need two passes
because we may insert a child row before its parent,
so the parent's rowId is unavailble. But if the process
dies before the second step is complete we'll be in
an inconsistent state.

Change-Id: Ifaeeaca7e82c1e99656033bc1a9f25d7acb67517
ndroid/email/provider/EmailProvider.java
ec2b661acb76e998f64695815e7d88b6cba87f51 11-Oct-2013 Tony Mantler <nicoya@google.com> Merge "The ServiceMap caches locale-dependent strings. Destroy it on configuration changes." into jb-ub-mail-ur10
03dc3f22d151d0cddc6487429786a708de813d67 11-Oct-2013 Tony Mantler <nicoya@google.com> Combined account name is locale-dependent. Notify on locale changes

b/10784192

Change-Id: I2a9783f19709ff5cf0ab5a4a14ab1ad60b71d821
ndroid/email/provider/EmailProvider.java
3a8c86b18265eb3786bf32b5c043b5942ddb4e45 11-Oct-2013 Tony Mantler <nicoya@google.com> The ServiceMap caches locale-dependent strings. Destroy it on configuration changes.

b/10785115

Change-Id: I39df8a002cafdbaf4d41c9916d62a79a03d48804
ndroid/email/service/EmailServiceUtils.java
ed4e1c503942eb8e809782d762be519b70d6f89a 11-Oct-2013 Martin Hibdon <mhibdon@google.com> Merge "Disable sync settings controls for drafts folders" into jb-ub-mail-ur10
cb30243fe1fa3a2f7540495cbeea470e77b539be 10-Oct-2013 Martin Hibdon <mhibdon@google.com> Disable sync settings controls for drafts folders

b/11158759
Make the default sync setting for drafts folders 0
(never automatically sync), and disable the settings
control so that it cannot be changed.
Also add a db upgrade step to set any existing drafts
folders to not sync, and clean up any Exchange synced
draft messages.

Change-Id: I256bde231d722089ef2a623482f570a20eccf1de
ndroid/email/activity/setup/MailboxSettings.java
ndroid/email/provider/DBHelper.java
11fb2d161ecbde53ca395ef65c60c79adf273bb8 10-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Use the correct widget provider class" into jb-ub-mail-ur10
9e608aa5a1c53355d15fe23e0c1c32091b124b4d 10-Oct-2013 Martin Hibdon <mhibdon@google.com> Update logging in AttachmentDownloadService

This is related to b/11081672.
The logging needed to track this down was tied to
MailActivityEmail.DEBUG, which is tied to a setting that
no longer exists.

Change-Id: I0a23508832ead6ab3cc613a82e0831986b0af49b
ndroid/email/service/AttachmentDownloadService.java
8117953140719217d96c4e2c77704db6ac9c16aa 10-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Add null check before passing from address to Rfc822Tokenizer" into jb-ub-mail-ur10
03f56f2c1a052db3abff8ad624ecf8eae16ceea3 10-Oct-2013 Martin Hibdon <mhibdon@google.com> Merge "Allow multiple mailboxes to be synced in a single request" into jb-ub-mail-ur10
22f0c87d5fce1a3d60913e78061d232871702c8c 10-Oct-2013 Tony Mantler <nicoya@google.com> Add null check before passing from address to Rfc822Tokenizer

b/11167816

Change-Id: I13671d953b067ecc5becf160eab52be30e4f1354
ndroid/email/provider/EmailProvider.java
56aba8d8436b083bfc1169dd8b988161d537f7e5 09-Oct-2013 Martin Hibdon <mhibdon@google.com> Allow multiple mailboxes to be synced in a single request

b/11103878

Change-Id: Ic6abf51457fe94e89fe51b461da4371f50e0fe86
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/PopImapSyncAdapterService.java
5da03b90e2f313cebdb802cd3795db20b9a970ea 10-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Temporary workaround for ConversationCursor missing updates" into jb-ub-mail-ur10
b5341fac103a2ab15afb8f9642372ab6e19b79ee 10-Oct-2013 Paul Sliwowski <psliwowski@google.com> Merge "Fix bugs when screen is rotated when creating account." into jb-ub-mail-ur10
d7ed294dd13f789543265abc3674b794df212e45 10-Oct-2013 Paul Sliwowski <psliwowski@google.com> Fix bugs when screen is rotated when creating account.

Bug: 11136893
Change-Id: I1d21c1f427370a2de57d89be802cac253ad33bd5
ndroid/email/activity/setup/AccountSetupOptions.java
7c03217316b21d59a00cf1abed093470e8004144 09-Oct-2013 Martin Hibdon <mhibdon@google.com> Add a retry backoff/limit policy to attachment download

b/11081672

Prior to this, any time the AttachmentDownloadService
got a CONNECTION_ERROR, it would just instantly retry,
without any limit on the number of tries. This is bad
if the server is in a funny state, we'll just keep spamming
it with multiple connection attempts per second. Also,
this kills the client device's battery and responsiveness.

Now, it will retry instantly five times, and then retry on a
10 second delay 5 more times. After that it will give up.

Even if it gives up, if the user visits an email with an
attachment, or taps on an attachment to expand it, we'll
start the process over. So we shouldn't have permanent
apparently data loss, even if we fail on the first 10 tries.

I'm not certain that this is the best backoff/limit policy,
maybe we should add a delay after even the first connection
error. But I'm hesitant to change this at this point, it's
possible that something is relying on this behavior and
we don't have a lot of soak time left.

Change-Id: I53d75d5d214ccca887a89cf65b799fe640cc9bc5
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceStub.java
e12b22148fec2d8ec3ee2504b43cf8b0d9a780e7 08-Oct-2013 Tony Mantler <nicoya@google.com> Temporary workaround for ConversationCursor missing updates

Launch a 2-second delayed message to send a second notification on the folder change update

b/11027351

Change-Id: Ia0a22be79f4a74c6857517cc21e2313cea9cc0e9
ndroid/email/provider/EmailProvider.java
37aa460ef7ee4d996e04b24a181846879fb6b601 09-Oct-2013 Tony Mantler <nicoya@google.com> Use the correct widget provider class

b/11043157

Change-Id: Icb4e6408535ca4cc055581ca7e8bd74c83aeecdf
ndroid/email/provider/EmailProvider.java
4b32e54309746fa053c5df9beed75174097dc672 09-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Update widgets on provider instantiation." into jb-ub-mail-ur10
06009f28f0ae397a5ab14638df44580b8bde2213 09-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Parse "From" addresses when constructing ConversationInfo" into jb-ub-mail-ur10
73379a27290720c05e8f60dfdfff1491f3790eb6 09-Oct-2013 Tony Mantler <nicoya@google.com> Parse "From" addresses when constructing ConversationInfo

Fixes sender image tiles

b/11120430

Change-Id: Ie53e2a01cfffd70318fad7cd1cbc2565f1bbb87b
ndroid/email/provider/EmailProvider.java
529bdeaec1d19b035dddde204c0c7074ba8ea80f 09-Oct-2013 Martin Hibdon <mhibdon@google.com> Always close the connection after trying to load attachments

b/11081672

Change-Id: Ibe804713492b37f5579fb20a0da7292e82cb5341
ndroid/email/mail/store/ImapStore.java
ndroid/email/service/EmailServiceStub.java
02b9ac1b95947a2dc66bc0f6c770a1cb3ffdbbc9 08-Oct-2013 Tony Mantler <nicoya@google.com> Update widgets on provider instantiation.

b/11043157

Change-Id: I439a67447875b6f9ba818b2c2cb95c83db034896
ndroid/email/provider/EmailProvider.java
805bc397bd9db8ef42c7aa88b9913565ac908732 08-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Populate the snippet in ConversationInfo" into jb-ub-mail-ur10
b62486b019ec30c81145e34385e015fc31c5c06c 08-Oct-2013 Tony Mantler <nicoya@google.com> Populate the snippet in ConversationInfo

b/11111973

Change-Id: I8a4e824ad4c708fba8013221279a0b1ac6df7a8c
ndroid/email/provider/EmailProvider.java
5d47ee0f87208ab22c317abc87f615b6254cc852 07-Oct-2013 Tony Mantler <nicoya@google.com> Store the total count of search results in the database only

b/11027351

Change-Id: Ibb63bd7b80ff0af653cca4424dd2d17168262710
ndroid/email/provider/EmailProvider.java
12650115857424428282d7e0fad195397e51128d 04-Oct-2013 Yu Ping Hu <yph@google.com> Merge "Don't push things that haven't performed initial sync." into jb-ub-mail-ur10
3f24a9e2c76af8b772953c8a026d9886321f0044 04-Oct-2013 Yu Ping Hu <yph@google.com> Don't push things that haven't performed initial sync.

Also remove the ping kick.

Bug: 11081520
Change-Id: I21d5050886b2c352771013f4f3e5b9282482d508
ndroid/email/provider/EmailProvider.java
d946f8319a34c922ac720d5cf9cc95540300ccd5 04-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Reply-all setting is modified at runtime, don't cache it in a static map" into jb-ub-mail-ur10
7c24f48a37c465fff393c546198ee83c556961ef 04-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Remove notifications while we still know what type of account this is" into jb-ub-mail-ur10
b424ffa65b809094e6b9109e2131b718ec9eae76 04-Oct-2013 Tony Mantler <nicoya@google.com> Reply-all setting is modified at runtime, don't cache it in a static map

b/11066041

Change-Id: I4e14c3add3fe2503e8369dbb7ef976e110ef2fee
ndroid/email/provider/EmailProvider.java
387612f46972dbcbf367fc51327f95e2c2968af0 04-Oct-2013 Martin Hibdon <mhibdon@google.com> Merge "Fix display for inlined and non-inlined attachments" into jb-ub-mail-ur10
ac1d3249fbb50714ad1bee5aec41968574befd90 04-Oct-2013 Tony Mantler <nicoya@google.com> Remove notifications while we still know what type of account this is

Also add null check just in case

b/11070468

Change-Id: I187b9b084512a2b994f4a0a3b750ade5eee50624
ndroid/email/NotificationController.java
ndroid/email/provider/AccountReconciler.java
fc8a57bb29087a4c582a3fdb0ca338d9fdfe1f02 04-Oct-2013 Martin Hibdon <mhibdon@google.com> Fix display for inlined and non-inlined attachments

b/11069575
The problem is that the UI_MESSAGE query strips out
any inlined attachments, but the UI_ATTACHMENTS query
does not. This means that we display all attachments
at the bottom, regardless of whether or not they're
inlined, but the formatting is wrong because when we measured
we only had the non-inlined attachments.
Maybe we should not display the inlined attachments at
the bottom, but right now if we do that, it's impossible
to save an inlined image. So for now, I'm just making
UI_MESSAGE query keep the inlined attachments so that
both queries have the same behavior.

Change-Id: I155f5bb74dbfbc8dbf02b56dca58fbca3da5da78
ndroid/email/provider/EmailProvider.java
840408c41cfc95ffa491aaf11f1c3f4075eae9c9 04-Oct-2013 Tony Mantler <nicoya@google.com> Remove mAmAccount from the email provider account object

b/11070468

Change-Id: I51bad4be41800e4cd6dae42744005ade784cdf82
ndroid/email/NotificationController.java
f086deac70a5ee893ebd14be9d0502132e0fa988 03-Oct-2013 Tony Mantler <nicoya@google.com> Change notification code to key off android.accounts.Account

b/11023774

Change-Id: I6dd267591148378265b0f12c7ea6d74b450a0f3d
ndroid/email/NotificationController.java
7df98d0a6d0a3c67b467e9ff2066970e645957b8 03-Oct-2013 Paul Sliwowski <psliwowski@google.com> Fix autodiscovery failed dialog.

Bug: 11030161
Change-Id: Id97766969608016efe068e5c142407ad94438b05
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
921c04d2ac5df091fb3c5cfa823e6dc2fc6cdf5a 02-Oct-2013 Martin Hibdon <mhibdon@google.com> Add some logging

Change-Id: Ib26ffad0bb6841361b8ee7be4ee2a6255d509ae2
ndroid/email/SecurityPolicy.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/PopImapSyncAdapterService.java
768c6b86db854569a687f68c9b8f232e9ebf1573 01-Oct-2013 Tony Mantler <nicoya@google.com> Don't show "No messages" when starting a search on Exchange

Also clean up some finals

b/11027351

Change-Id: Ib76cc90b04acb531d53b2d6bdc4e3b0ad911f72c
ndroid/email/provider/EmailProvider.java
ndroid/email/service/ImapService.java
53ecec0ad43866b00d28908ba19e67561674591c 01-Oct-2013 Tony Mantler <nicoya@google.com> Merge "Only return messages that are unread and unseen for an unseen query" into jb-ub-mail-ur10
d4a06f409d08a61bd387ab2e2f37eca519f10010 01-Oct-2013 Tony Mantler <nicoya@google.com> Only return messages that are unread and unseen for an unseen query

b/10970849

Change-Id: I23d40fc39987fab35521f1dd75f4631f1fae16d5
ndroid/email/provider/EmailProvider.java
2cf965b85fe4daa1046d7d04137c3b24d1e2800b 01-Oct-2013 Martin Hibdon <mhibdon@google.com> Merge "Make draft attachments work correctly" into jb-ub-mail-ur10
f484751e060620ddf4e2dfe38f2b9f46f472ac9d 01-Oct-2013 Martin Hibdon <mhibdon@google.com> Make draft attachments work correctly

b/10968838
The main problem here is that Ui Attachment was always using
a content Uri that was generated using the attachment's account
Id and rowId. This works correctly for attachments in messages
we have received, but it does not work for drafts: Draft attachments
are not stored in the normal place, rather, they are stored in
the cache directory. There is an additional column in the
Attachment table, called cachedFile, which is not replicated in the
Ui attachment. That's okay though, if we have a cachedFile, then
when we are populating a Ui Attachment, we should just use that
for content Uri.
Also, I discoverd that for draft attachments, we were not correctly
setting the account key. That didn't turn out to be the problem,
but I'm fixing it anyway because it will cause problems later on.

Change-Id: I0143ba824f3a5bfcd77f32828931b94d6977626f
ndroid/email/provider/EmailProvider.java
b38c7d1c37bba593b7aaba44a9ffccc8cf3a4108 30-Sep-2013 Tony Mantler <nicoya@google.com> Avoid ANR due to looking up account info on the main thread

b/10987175

Change-Id: I7344e2717ab1b9557385eb6eb9e7962461b10c9d
ndroid/email/provider/EmailProvider.java
125cbdf9d4dbc30127d99b56c9c025fab70aa358 30-Sep-2013 Yu Ping Hu <yph@google.com> Make certain we don't use a null account.

Bug: 10965484
Change-Id: I525d32fcbde0fbbe0bec467814cf4f09a3de38fe
ndroid/email/provider/EmailProvider.java
85ad73aecdec51dcf19ed22ac13af88b8f87f0cf 30-Sep-2013 Yu Ping Hu <yph@google.com> Pass the correct id to getAccountManagerAccount.

Bug: 10965484
Change-Id: I8e1aab4810da4673313b10231592283736a92ef9
ndroid/email/provider/EmailProvider.java
c4d139c4f4d924eae0307e8349ae977441dabbed 28-Sep-2013 Alon Albert <aalbert@google.com> Auth Notification

Some changes that allow a notification to open Account Settings for a specific
account

Bug: 10930585
Change-Id: Ib329e339b405ccbc0631d5ce6a23bf8fa6d62b83
ndroid/email/activity/setup/AccountSettings.java
386c8ccbf9e44a327ce0a58afe08859809fa0d30 27-Sep-2013 Yu Ping Hu <yph@google.com> Merge "Kick the push once an hour, in case it fails." into jb-ub-mail-ur10
9d3e01c589e1f281941cff9abc59aba0b0f33e78 27-Sep-2013 Martin Hibdon <mhibdon@google.com> Set the client cert from AccountSetup

b/9661767

Change-Id: I292ff5e190ed56077a04e37869e18a46f5473985
ndroid/email/activity/setup/AccountSetupActivity.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
69418d04606419fca80a0c368d650c4bedffb656 27-Sep-2013 Yu Ping Hu <yph@google.com> Kick the push once an hour, in case it fails.

Bug: 10954795
Change-Id: If6325c04b2011fb476f20f1419afaee13a786d3c
ndroid/email/provider/EmailProvider.java
5e8d8c1f80951fdb49e64bc123283e7914af07d1 27-Sep-2013 Yu Ping Hu <yph@google.com> Modify ping on settings changes.

Bug: 9020744
Change-Id: I0dfa2b8e9d999072b8201da61916372ca1a5b08b
ndroid/email/provider/EmailProvider.java
6580e500318a3ee421516364b4a9314403174734 26-Sep-2013 Yu Ping Hu <yph@google.com> Fix a bad log message.

Bug: 10950496
Change-Id: I06c5e20eea9090bbfc6d0c12d8ce8e31d47f52a2
ndroid/email/provider/WidgetProvider.java
e43fbd05de3a7efd43cce2d624d0260ddb2acbaf 26-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Fix account matching at initial screen to match against email address" into jb-ub-mail-ur10
463584d23f747cfbbd9856b39390269342363b41 25-Sep-2013 Tony Mantler <nicoya@google.com> Fix account matching at initial screen to match against email address

b/10210901

Change-Id: I64d60ca33a42a19e085dd98a7a61d68ac30027f9
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/AccountSetupType.java
7140095932297bb404e32648278396a0a8c39ef5 26-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "reduce the length of a log tag to a legal amount" into jb-ub-mail-ur10
fead9986c1ce920e669aadddb0b993ff4cff56b8 26-Sep-2013 Martin Hibdon <mhibdon@google.com> reduce the length of a log tag to a legal amount

Change-Id: I6f18b9aa893cdccfebf24885b4668a50472af802
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
780e92aea390873eb11b7a40a9b948dd38a40cfb 26-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Handle it if an fetchPart has no content-encoding" into jb-ub-mail-ur10
312aa85609bee80a803a3d8f9613ea14b0818bf4 26-Sep-2013 Martin Hibdon <mhibdon@google.com> Handle it if an fetchPart has no content-encoding

b/10855399

Change-Id: Ic2a8b51d095fe44f180ba2f2171dc70a9df10a1d
ndroid/email/mail/store/ImapFolder.java
feb2c387b0332a28f1dc5e82205ed087277dff92 26-Sep-2013 Alon Albert <aalbert@google.com> Upsync Exchange Folders on syncedMessage updates

On updates to content://com.google.android.email.provider/syncedMessage
request a sync for the folder the message is in.

We need to do this because Exchange sync adapter is marked as
android:supportsUploading="false" so notifySync() doesn't work.
Neither does adding a UPLOAD extra to the sync request. If we do that, the
request is dropped.
This means that the sync request will also downsync the folder but t's probably
a good thing anyway.

We could add our own version of UPLOAD extra if we really want to prevent downsync.

Bug: 10678136
Change-Id: I14f06c4da905560716773d31d59388d2e6d25635
ndroid/email/provider/EmailProvider.java
bf49e995690053c8fc9dacc1e50de4e525aec269 26-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Move calendar and contacts to the new account on upgrade" into jb-ub-mail-ur10
bc5653471c11d8d2678c22bda8b6ae33e65650a1 26-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Separate the account name from the account manager's account name" into jb-ub-mail-ur10
229e173010be54924fb6b9ff0c41151abaeb849a 25-Sep-2013 Yu Ping Hu <yph@google.com> Merge "Disable account setup debug screen." into jb-ub-mail-ur10
1082ed94305de70f40320b0fd181d2f0328b8cfe 25-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Match against both account name and type when reconciling accounts" into jb-ub-mail-ur10
5757047f339fd9d17d039e81e0eeee455e729834 25-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Make sure the account check dialog doesn't outlive the account check fragment" into jb-ub-mail-ur10
ed0ee50a12fdd36b813831da7a60774c3965b9c1 25-Sep-2013 Tony Mantler <nicoya@google.com> Match against both account name and type when reconciling accounts

b/10210901

Change-Id: Ice60ab64a2f7287be9ee639e5777f85bda4bd390
ndroid/email/provider/AccountReconciler.java
d8ee809ac2131be89ed6efb19912bfb704dceb6c 25-Sep-2013 Tony Mantler <nicoya@google.com> Make sure the account check dialog doesn't outlive the account check fragment

b/10918608

Change-Id: I65725b8935b2902ff926ba333cd41a3c1545f332
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
d17359c2b4e39baa426c7bce09f1a5d293378c77 25-Sep-2013 Tony Mantler <nicoya@google.com> Notify on message Uri when a message is deleted.

b/10919322

Change-Id: I0b39bcbc2e03c45fc0c161211c7cdacd97791c15
ndroid/email/provider/EmailProvider.java
3aad3fcb8bb916c989fe67cfbf527eb0df6fc6d1 25-Sep-2013 Martin Hibdon <mhibdon@google.com> Move calendar and contacts to the new account on upgrade

b/10805685

Change-Id: I08de135f166ad10812c9318efe649694e5c448d0
ndroid/email/service/EmailServiceUtils.java
7349fbff64328100cb5bd878f4d400ccc611ec80 25-Sep-2013 Tony Mantler <nicoya@google.com> Separate the account name from the account manager's account name

b/10894178

Change-Id: Ie64ae00e4fd382fb03fc7c87ea91c7aff8fc8f43
ndroid/email/provider/EmailProvider.java
bab16f9161edb940f8a612846a2ff4ac50ffc58d 24-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Virtual folders are valid folders, don't kick back to the inbox when we're viewing them" into jb-ub-mail-ur10
96192ef342f182deadcfe8a245306f7f155e4a79 20-Sep-2013 Tony Mantler <nicoya@google.com> Virtual folders are valid folders, don't kick back to the inbox when we're viewing them

b/10847930

Change-Id: I182fee7d6caa5c4a67911c0c8e969d8668ac87d0
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
4f32213ebebb59d5316e0dd4ca9d78dc1c170879 21-Sep-2013 Tony Mantler <nicoya@google.com> Missing part of I27ad5ee75df669315e03c9ccc299bfc8eacbb53b

Change-Id: I207898b4f6f9148758d4ee1c6a82cbb387570240
ndroid/email/provider/FolderPickerDialog.java
e54d6957dbbd14d35a1858cb02959fd8f9bb0d37 24-Sep-2013 Tony Mantler <nicoya@google.com> Clear out erroneous sync values for IMAP mailboxes on upgrade

b/10695945

Change-Id: Ic68c9ef0baa25eae40631184cf0322ff26c9e5ab
ndroid/email/provider/DBHelper.java
1290f376c09749988d71e1a00179fe249a88be3b 24-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Improve display of attachments in pop" into jb-ub-mail-ur10
0203a06c87e389f0d3af19bc26f61d0cf846226a 23-Sep-2013 Scott Kennedy <skennedy@google.com> Ensure we have all columns in combined view

I added these to real mailboxes for hierarchical folders, but we
also need them in combined view.

Bug: 10891994
Change-Id: Iaa291fb9a9cd6039fb4d347309ce3a37aa64392a
ndroid/email/provider/EmailProvider.java
aad690f699f61793facecc950d3d060baa62fd45 21-Sep-2013 Martin Hibdon <mhibdon@google.com> Improve display of attachments in pop

b/10714298
This is related to this CL in UnifiedEmail
https://googleplex-android-review.git.corp.google.com/#/c/363626/1

Change-Id: Idea2827791ed52e7558b11aaea07b1f3f1764db5
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/Utilities.java
ndroid/email/service/EmailServiceUtils.java
bba11cdec97299417dc5686465ed6beeaf4d1d47 21-Sep-2013 Scott Kennedy <skennedy@google.com> Merge "Hierarchical folders in conversation list" into jb-ub-mail-ur10
fc5aae98e7a440ef9ab015efd4934123c2c15e76 10-Sep-2013 Scott Kennedy <skennedy@google.com> Hierarchical folders in conversation list

Use something similar to the sectioned inbox teaser.

This change allows displaying sender snippets in the teaser.

Bug: 9604590
Change-Id: Ib27f002ab8cbd2315d95d46eeb1735aa6b594db5
ndroid/email/provider/EmailProvider.java
ef0c53e15f509ddb132db716177282b9182f035b 19-Sep-2013 Tony Mantler <nicoya@google.com> Fake syncing while we're waiting for the sync to start

b/10695945

Change-Id: I6a32c45facaa0c2c888726e2276d07b7c5e46689
ndroid/email/provider/EmailProvider.java
1ced0e3001dc78e996de49174cb9d2bbbccfec40 19-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Update mailbox status according to current sync status" into jb-ub-mail-ur10
27de0b24b241800985b4dfd39995b53aeb6d3658 19-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Use unified strings for sender image preference and switch to checkbox" into jb-ub-mail-ur10
04dbb647ffaca5a230a5f76b144e27cd9d9f0d8b 19-Sep-2013 Tony Mantler <nicoya@google.com> Update mailbox status according to current sync status

b/9177086

Change-Id: I24a7d26b7d7e5ee68ede003e823c1b80abaf56d3
ndroid/email/provider/EmailProvider.java
acfbeb812be7072913a7c90f3a33107398a6f60b 18-Sep-2013 Tony Mantler <nicoya@google.com> Use unified strings for sender image preference and switch to checkbox

b/10693718

Change-Id: Iec81347915611f81ded0c62ca37c401fdb28ae9f
ndroid/email/activity/setup/GeneralPreferences.java
ed60a4026b55e147ecde5b52af4063c41fe5dcb9 18-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Clear exchange sync keys upon app upgrade" into jb-ub-mail-ur10
ddb6c2da8da2493047e84401b5b101e0548379c4 18-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Don't disable the back button when the account name fields are invalid" into jb-ub-mail-ur10
0bfeb90e4163c0d9ed8d77f4f73b07aa477eef98 18-Sep-2013 Tony Mantler <nicoya@google.com> Don't disable the back button when the account name fields are invalid

b/10695553

Change-Id: I32df55594784e24263dede9b767786ccdc83662c
ndroid/email/activity/setup/AccountSetupNames.java
75e71b3b9758b689f5204d5da5eb336a2162d382 18-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Don't return a null cursor from queries to uimessages" into jb-ub-mail-ur10
2c3328bfd745142f3365c676527daa853fe445d6 18-Sep-2013 Tony Mantler <nicoya@google.com> Don't return a null cursor from queries to uimessages

b/10807214

Change-Id: Ia49dae8bd50773097bb1082c2bc5cf264a76ce55
ndroid/email/provider/EmailProvider.java
3ba1ed1b88f5c02e3bdebd9c4694a37cdae55f3e 18-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Fix use-after-null in AccountSetupIncomingFragment" into jb-ub-mail-ur10
648a067056db91d4a1bfd3c4eac9eec3d4c6adb4 18-Sep-2013 Tony Mantler <nicoya@google.com> Fix use-after-null in AccountSetupIncomingFragment

b/7967233

Change-Id: I69b7ea521416815fce3bb9e45b38c996b9cea17b
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
7d6d8c87f86a17cae59af645637458b17e72c716 18-Sep-2013 Martin Hibdon <mhibdon@google.com> Clear exchange sync keys upon app upgrade

b/10211620
The problem here is that on app upgrade, we need to change
the types of all email accounts. To do this, we have to
create new accounts and delete the old ones. This resulted
in calendar and contacts data getting deleted.
But we were copying over the last sync keys from the old
account, so on the next sync, we would only get new data.
This means that all of the data that we had gotten on
a previous sync would never be sent again, so calendar
events and contacts would be missing forever.
Now, we just don't migrate the old sync keys. This means
that on the next sync, we'll get all data, and restore
our original state.
This is still not ideal, because it means that any locally
created data that has not yet been synced will be lost
(b/10805685), but it's much better than it was.

Change-Id: I150c4dbdf490a8f3880261e2469795896ebfeab5
ndroid/email/service/EmailServiceUtils.java
4265ade29a684543ac5b048dda90c4733c58568a 18-Sep-2013 Tony Mantler <nicoya@google.com> There's no such thing as a wrongly incomplete account

b/9856118

Change-Id: If2d2c50989285a13eb0ae29961733e472e26c978
ndroid/email/provider/AccountReconciler.java
e3a4a1b25dd20dfd69793ca953f3299bcf6f0501 17-Sep-2013 Yu Ping Hu <yph@google.com> Remove dupes before syncing new messages.

Bug: 10440557
Change-Id: I4ade38a8bb15cbc22b6c10a5f270274fef6f1fca
ndroid/email/provider/DBHelper.java
106970b83ecc8cfd26e58c2c441f4cd2d64288d4 17-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Notify when message changes (mostly for saving drafts)" into jb-ub-mail-ur10
c637bff1989e768f1ffe0f898bd803a9c78d0514 17-Sep-2013 Tony Mantler <nicoya@google.com> Notify when message changes (mostly for saving drafts)

b/10785769

Change-Id: I1ad8e0583ddaa9fa4fcc45906745980f103ec1fa
ndroid/email/provider/EmailProvider.java
d672b0eb2bbba53ecfe2df45b83e3db958a1e31a 17-Sep-2013 Yu Ping Hu <yph@google.com> Merge "Fix MessageStateChange to include mailbox id." into jb-ub-mail-ur10
26ee7c98759a0cc090009259c8de60ecb8e29e94 16-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Make sync settings less confusing." into jb-ub-mail-ur10
1cede711941eb32970a0c270dc7fb31b3f28f8f1 16-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Fix "Load More" for IMAP search" into jb-ub-mail-ur10
0e550e085722c1616ae9a7478609d32ff4392e26 16-Sep-2013 Martin Hibdon <mhibdon@google.com> Make sync settings less confusing.

b/10602459
It was possible to turn off syncing for an account in global
settings, but we'd continue displaying some sync frequency
in the in-app settings.
Now, we only display the sync frequency if sync is actually
enabled. If it's disabled we always display "never". Also,
when the user changes a sync setting, if it's set to "never",
we leave the frequency in the database as it is, but disable
sync for that account. If it's set to anything else, we store
that in the database and ensure that sync for the account is
enabled. This means we should not have any apparent disagreement
between in-app settings and global settings as to whether or
not syncing will happen.

Change-Id: I1cc54e76aafd25dc4db0f1b713e7d7cbc30bf77f
ndroid/email/activity/setup/AccountSettingsFragment.java
7d761f3de3b05657363a03c8afe3d4d1114a1b2f 16-Sep-2013 Tony Mantler <nicoya@google.com> Fix "Load More" for IMAP search

Also kill some warnings while I'm at it.

b/8607507

Change-Id: I8bfa90e9144d71e964799d6f2dab5e79f48b277f
ndroid/email/provider/EmailProvider.java
ndroid/email/service/ImapService.java
e9849404652f317c4fb3af822fd6fa9cd23ad881 13-Sep-2013 Yu Ping Hu <yph@google.com> Fix MessageStateChange to include mailbox id.

Also ignore messages without server ids for moves and
state changes.

Also cleanup to match needs of EAS upsync.

Bug: 10678136
Change-Id: Id4d5229b8479e61bd718b707b0d2bc77a9e68046
ndroid/email/provider/EmailProvider.java
c48670a5692144b293cea1c42b138e5228860da4 14-Sep-2013 Yu Ping Hu <yph@google.com> Only set sync mailbox to inbox if none was specified.

Follow up to I9e62d5de10222f1d81b47a68dd0b3ab05de5436d.

Bug: 10729228
Change-Id: I8100a0a5d965e4c4c86dccb6c94dfe26cc6e49a0
ndroid/email/service/PopImapSyncAdapterService.java
1a7838eed7558a8f5caa23128518cae09d8a034f 13-Sep-2013 Martin Hibdon <mhibdon@google.com> Update folder structure on every POP or IMAP sync

b/10729228

Change-Id: I9e62d5de10222f1d81b47a68dd0b3ab05de5436d
ndroid/email/service/PopImapSyncAdapterService.java
17d014dfdf172f3b60bcdb41f1b831fbdc8230d4 13-Sep-2013 Alice Yang <alice@google.com> Disable attachment previews

Change-Id: Ic2314f89b813956a6351bed51bfa6881e51605ff
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
24bb2dabd9dd7d8bd39fed53f312ae6034e373bb 13-Sep-2013 Martin Hibdon <mhibdon@google.com> Kill the process when an account is deleted.

b/10653370
This prevents NPEs if a serviec happens to still be running
when an account is deleted.
This mirrors a similar pattern in the gmail app.

Change-Id: I6fd8ae5ffe41580df0a321ec22535403e3f32eee
ndroid/email/provider/AccountReconciler.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/Pop3Service.java
64690e9452b4d5c803457c95065b9481c28c48b5 12-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Delete POP emails when they are removed from the server" into jb-ub-mail-ur10
e25e6b2937daf80d38cc640d06632d8d2488b6e9 12-Sep-2013 Martin Hibdon <mhibdon@google.com> Delete POP emails when they are removed from the server

b/10461973

Change-Id: Iccd455b4b71d83318c7f5429f399fe5db2558e42
ndroid/email/service/Pop3Service.java
da42d856b8940f58c0431dd2f0fb7e8c8f8c0644 12-Sep-2013 Tony Mantler <nicoya@google.com> Don't skip attachment saving if the attachment is not yet saved.

Also tidy up warnings

b/10461356

Change-Id: I65ac4c5b512cd67a39c81606391a2b044213f269
ndroid/email/service/EmailServiceStub.java
4f63f1eec1138cc650ff4f6bda9ba8faa62ef6c2 12-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Purge views after they're supposed to be destroyed to avoid spurious callbacks" into jb-ub-mail-ur10
92e13548edbe750515df8cbf1d49d285eaedf74a 12-Sep-2013 Martin Hibdon <mhibdon@google.com> Merge "Fix a bug in Pop3 sync" into jb-ub-mail-ur10
85ff07a00a368beb1da4090de6fb086c3fad972e 12-Sep-2013 Martin Hibdon <mhibdon@google.com> Fix a bug in Pop3 sync

b/10413188
There are still several issues with attachments generally,
but this fixes the most glaring problem: We were short circuiting
in a loop that needed to populate a hash table of remote message
Ids, so not all of them would be present. The later code intended
to load attachments expected it to be fully populated.
There are still several problems, notably that if downloading
doesn't work, it just spins forever, but this fixes the first
problem.

Change-Id: I2b23dcb841edabe108096933fea2350ef61a10f1
ndroid/email/service/Pop3Service.java
ecac654c6666072d3ed9627f0524fa46ea8c03fc 12-Sep-2013 Tony Mantler <nicoya@google.com> Purge views after they're supposed to be destroyed to avoid spurious callbacks

b/10565885

Change-Id: I7ef18fdac566975d15ffd1a19f756a5e5d2aee8a
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
463ed118577c8fde5d43a38ff85e707b9ef7f87e 11-Sep-2013 Tony Mantler <nicoya@google.com> Disable account setup debug screen.

b/10446166

Change-Id: I6703c1950559e9896f168a0cbaec10040eac9589
ndroid/email/activity/setup/AccountSetupBasics.java
78c166b4ccbd4342a07e32571f09fddbb56138b2 12-Sep-2013 Tony Mantler <nicoya@google.com> Disallow duplicate accounts

b/10210901

Change-Id: I11b759246fafabafe29fd8f4d20f6e973f9679a4
ndroid/email/activity/setup/AccountSetupBasics.java
de8b97c72e8d0019d892f70d3d452ada051ed8f3 11-Sep-2013 Tony Mantler <nicoya@google.com> Postpone initialization of notification URIs until the EMAIL_PACKAGE_NAME is known

b/10693908

Change-Id: Ia232dda55e03e02db24040b9d17c383addaff0b0
ndroid/email/provider/EmailProvider.java
2bae64df29c592928c380813cca0b4cac28804a4 11-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Notify combined account when individual accounts change" into jb-ub-mail-ur10
fc906340f9a3ef0246f4d693f0a2afc15af8cd6c 10-Sep-2013 Tony Mantler <nicoya@google.com> Notify combined account when individual accounts change

b/10610684

Change-Id: I675a5b2dfd9ccdb412f2746f5785c8f1141f6a76
ndroid/email/provider/EmailProvider.java
9e9caaee7c20c538b00f791e54d5d2744c17c1ef 11-Sep-2013 Tony Mantler <nicoya@google.com> Reorder db update/notify and clean up warnings in EmailProvider

Change-Id: I6c65c18ea19bd1afd956b455ac296a4c2d402662
ndroid/email/provider/EmailProvider.java
2fb5d2f9dd6a243065602a2970e9f698b0d09190 10-Sep-2013 Tony Mantler <nicoya@google.com> Don't spam the log with null columns.

My bad.

Change-Id: Ia9bcf2b09f905e3f720814b50453df59d5341038
ndroid/email/provider/EmailProvider.java
ca79aba675d5282b6ba365184f3727b7b24a568f 05-Sep-2013 Yu Ping Hu <yph@google.com> Add the MessageMove & MessageStateChange tables.

We need to track changes that need to be unsynced. Because
Exchange handles moves differently from other changes, we
create two different tables. The tables are structured as
change logs to better handle error cases.

Change-Id: I4df90c75f36707fa117aed9718508426e60e0749
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
582bc439ea4a7b9a965af50361504b68fc542896 07-Sep-2013 Tony Mantler <nicoya@google.com> Tidy warnings

Change-Id: I08517af26c27a85fddabccf15dd1a50316df5b5c
ndroid/email/provider/EmailProvider.java
33bc3df32ba08ffd02d3e19c039e7c9db4a42bb0 05-Sep-2013 Tony Mantler <nicoya@google.com> Always mark messages as seen when we return to the folder list

b/10533884

Change-Id: If1e0774b70a379884cc435fab9965d39531efb58
ndroid/email/provider/EmailProvider.java
19c11c0b7760a30f8af8b1cc151865efb3b11f42 05-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Tidy warnings in AccountSettingsFragment" into jb-ub-mail-ur10
39f29d0481f03036dfe3f7c24707d79136e9f09d 05-Sep-2013 Tony Mantler <nicoya@google.com> Tidy warnings in AccountSettingsFragment

Change-Id: I933529dac9f37d0734fa7b98a43e8f41eb143698
ndroid/email/activity/setup/AccountSettingsFragment.java
e743a06ddf7677706da7450100e19d0f4509a43c 04-Sep-2013 Scott Kennedy <skennedy@google.com> Allow going back to search results

If you went from search results to conversation view, then hit the
back button, we were taking you out of search results to the inbox,
because we didn't know you had search results.

Now, we're tracking this (through the use of a folder type), so we
take you where you should go.

Bug: 10591438
Change-Id: I12ad81323fe3e1f199d9dd06a1a4e18f765b01ee
ndroid/email/provider/EmailProvider.java
67855d31179201b5c5418b3442e7bd474d21e61d 04-Sep-2013 Tony Mantler <nicoya@google.com> Merge "Make UnsavedChangesDialogFragment public so the framework can find it" into jb-ub-mail-ur10
6f3a94cca18c67f19c093f3178476055e60370d3 04-Sep-2013 Tony Mantler <nicoya@google.com> Make UnsavedChangesDialogFragment public so the framework can find it

b/10611121

Change-Id: I9daab10d49b492950f2032ee1edf4ca07a3e7ef8
ndroid/email/activity/setup/AccountSettings.java
66520b31457632c8c313caa7bc11e25fe0815a99 04-Sep-2013 Andrew Sapperstein <asapperstein@google.com> Remove CAN_HOLD_MAIL folder capability.

b/9623931

Change-Id: Ic15860d46a6adf8d313536b68ce8e0fad1d97810
ndroid/email/provider/EmailProvider.java
26cd5e024c6af8ff9c8558325dd0930c9aacb370 31-Aug-2013 Tony Mantler <nicoya@google.com> Don't store the account creation/modificaiton state in a singleton

b/10460757

Change-Id: I7f0bea69f843f9061d1cfa9277c99d36705aceaf
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupActivity.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/AccountSetupType.java
ndroid/email/activity/setup/SetupData.java
5dcb447c04ccfc6bf3201ad127dcb1e9721f429a 30-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Moved some stuff from Email to Unified.

b/10542802.

Change-Id: I9623ce85cae6f67ec647e1712e8c392a35311171
ndroid/email/Clock.java
ndroid/email/NotificationController.java
f1e3a72d622f3d65660c14bbfd1f9d0e07930631 29-Aug-2013 Martin Hibdon <mhibdon@google.com> Merge "Correctly fix an outOfBounds error" into jb-ub-mail-ur10
35957ffcf62f667501f2d80bdd9e33cfcce1b04d 29-Aug-2013 Martin Hibdon <mhibdon@google.com> Correctly fix an outOfBounds error

b/10380970

Change-Id: I58a57c7a659bb92ba6b6dbf0cbb099d0d252cc37
ndroid/email/mail/store/Pop3Store.java
037e4ad33021825723ac810c390d2a4258356d4f 29-Aug-2013 Martin Hibdon <mhibdon@google.com> Merge "Prevent simultaneous imap and pop syncs" into jb-ub-mail-ur10
466eb2dcd2660bf0e5d8d1440db598a30ca184f3 29-Aug-2013 Martin Hibdon <mhibdon@google.com> Prevent simultaneous imap and pop syncs

b/10527550
I'm not yet sure why we're getting this started
in multiple threads, but the methods where the sync
occurs are now synchronized so they can't happen
at the same time.

Change-Id: Icf7afd336ed056bb42df84b8634117afa8f31213
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
e4ac06080ba8b8e57531982ea290354b1a9a4305 28-Aug-2013 Paul Westbrook <pwestbro@google.com> Don't use implicit events

Bug: 10189773
Change-Id: I4579f2e465bd23b8ab4cdf291bfbe80cf6518328
ndroid/email/service/EmailServiceUtils.java
0c8df56a0aed5b97aee2031ccbce75762097b1d1 28-Aug-2013 Martin Hibdon <mhibdon@google.com> When loading local messages, don't filter messages by time

b/10508861
Temporary fix for this.
For some reason, we're getting messages loaded with the wrong
date being stored. If we have a message with date = 0, and we
filter out anything older than 24 hours, then these messages
with the wrong date won't get loaded into our localMessageMap.
Then we won't recognize that message is already present locally,
and we will fetch a duplicate.
I don't yet know why we're getting the date wrong.

Change-Id: Ic91cd263198ee944eddbaf1d90080e8285a5df6a
ndroid/email/service/ImapService.java
7be030ec8e31c53da8bde54b040e64546727ef61 27-Aug-2013 Tony Mantler <nicoya@google.com> Remove pointless parent class EmailPreferenceFragment

Change-Id: Ia384d92632100c2adfb22c22c03d4755250e388e
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/EmailPreferenceFragment.java
ndroid/email/activity/setup/GeneralPreferences.java
0a710bde6817354211525b0f3176a1e294d1cd79 26-Aug-2013 Scott Kennedy <skennedy@google.com> Fix notification preference migration

These settings need to be migrated from the database, not the
SharedPreferences file that likely shouldn't even exist.

Everything added to Account.java was removed in
Ie6ec389b5b5d2e7ab1b299d0877811ae716526e2
when it was believed to be unnecessary.

Bug: 10211615
Change-Id: If6193758febda8a3272d82792492503549a44e32
ndroid/email/preferences/EmailPreferenceMigrator.java
076ab8307439f31e8197579f11b9bc3342fd5626 26-Aug-2013 Tony Mantler <nicoya@google.com> Minor warnings tidy

Change-Id: Ib2a85ca838ae521377855b916c57bb7bd00c42f3
ndroid/email/SecurityPolicy.java
c76d008c90dee88c53b182db9d95f6a18999b5cd 24-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Add the moved messages query." into jb-ub-mail-ur10
336e65b6e1eb92fac8f03b5c39dde19361577cb4 23-Aug-2013 Yu Ping Hu <yph@google.com> Add the moved messages query.

Change-Id: I6dea8055c5d1a4195b9613f684fbd1f5e8d807fd
ndroid/email/provider/EmailProvider.java
ed4accb24facd1324948abc61b0791eb3dc97cc4 23-Aug-2013 Tony Mantler <nicoya@google.com> Clean up warnings, finals, dead and useless code

Change-Id: I8225a78c3b1712479bb5752161e3585a2bc2be2e
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
21b95c1071b15a8c264c945a809d60ee284020de 23-Aug-2013 Tony Mantler <nicoya@google.com> Check for null cursor in EmailPreferenceMigrator#migrate()

b/10456199

Change-Id: I3586fbb1aadbcc7e93208aa35ce948b133737d11
ndroid/email/preferences/EmailPreferenceMigrator.java
4727dc2903ca96b6d237f91642d836e8e1ca32e0 23-Aug-2013 Tony Mantler <nicoya@google.com> Add TODO for debug variable for entering debug screen

See b/10446166 for STOPSHIP notice to disable debug screen before shipping

Change-Id: Ic0c845b558a2b745bc5015beb3eac3864165670d
ndroid/email/activity/setup/AccountSetupBasics.java
219c3b5b8474bc0b95a9dcab21067ff603fccb15 22-Aug-2013 Tony Mantler <nicoya@google.com> Tidy up warnings in account setup fragments

Change-Id: I078df83dbc4afd10c0783a98bfbb23bced12489c
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
f89b69abb0d997fc09bccff03fb3db0419f59430 22-Aug-2013 Yu Ping Hu <yph@google.com> Merge "When adding an account, permit precisely 1 email address." into jb-ub-mail-ur10
aba5a30c786bfc7be8c6d360c664266117f2cc45 22-Aug-2013 Yu Ping Hu <yph@google.com> When adding an account, permit precisely 1 email address.

Bug: 10357463
Change-Id: I310647e48f21be2942f2ad375b0e2e19c1af9015
ndroid/email/EmailAddressValidator.java
b4d4729fa2fc285ddc7ed31d902b15d8ad0cacca 22-Aug-2013 Martin Hibdon <mhibdon@google.com> Merge "Add PingDuration to the Account table" into jb-ub-mail-ur10
52135c6e8750f19084695cdda78ffe34719c4b6c 21-Aug-2013 Martin Hibdon <mhibdon@google.com> Add PingDuration to the Account table

b/10328857
this is so that we can keep the current ping
duration and restore it on startup.

Change-Id: I7ae11fd21687cb9013222924934154c5ebe1f7e7
ndroid/email/provider/DBHelper.java
4525565948db8728f5608da21bb9fd95993c6be9 20-Aug-2013 Yu Ping Hu <yph@google.com> Improve synchronization in EmailProvider.

It's possible to have multiple EmailProviders.
Also get rid of references to the multiprocess attribute.

Bug: 10388165
Change-Id: Ic6be363eaee20b3b5deddc7b3054d1a7419483a1
ndroid/email/provider/EmailProvider.java
c0a1a81543d147309876701484f5c5be93bdd203 20-Aug-2013 Tony Mantler <nicoya@google.com> Make EmailProvider URL matcher init threadsafe

Also remove mysterious extra indentation

b/10388165

Change-Id: I9a6f16c58e31653e5c47ff2898f66a44412b8a33
ndroid/email/provider/EmailProvider.java
8bdf037f9cd08823210ce68aa000322a2f0c0a4d 20-Aug-2013 Scott Kennedy <skennedy@google.com> Remove an unused constant

Change-Id: I4aaf0237719078731e3eb0c2434485530e653c86
ndroid/email/preferences/EmailPreferenceMigrator.java
ab45810839ed4a7c68cbd065bd18acd0b5a6c7bd 20-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Disable policy listing in account settings." into jb-ub-mail-ur10
4df4c1c2d89c84c9f3db74746b784709fa464d8d 20-Aug-2013 Yu Ping Hu <yph@google.com> Disable policy listing in account settings.

It wasn't working right anyway.
Also, fix a problem where account settings were
not being fully initialized.

Bug: 8384097
Change-Id: Ia60ace2ce618b64fe4ad5ef8d8ac547a086a26d5
ndroid/email/activity/setup/AccountSettingsFragment.java
b940ed8adfb9e8e7f2af8ae70c63803afda10be7 20-Aug-2013 Martin Hibdon <mhibdon@google.com> Fix an OutOfBoundsException

b/10380970
This could happen if the response to the POP3
RETR request did not contain a content length.

Change-Id: I99ad93ec71ba917e0f36bee204d7f8d05c79c5ff
ndroid/email/mail/store/Pop3Store.java
ea69cbe533eb09c0264082dd2370f5d6d8c47fda 17-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Fix attachments when policies change." into jb-ub-mail-ur10
901faf1bfb3473b4e40ccd82dab3f3f99eb599bb 17-Aug-2013 Yu Ping Hu <yph@google.com> Allow deletion from virtual folders.

Bug: 10367404
Change-Id: I869dfc5af7064e2992bbd47c89fd990e2caaa701
ndroid/email/provider/EmailProvider.java
940a335bab634a849b45f62d711601d57f59aeb1 17-Aug-2013 Yu Ping Hu <yph@google.com> Fix attachments when policies change.

This used to be done in the Exchange code, but it's more
appropriate here.

Change-Id: Ie2bd5722bda46741d367eef3a2e9d2493c3cc4e3
ndroid/email/SecurityPolicy.java
908fac0b247deff27fee44297f892afdfbb086a5 17-Aug-2013 Paul Westbrook <pwestbro@google.com> Fix NPE

Bug: 10292690
Change-Id: I34714a6a07bcaba3d20fdae32ee6b129c74c8a32
ndroid/email/provider/AttachmentProvider.java
dae31e6c28c2380a680f6fdbff416e4fa31488b2 16-Aug-2013 Tony Mantler <nicoya@google.com> Merge "Reimplement QuickResponse support" into jb-ub-mail-ur10
1a0aa22dc02fdfc6876ee90926acc447da8fe935 16-Aug-2013 Martin Hibdon <mhibdon@google.com> Cut down on some unneccesary allocations

We were always allocating a one element array in
a loop. We can just keep create one array and
reuse it.

Change-Id: Ia44f0b711ef48fb87030c3f09f3f9fb654717b7a
ndroid/email/service/ImapService.java
c6953b77552d4cb71776cf0537dc226029381628 14-Aug-2013 Tony Mantler <nicoya@google.com> Reimplement QuickResponse support

b/8622751

Change-Id: Id079efcf34dce15b5f5057f937582c0e198d3d50
ndroid/email/activity/ComposeActivityEmail.java
ndroid/email/activity/InsertQuickResponseDialog.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
ndroid/email/provider/EmailProvider.java
7985b43ab7310f76c170266da346f993d2f86051 14-Aug-2013 Paul Westbrook <pwestbro@google.com> Add public no-arg Fragment constructors

Bug: 10311630
Change-Id: I0243462cdc28b9af3151754a8c8583330418579b
ndroid/email/activity/InsertQuickResponseDialog.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/activity/setup/DuplicateAccountDialogFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
66ac290b353302256e85d319c0ce623277dfdad3 13-Aug-2013 Martin Hibdon <mhibdon@google.com> Fix a bug causing duplicate messages to be added

The IMAP time based query only takes a date, not a
date/time. This means that if we want to load all
messages since, for example, Aug 11 at 3:00 PM,
we'll actually get all messages since Aug 11 at any time.

Our local query actually took into account the time, so
when we loaded a map of local messages, it would not
always include all of the same messages that the IMAP
query would. This meant that if we processed a message
that was in our IMAP query window but not our local query
window, we'd always think it was a new message even
if it wasn't.

It's easy enough to increase the size of our local query
window so that it will definitely include all of the
messages the IMAP query might return, but this adds
a new problem: It's no longer safe to delete any local
message that did not come back in our IMAP query result.
Since our local query may include a larger time window
than the IMAP query window, we need to check each message's
timestamp, and only delete it if it is inside the remote
query time window.

Change-Id: Ib3c1bbe8f3db05720d32a981483676afa6d6c38b
ndroid/email/service/ImapService.java
cef6c19be22fb026161a7763f4e1efb1e30a728a 12-Aug-2013 Tony Mantler <nicoya@google.com> Move the "Add new quick response" button into the action bar

Change-Id: I433fb686837d0de125fb277f5055bc33b7769eff
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
8c13dcd950b2a5d5a95d60690e2d3bd42b4ffbdf 12-Aug-2013 Paul Westbrook <pwestbro@google.com> Merge "Fix problem in IMAP with non-roman locales" into jb-ub-mail-ur10
ae29fb76f0ee8e17d699ca05b1f0c8660aae60d0 12-Aug-2013 Paul Westbrook <pwestbro@google.com> Fix problem in IMAP with non-roman locales

This is a partial cherry-pick of:
https://android-review.googlesource.com/#/c/57514/1

Change-Id: I1dea4d5bf0bd02fec2baf5763f5864c3eb32f744
ndroid/email/mail/store/imap/ImapConstants.java
948e503b4a2e1b2a74e3919bb64dc7df7dc91b33 12-Aug-2013 Tony Mantler <nicoya@google.com> Merge "Continue rewriting QuickResponse support" into jb-ub-mail-ur10
6d24534804ddf54cd353ed46c4cbd6d23152f899 10-Aug-2013 Tony Mantler <nicoya@google.com> Continue rewriting QuickResponse support

Change-Id: I95530e84d91f4becb3de5280af83ce546e1ed093
ndroid/email/activity/InsertQuickResponseDialog.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
50f0cba92ce2c2f45600cfd0e5184df84d3ab370 12-Aug-2013 Alice Yang <alice@google.com> Merge "Sync disabled tip" into jb-ub-mail-ur10
4ef1f6a689e12f265d12638329a35c9ae927b3b8 09-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Synchronize all access to the EmailServiceInfo map." into jb-ub-mail-ur10
3b758913be54c4d561ce718cb2cd629686f92037 09-Aug-2013 Paul Westbrook <pwestbro@google.com> Merge "Use DatabaseUtils method instead of query()" into jb-ub-mail-ur10
44e16031550929a5e840aa61dcb4246ff1f691d9 11-Jul-2013 yi.jang <yi.jang@lge.com> Use deleteDatabase method to improve safety of DB file handling

Deleting .db files can make malformed database issues
when WAL(write ahead logging) mode is enabled.
EmailProvider doesn't use WAL mode currently,
But it has to be fixed because it might cause the problem in the
future.

Change-Id: Ie0313c5d253f3080401b00b197e7cbf97f25423c

Conflicts:
src/com/android/email/provider/EmailProvider.java
ndroid/email/provider/EmailProvider.java
b5eed31d1bdfcb8e8b316c9c49331295718001bd 09-Aug-2013 Yu Ping Hu <yph@google.com> Synchronize all access to the EmailServiceInfo map.

Bug: 10255995
Change-Id: I36bee575a923b5c8bfbaea7babdf9f2c5e9bd378
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceUtils.java
a6745514643f66741229a0cca3927931bdfa47b3 16-May-2013 yi.jang <yi.jang@lge.com> Use DatabaseUtils method instead of query()

Use DatabaseUtils.longForQuery() method instead of SQLiteDatabase.query().
This reduces processing cost of database cursor.

Change-Id: Ibe53645b32a4de1ab6518f879e564ddf8f75d822

Conflicts:
src/com/android/email/provider/EmailProvider.java
ndroid/email/provider/EmailProvider.java
fdb0fc712a602518112226c8f82343fc07e08260 08-Aug-2013 Tony Mantler <nicoya@google.com> Merge "Start cleaning up QuickResponse code" into jb-ub-mail-ur10
bf0911f3dee8bea9d2a8a8957913cf62e4f5eb85 08-Aug-2013 Yu Ping Hu <yph@google.com> Disable attachment preview pref.

Bug: 10232077
Change-Id: If1ed251d63befd40dc55ada2da7c56f5ac611c68
ndroid/email/activity/setup/GeneralPreferences.java
05273f8309c167db145fc9e3f12319df6631b26d 08-Aug-2013 Tony Mantler <nicoya@google.com> Start cleaning up QuickResponse code

Change-Id: I76b5adbe8e05713c44d11a2e51d317cae6266a56
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
d42e14ad722db6eb1a8e6b0696abb6d4a88fac4e 07-Aug-2013 Martin Hibdon <mhibdon@google.com> Merge "Implement two part imap sync" into jb-ub-mail-ur10
c75f5880ab70d9f4938727587696b864bb4ea02a 07-Aug-2013 Martin Hibdon <mhibdon@google.com> Implement two part imap sync

b/10075523
Now, every 15 minutes we'll sync the last 24 hours.
Every 4 hours we'll perform a full sync, which will
take either the last 7 days, or until the oldest message
we already have locally.

Change-Id: Idc55a46a28af2a68cc324e414d51d88373941595
ndroid/email/provider/DBHelper.java
ndroid/email/service/ImapService.java
ndroid/email/service/PopImapSyncAdapterService.java
034149b5861ff5a42593f9749ab059f2c4cf4381 07-Aug-2013 Mark Wei <markwei@google.com> Add a setting for attachment previews.

Bug: 10131520
Change-Id: I782b331971272203d1b36a578cf6a149793b10e6
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
f1284d4d550230a4e13247a9513f03a7f3fd2347 07-Aug-2013 Alice Yang <alice@google.com> Sync disabled tip

Bug 9825835

Change-Id: I5fd692c7cd8a03d3b8ea140f2d6e8919bd293904
ndroid/email/provider/EmailProvider.java
c3ceed68948ef6720ae7b861955b4d341f331643 07-Aug-2013 Yu Ping Hu <yph@google.com> Fix ui notifications on folder list changes.

uifolders and uiallfolders cursors now setNotificationUri on
the appropriate uri. That uri is notified whenever:

- A folder is inserted, deleted, or modified.
- A message is inserted or modified (since this can affect
message counts).

This second one is still not quite right: there are some
conditions where counts aren't updating correctly.

While I was here, I renamed the notification uris to
avoid collisions between different versions of the app.

Bug: 9111855
Change-Id: Ia29bb6a65b4f673bf352fdf0e14270b3f1443ca8
ndroid/email/provider/EmailProvider.java
6edccbf1f1371157cfa6e503d8353a474aafd2a1 07-Aug-2013 Yu Ping Hu <yph@google.com> Fix capabilities to allow discarding drafts.

Bug: 10098652
Change-Id: Iebceb203cd054a1550f7c1f118841a77429f853a
ndroid/email/provider/EmailProvider.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
9d628b4c41df1d9a4a1251b91191cff654e64841 06-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Fix icons for unread virtual folder." into jb-ub-mail-ur10
5e5b08dcce1b0f48313fd2f7198c9e910d413eec 06-Aug-2013 Yu Ping Hu <yph@google.com> Fix icons for unread virtual folder.

Bug: 9594158
Change-Id: I9e00e89fe74c43c99b8cb67e068aa06593c79413
ndroid/email/provider/EmailProvider.java
d7384918e7ce035f79cf46e61ab57ac41a8bd62b 05-Aug-2013 Martin Hibdon <mhibdon@google.com> Merge "Fix a couple of bugs in imap synching" into jb-ub-mail-ur10
fda9d945e73110e644f4e953b658c248dd96355f 05-Aug-2013 Martin Hibdon <mhibdon@google.com> Fix a couple of bugs in imap synching

b/10111339
b/10125810
The first problem was that the imap BEFORE clause
is exclusive, so messages on the date given in
BEFORE will not be sent. Now, on the sync for the
most recent messages, we will just not specify a
BEFORE clause, so we can always get the most recent
messages even if our clock drifts from the server.

The second is that some imap servers do not accept
time information on the query dates, and that causes
errors. The imap spec defines the BEFORE and SINCE
clauses to come with a <date> only, not a time,
and although it seems that at least some imap servers
handle that, it can't be expected to always work.

Change-Id: Ibf41c6f7600b9f9537bc6d13b59873ee36798e1e
ndroid/email/mail/store/ImapFolder.java
ndroid/email/service/ImapService.java
bcd81d96a40f3d987f4d780f64d339dd7f5ab2ed 02-Aug-2013 Yu Ping Hu <yph@google.com> Report message count for folders where total count < 0.

Local-only folders will set total count = -1 to signify that
they should never sync with server.

Change-Id: I6034633e453343f14faac077902e67ea4e6b0a35
ndroid/email/provider/EmailProvider.java
431811986ff0637826e3937522a9da3fe3561b3a 02-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Move required system folder types to Mailbox." into jb-ub-mail-ur10
ef576c8e6cedc2789ae751f3fe5d39c8002106c4 02-Aug-2013 Martin Hibdon <mhibdon@google.com> Merge "Update pop3 syncing" into jb-ub-mail-ur10
b177af7534782e6e3c764986731a1711d12de844 29-Jul-2013 Martin Hibdon <mhibdon@google.com> Update pop3 syncing

b/9857766
If we currently have zero messages (i.e. initial sync of
a new account) we will load the most recent 100 messages.
On subsequent syncs, we will load more recent messages
until either:
1. We have loaded 100 and not yet past any of the messages
we already had locally, or
2. We encounter messages that we already had locally, and
then load "deltaMessageCount" additional messages past
the ones we have locally.

Change-Id: I8b34409dcdaceff2d2e1906174241a74f2331688
ndroid/email/service/Pop3Service.java
eb4ee8a7aa540e77c57af1635ede7f89124f1259 02-Aug-2013 Yu Ping Hu <yph@google.com> Move required system folder types to Mailbox.

I'm formalizing the concept of folders that must exist,
and the list of such folders should be accessible to all
sync adapters.

Change-Id: I9e4d2d51aa495d211eab2d1e36c3fa197a1ac00d
ndroid/email/service/EmailServiceStub.java
a5355442a0a198739c60c11a0d2fc44928218e0b 01-Aug-2013 Yu Ping Hu <yph@google.com> Merge "Improve message counting, ah ah ah!" into jb-ub-mail-ur10
41d5342d986b12c9590548814382bed2ccab6253 01-Aug-2013 Scott Kennedy <skennedy@google.com> Merge "Refactor PreferenceMigrator" into jb-ub-mail-ur10
9e521deb6bb525b33365cc2926cb2d0faa7095e2 01-Aug-2013 Scott Kennedy <skennedy@google.com> Remove some warnings

Change-Id: Ie5adc71af6b6cec316c5186ac0566c02a4fc1bff
ndroid/email/EmailAddressValidator.java
ndroid/email/RequireManualSyncDialog.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/DuplicateAccountDialogFragment.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerSelectorAdapter.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/PolicyService.java
ndroid/email/view/CertificateSelector.java
60a9b7ecfb731f91e6c69f5f6059769dc66e75db 01-Aug-2013 Scott Kennedy <skennedy@google.com> Refactor PreferenceMigrator

Do the same thing as with LogTag, so that we don't have the same
class name in the same package name in three projects.

This makes IDE builds much easier.

Change-Id: I6c9235ab231e1c04ba87c5da627094c7258a5edf
ndroid/email/EmailApplication.java
ndroid/email/preferences/EmailPreferenceMigrator.java
ndroid/mail/preferences/PreferenceMigrator.java
5ff368b84573833497764c9d1661cc97717b7094 31-Jul-2013 Yu Ping Hu <yph@google.com> Improve message counting, ah ah ah!

- Restore message_count in the database.
- For UI queries on outbox, trash, and drafts,
use message count instead of total count.

Note this won't be the right thing to do when we properly
sync trash & drafts, but we'll address that when those syncs
are fixed.

Bug: 10098601
Bug: 10113686
Change-Id: I647c74396ee12ed981d89bfb654cc6d0a25cac95
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ef0d98155c95b22f7d8516eaaa8113e12bb7cbba 31-Jul-2013 Yu Ping Hu <yph@google.com> Fix settings menus.

- Account & general fragments need to clear to remove
"Add account" for phone & 7".
- 10" needs to therefore specify their menus in order to
have "Add account".

Bug: 10097087
Change-Id: I133db9b9f7f6610ae30b46927ffcb8a9e4df4c0a
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/GeneralPreferences.java
e95b9bb3e4b2f9eeaf47eceb550df79599efc41c 30-Jul-2013 Yu Ping Hu <yph@google.com> Merge "Delete most of IEmailServiceCallback." into jb-ub-mail-ur10
2075c97f608a853923980865b72147a5c8ef71f0 30-Jul-2013 Yu Ping Hu <yph@google.com> Delete most of IEmailServiceCallback.

The old callback mechanism is deprecated, in favor of making
calls on the ContentProvider.

Bug: 9842867

Change-Id: I65f559e593cda24456c4ffb96f785e054626dd0b
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ServiceStore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/PopImapSyncAdapterService.java
6dd7bd29e97e7190b01bf6325d131f24c097b560 30-Jul-2013 Paul Westbrook <pwestbro@google.com> Load large POP attachments

Load large attachments from a partial POP message

There will be a new change that improves the UI for loading
the rest of the message

Bug: 8651782
Change-Id: I075de1e82e27cf2018607eef50143850e8fecaf2
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/Utilities.java
ndroid/email/service/Pop3Service.java
c362f66ee1d47b2bb84170d5e2fc15a550753761 29-Jul-2013 Paul Westbrook <pwestbro@google.com> Merge "Stop crashing with POP attachments" into jb-ub-mail-ur10
8fe781124116d4d8423c2555c223abd3f056323e 29-Jul-2013 Paul Westbrook <pwestbro@google.com> Stop crashing with POP attachments

This is the first part of the change to fix POP attachments.
A following change will handle these partial messages better

Bug: 8651782

Change-Id: I8d00866207dedf63805e0eecab9555c28104f2dc
ndroid/email/service/Pop3Service.java
6cf15e66bc46d211882fe903ec55fe748fc87bfc 29-Jul-2013 Tony Mantler <nicoya@google.com> Re-add the demon "Add New Account"

b/10041669

Change-Id: I2b1db0a063ec292b33ec8f176b739c1c4422a040
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/GeneralPreferences.java
48b14fde961ef57103f7a31196254e357987f203 25-Jul-2013 Yu Ping Hu <yph@google.com> Fix all periodic syncs on upgrade.

Bug: 9844218

Change-Id: Ibacb309752b076faa3f96b5ad57dc121efd79bcb
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceUtils.java
02f0b1eee8f5de651ad5f0289146f88fea99bce0 27-Jul-2013 Yu Ping Hu <yph@google.com> Remove MailService.

Change-Id: Ibffd0c9fb0eed4822dff28d1577fb455736cffd1
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/MailService.java
ndroid/email2/ui/MailActivityEmail.java
30b28286aade0d45cf37b7f27057c1b89b8e18bd 27-Jul-2013 Yu Ping Hu <yph@google.com> Merge "Cleanup service loading." into jb-ub-mail-ur10
47bcb5a21a20ad59035ec4218e24cd45f1d49667 27-Jul-2013 Yu Ping Hu <yph@google.com> Cleanup service loading.

Authenticator upgrading no longer uses the services file
to specify upgrades, so we can remove the fields associated
with that functionality.

Change-Id: I2122f18614d714a3d5a565fb4a6a547ddc010b6f
ndroid/email/service/EmailServiceUtils.java
afe097f318a7eeac9d240d2bedbc5caba7640ea8 26-Jul-2013 Yu Ping Hu <yph@google.com> Simplify account reconciliation.

- Rather than handle by type, do them all at once.
- Simplify when reconciliation happens.

Bug: 9056861

Change-Id: If264678c82c63090246ef8ff857c8e46f6672c85
ndroid/email/provider/AccountReconciler.java
ndroid/email/service/AccountService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/MailService.java
e821797f27b094b55ad7aa4ed716089d36d71d82 25-Jul-2013 Martin Hibdon <mhibdon@google.com> Merge "Update IMAP sync method" into jb-ub-mail-ur10
25031796061b1d87cf2f38cdb34110c2291fbd47 18-Jul-2013 Martin Hibdon <mhibdon@google.com> Update IMAP sync method

Now it syncs using a date range query.

Change-Id: Ia520fbbe39521b1356acaf0fe764f9bdcc1aeb82
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/ImapService.java
ndroid/email/service/PopImapSyncAdapterService.java
b3cb475fd29f827002b9743822b2a99ff85d1b38 24-Jul-2013 Yu Ping Hu <yph@google.com> Fix DB upgrade code to set lookback correctly.

Rather than use null, just force the valid default value.
Also rename SYNC_WINDOW_UNKNOWN to SYNC_WINDOW_ACCOUNT to
better reflect how it's actually used.

Bug: 9989995
Change-Id: I8d0b466fe3bc2e4c651c309d4815cea201058d22
ndroid/email/provider/DBHelper.java
1c3ec5f6c00856081d1b5959f6708a53b617fce7 23-Jul-2013 Yu Ping Hu <yph@google.com> Merge "Move authenticator upgrade to app upgrade time." into jb-ub-mail-ur10
462da178b1be608a74000956c53dc8ecb438c689 23-Jul-2013 Yu Ping Hu <yph@google.com> Move authenticator upgrade to app upgrade time.

This used to run when the app first initializes the service map.

Bug: 9391930
Bug: 9971936
Change-Id: Iebaeb2dc94ef62edb0be0a7d5a008a26c4f5edfb
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/EmailUpgradeBroadcastReceiver.java
a48929fac44770f618d8e0e9047b66414046729c 22-Jul-2013 Tony Mantler <nicoya@google.com> Purge the demon "Add New Account"

b/9857109 b/9685360

Change-Id: If5c3d6ea4b59cacf8196cdda67fbaeb6e2afa03e
ndroid/email/activity/setup/AccountSettings.java
9a1f00bee4c50c128df320a3795cfc8295d5e011 20-Jul-2013 Yu Ping Hu <yph@google.com> Change deleteAccountPIMData to take emailAddress, not id.

By the time the remote call actually runs, the account
may be deleted from the DB, so the account id is likely
useless.

Bug: 9021105
Change-Id: If28b4b8c4b5c52be35c6ff68b326c4ea28d7f7b4
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
281c6365fb95037ca284dd8c910538639e8b3dcb 11-Jul-2013 Scott Kennedy <skennedy@google.com> Add a new FolderUri

This will allow us to add query parameters such that Uris will still
appear to be equal, regardless of differences in the parameters.

Bug: 9780067
Change-Id: I483d009fe3681ec3d4323b3ca95dff8ca9f4ffde
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
ndroid/email/provider/WidgetProvider.java
ndroid/email2/ui/MailActivityEmail.java
ccf730fbe53c3bffb0154d0666e9fcbb5e82f551 16-Jul-2013 Paul Westbrook <pwestbro@google.com> Migrate "show sender image" to UnifiedEmail

Bug: 9497358
Change-Id: Iefe39052fb7d53de02535ef98b45c66f1f918209
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
ndroid/mail/preferences/PreferenceMigrator.java
d5acf0bbc00cbe9a2c075e1bd4825ccbd9851d8d 15-Jul-2013 Yu Ping Hu <yph@google.com> Explicitly pass a callback when loading attachments.

This is part of moving away from the explicit setCallback,
which either has race conditions or is very noisy, or both.
(Each IEmailService call that wants callbacks should just
pass the callback explicitly.)

I'm not yet changing how the services actually handle the
call. Each protocol will need to fix this on their own.

Bug: 9735207
Bug: 9842867
Change-Id: If8cf69ffe82f3544ace9e58b1db5a183f38d038a
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/Pop3Service.java
765fa9e27e93f298c4aafe4cb59ba5bbf1153c38 15-Jul-2013 Paul Westbrook <pwestbro@google.com> Remove STOPSHIP logging

Bug: 8132946
Change-Id: I1f14a75c4dd334c4ae04cb0d79409cd072f2be08
ndroid/email/provider/EmailProvider.java
070569b46ca095c727934a7f6f55dc905dc21c62 15-Jul-2013 Yu Ping Hu <yph@google.com> Merge "Remove the folder structure daily sync for push accounts." into jb-ub-mail-ur10
05cf8a1c1f9b13aff75ec9e5c300fbf5c7aee27f 12-Jul-2013 Yu Ping Hu <yph@google.com> Remove the folder structure daily sync for push accounts.

Turns out that you don't need it -- Exchange has a way to
tell the client when folder changes occur.

Change-Id: If8089d9fe55e7ece407acf2f0dae977dced522b4
ndroid/email/provider/EmailProvider.java
b2c7bcff7813f2cecba5c9c52b69cf5ef2cc9cad 13-Jul-2013 Paul Westbrook <pwestbro@google.com> Set the correct account uri to message

Bug: 9595801
Change-Id: Ie3a92c2194caf77ef6f3286e9dcb43684a0b32f4
ndroid/email/provider/EmailProvider.java
8a289cb07cd577d9124411bc0b3c260baf959b9a 12-Jul-2013 Paul Westbrook <pwestbro@google.com> shorten log tag lengths

Bug: 9815409
Change-Id: Ied2ef86ec204d005c246444906d7a385e939043e
ndroid/email/EmailConnectivityManager.java
dbb8b75a4bd201f8472a511ef77ca2ed05bd808b 11-Jul-2013 Paul Westbrook <pwestbro@google.com> Fix feedback from Email settings

Bug: 9428466
Change-Id: I6816976b858a6a15da7d643320983208287a463a
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/provider/EmailProvider.java
50f645e019c3165b14457c0b661c59cd4e6ce375 04-Jul-2013 Vikram Aggarwal <viki@google.com> Parent folder as a URI

Email populates the URI correctly

Bug: 9694857 Populate folder.parent correctly in the provider

Change-Id: Ia509e1dbb2805a752805ba443527c3013715db24
ndroid/email/provider/EmailProvider.java
9c455277797a3564fea2a85d0765509f1dd1a45c 27-Jun-2013 Yu Ping Hu <yph@google.com> Allow account setting screen without outbound hostauth.

We have a way to handle lack of outbound host auth, and it's
a legitimate state for Exchange accounts (since it's unused
anyway).

Bug: 8631134
Change-Id: I99863f627c4f364e61f7a4b99dea3e2606a55275
ndroid/email/activity/setup/AccountSettingsFragment.java
229c070b0b177793032ce9249cb77f6ca98e5aa4 27-Jun-2013 Scott Kennedy <skennedy@google.com> Change the concept of a default account

The user no longer has control over this. Now, the "default" account
(which is only used for prepopulating the name of new accounts is
either the last used account (to be defined), or the first account in
the database.

This removes a setting, and simplifies a lot of code.

We may also want to auto-select the default account when entering the
compose screen from the combined view, but we do not currently have
an easy way to do that.

Bug: 7442992
Change-Id: Iff5bb36d8cbd327334211b670fa4851cbda6b9a0
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/provider/EmailProvider.java
cdee4b0c11400d766ae826e6c01d234c2769554f 27-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Use resource strings for system folders.

Fixes b/9193813. Previously we returned
a value from the database in all cases.
This meant that system folders were not
translated.

Change-Id: Ife568651886bfb6de76221b8bc5d013dac8fa21a
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
1b8e0fa23f6e9957f0b8753dd3f5b95d3f5d98ea 26-Jun-2013 Scott Kennedy <skennedy@google.com> Clean up a bunch of warnings

Bug: 9565838
Change-Id: I5e95562bbf463f057cbcc4a9884427a774473b45
ndroid/email/NotificationController.java
ndroid/email/Preferences.java
ndroid/email/RequireManualSyncDialog.java
ndroid/email/activity/InsertQuickResponseDialog.java
ndroid/email/activity/UiUtilities.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/MailboxSettings.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/ImapService.java
ndroid/email/service/PopImapSyncAdapterService.java
038924037bbaae4a62fb167e5ce7ae9e34a129fc 25-Jun-2013 Yu Ping Hu <yph@google.com> Fix mailbox sync options.

- Change mailbox sync interval to be a boolean.
- Decouple Inbox settings from account settings.

Change-Id: Id02d43b281f323ca4db499ce97e8f4bb6d82c2bb
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/MailboxSettings.java
478417a79440904b8a9c45fd3e4ec84db339a755 21-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Support eml attachments in email.

Change-Id: I76274540d00a292d5a8f777d75d8e9f7b2ef3a51
ndroid/email/provider/EmailProvider.java
a54ee609cdb79ad3abdda2d7180a29617fa38610 21-Jun-2013 Yu Ping Hu <yph@google.com> Convert Mailbox syncInterval column to boolean.

We are no longer doing per-mailbox sync intervals; instead,
mailboxes opt in to syncing, and the account sync interval
controls what happens.

Change-Id: I8ae32ea25079abbb63bb6a6a282bf5c06de73fca
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
6f2beeb59ae75ee26c78d99ded532acd87e1ff97 20-Jun-2013 Yu Ping Hu <yph@google.com> Add "account only" periodic sync for push accounts.

EAS push only gets changes to the contents of collections,
but not for changes to accounts or folder structure. This
adds a new sync type to fetch only accounts, and adds a
periodic sync of this type for push accounts.

Change-Id: I1e9337252dbb5e53db3f7c5953e089de2c69d18c
ndroid/email/provider/EmailProvider.java
650f50023a02280b6eae3545004c49a928903af4 20-Jun-2013 Mark Wei <markwei@google.com> Merge "Fix IMAP attachments REDOWNLOADING." into jb-ub-mail-ur10
8f474dc02f01d7805716422625ef7b50fa0e4aef 20-Jun-2013 Mark Wei <markwei@google.com> Fix IMAP attachments REDOWNLOADING.

Previously, if you clicked Download again, you will never be able to view that
attachment again.

Change-Id: Ie944becaf8c89a1a27b8625af4795550e9213f5e
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
e7ebb5de04e2419763459883f37f45ee0d27e4c7 20-Jun-2013 Yu Ping Hu <yph@google.com> Remove references to deprecated sync states.

Change-Id: Ib22bac766fb0ac4d6e764ee92b56a8026baee852
ndroid/email/activity/setup/MailboxSettings.java
f44697e15899f15607b474159c1ce745137dd9c7 19-Jun-2013 Yu Ping Hu <yph@google.com> Merge "Return null instead of crashing when querying a bad folder." into jb-ub-mail-ur10
70500d2253732f4e26988659c27d1b4186926c54 19-Jun-2013 Yu Ping Hu <yph@google.com> Return null instead of crashing when querying a bad folder.

Bug: 9250557
Change-Id: Ic0074fa1f6db53a7495c7de48a8f42158a0ea1d9
ndroid/email/provider/EmailProvider.java
e7d539ddf94270ee716c331dd75c60731d598c1d 19-Jun-2013 Paul Westbrook <pwestbro@google.com> Update the signature summary

Bug: 9480853
Change-Id: I8996efa268c906485ee1d5cfcf0f883d40927009
ndroid/email/activity/setup/AccountSettingsFragment.java
aa0ca16a27e4a56a029e5cdebf96de5723bd84b6 18-Jun-2013 Yu Ping Hu <yph@google.com> Remove references to account mailbox.

Exchange implementation no longer uses them.

Change-Id: I221a914f2428c0c7989f79392ca82f7a8f4b1c52
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
21b2522d7f6b2bce8fc3382e6e532d4b4df1b140 14-Jun-2013 Yu Ping Hu <yph@google.com> Remove auto sync windows.

Also includes other DB upgrade code.

Bug: 8668336
Bug: 9226612

Change-Id: Id9664fd8cda466ec34862a793e41cbcce78efb4c
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/MailboxSettings.java
ndroid/email/provider/DBHelper.java
525e8ad321967b3f4b15cadf63efb3deafc216ab 13-Jun-2013 Paul Westbrook <pwestbro@google.com> Move support for settings menu to UnifiedEmail

Move the base settings menu to UnifiedEmail

Bug: 9393150
Change-Id: Ifa69125d84802a0d7dd2275e4704ec7a4d1fb2f1
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
380985add95d003cda6c6d6804292b8a3b4f99e8 12-Jun-2013 Scott Kennedy <skennedy@google.com> Merge "Move to Inbox" into jb-ub-mail-ur10
1079b6e9628910e726881233f62808976d5d3be1 12-Jun-2013 Scott Kennedy <skennedy@google.com> Move to Inbox

Add a new Account setting field: Uri moveToInbox
This contains the Uri to use for the "move to inbox" action, which
may differ from defaultInbox.

There is no Move to Inbox in Email right now.

Bug: 9256654
Change-Id: I7c81c8115eda83123a09a9b7da7adf97a3c79964
ndroid/email/provider/EmailProvider.java
6fadd5a0bdbd0d510bc886617759bd3adb13599e 12-Jun-2013 Yu Ping Hu <yph@google.com> Add some null checks.

Bug: 9393662
Change-Id: I8c47b701062fb91e0e622644a26b470e78f62014
ndroid/email/activity/setup/AccountSettingsFragment.java
38f22dbf08664b885b4cf063ea665c02edfb1c32 08-Jun-2013 Paul Westbrook <pwestbro@google.com> Use "show pictures" code from UnifiedEmail

Bug: 9320770
Change-Id: I701a93e2f09b8405a2c4bc56f7793f5abadbcd1e
ndroid/email/Preferences.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
ndroid/mail/preferences/PreferenceMigrator.java
5a3fe57f4e13125a050948a7a5abf629f431f60b 07-Jun-2013 Paul Westbrook <pwestbro@google.com> Fix logging crash

If the string contains a character that is intrepreted by the
string formatter, this would throw an exception

Change-Id: I60cccb539bf197fa555d8d1f0fa1bdca3e07114e
ndroid/email/mail/transport/DiscourseLogger.java
555bd3c0b7132509421ae181fbdb35995819787c 06-Jun-2013 Paul Westbrook <pwestbro@google.com> Don't show search folder

In folder lists, don't show the search folder

Bug: 9227357
Change-Id: Ic0b8a39929f6d2528f445d3746c4eb1915275593
ndroid/email/provider/EmailProvider.java
4c47dadf1848f34ee3a67caf6faacdb906685645 06-Jun-2013 Scott Kennedy <skennedy@google.com> Merge "Unify LogTag" into jb-ub-mail-ur10
c1d56928b2185e6a2643eea271a1fbd50e425ca2 06-Jun-2013 Paul Westbrook <pwestbro@google.com> Add a limit to the Conversation query

Bug: 9294348
Change-Id: Ifedfe657f205adb1c8a12382b908f4b3b4346500
ndroid/email/provider/EmailProvider.java
560bfadc3151f7a06f3b06e9a6c92cfa534c63ec 26-May-2013 Scott Kennedy <skennedy@google.com> Unify LogTag

There is now only one LogTag class. The static initializer of
GmailApplication (existing) and EmailApplication (new) will now set
the log tag to "Gmail" and "Email", respectively. Up until that code
is run, it will be "UnifiedEmail".

"setprop log.tag.Gmail VERBOSE" (or .Email) will trigger all logs to
be printed as long as they go through LogUtils, regardless of what tag
is used by that individual log. This lets us still turn on logging
everywhere in one command, but also lets us use more descriptive tags
(like the class name).

And since we no longer have three com.android.mail.utils.LogTag
classes, builds will be much easier.

Also, we now use LogUtils everywhere.

Change-Id: I55f1c7a66ce50ead54877a13e40256422a56dc39
ndroid/email/EmailApplication.java
ndroid/email/EmailConnectivityManager.java
ndroid/email/LegacyConversions.java
ndroid/email/Preferences.java
ndroid/email/SecurityPolicy.java
ndroid/email/StopWatch.java
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupActivity.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/activity/setup/MailboxSettings.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
ndroid/email/mail/store/imap/ImapUtility.java
ndroid/email/mail/transport/DiscourseLogger.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
ndroid/email/provider/Utilities.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/ImapTempFileLiteral.java
ndroid/email/service/MailService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/email2/ui/MailActivityEmail.java
ndroid/mail/utils/LogTag.java
6be411edd0ef5a1fb357d90c7fee22de83632be5 05-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Refactoring to support eml viewer in UnifiedEmail.

Moved two files out of Email into UnifiedEmail and
removed their dependencies on EmailContent. As a result,
those classes now return the data directly via a data only
class.

Change-Id: Iaf0618dd6879c9dc2a41943d3d15428904b65768
ndroid/email/provider/Utilities.java
9d5ed9e7a8d87408eb08f3124834e69ae3d9448c 30-May-2013 Paul Westbrook <pwestbro@google.com> Added logging, and switch to AsyncTask

Bug: 9111546

Change-Id: I287b07346bb1729c7a1afadbc0c94a0d37df92f8
ndroid/email/provider/EmailProvider.java
bc7cd75e9a8652bfa873007bcd12db2a140c7d73 30-May-2013 Andrew Sapperstein <asapperstein@google.com> Prevent duplicate inboxes after upgrade.

Previously, we were not properly handling the
case-insensitive INBOX mailbox type. We are now
upgrading properly. Fixes b/8701883.

Change-Id: I61be5159e23dc3e9578e577e33bc00a63f56b525
ndroid/email/mail/store/ImapStore.java
ddca2a0dcbcd27d2d17b5d5273eee2004fbcdf7c 28-May-2013 Scott Kennedy <skennedy@google.com> Show unread count when virtual folder is selected

We were not populating the unread count for virtual folders in one of
the two code paths, which resulted in the count disappearing from
the folder list whenever that folder was selected.

By moving the count code into getVirtualMailboxRow(), it will always
be called, so the count will always show up.

Change-Id: Ibb947ec6ed761babbcf162dbab38f44a6150d5e3
ndroid/email/provider/EmailProvider.java
fb6a74b5e0b1e4c0ae9d98e8f6cb70c805f8435e 24-May-2013 Yu Ping Hu <yph@google.com> Merge "Handle redirection during validation." into jb-ub-mail-ur10
c28347552e543b2fc04c922336ddca75221a1eef 24-May-2013 Yu Ping Hu <yph@google.com> Handle redirection during validation.

This allows the validator to tell the app that
it should use a different host.

Change-Id: Ie42c32aa7aea83e4d95d2b82b88225036b2407a9
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
e43224f7ae10dcaf9b572bc0e6186beacb921f77 23-May-2013 Andrew Sapperstein <asapperstein@google.com> Merge "Return raw folder in respond()." into jb-ub-mail-ur10
f3618c23208c7db065847aa3d529b5aad87062c0 23-May-2013 Andrew Sapperstein <asapperstein@google.com> Return raw folder in respond().

To get the name of the folder, we need
the conversation cursor's respond method
to return a Folder object. Now it does.

Also refactored a getFolder method in
WidgetProvider to be in EmailProvider so
anyone can use it.

Change-Id: I55ee180955ff4f4be7012ed6b5dda596e8e9d236
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
7283aea81c519521a51b783b7dd26da498745daa 23-May-2013 Yu Ping Hu <yph@google.com> am 8b4f04a5: Merge "Auto-advance policy accept by triggering syncs." into jb-ub-mail-ur9

* commit '8b4f04a5ab48ab76a131137516edb8abab63b6d2':
Auto-advance policy accept by triggering syncs.
bd1e0b79e470afcfb9e6281711ad1038050c38fb 23-May-2013 Yu Ping Hu <yph@google.com> Auto-advance policy accept by triggering syncs.

Exchange goes through multiple steps to set up accounts.
Each step requires a sync request to occur, so this change
requests syncs as necessary.

Bug: 9074056

Change-Id: I0f35a06409c6a77c82d004958ecc323cf8030ab4
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
d8302b01faa8fc7f175c93e90458aa84e8a663c7 23-May-2013 Scott Kennedy <skennedy@google.com> Ensure notifications get cancelled when necessary

There were a few places calling the old notification code to cancel
notifications. These calls were completely unnecessary.

Also, when an account is removed, we now clear all notifications that
may exist for that account.

Bug: 7935576
Change-Id: I58f7e194c3f9a928e932b3b1b87475e7d3653b6a
ndroid/email/NotificationController.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/provider/EmailProvider.java
29dc837d80e3d9faa03f52147285a58e6fd835e8 21-May-2013 Mark Wei <markwei@google.com> Fix flashing conversation list reloads.

The MergeCursor was not setting the notification uri and observers correctly.

Bug: 9051928
Change-Id: I920cd836aeb6fe550bf05a7e21bc4378ef9772a3
ndroid/email/provider/EmailProvider.java
0d5e21d0fcd337cecce929a3b1bdb0b8b5871b2c 18-May-2013 Yu Ping Hu <yph@google.com> Read protocol version from validation bundle.

Exchange used to just re-check version on first sync.
Version is known during validation so might as well use it.

Change-Id: I004fe671a1ad30a7cfe0a0659b74b20ee2136771
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
eb232290309aa3247d6c9b566e8490065a28f763 17-May-2013 Yu Ping Hu <yph@google.com> Always request a folder refresh for new accounts.

Change-Id: I396293f39b7f24ebf67e7619ce19765e1229f56b
ndroid/email/activity/setup/AccountSetupOptions.java
53836e572eb4b402140a02da949f3e3d0ca146ed 17-May-2013 Andrew Sapperstein <asapperstein@google.com> Enable "move to" from trash.

Fixes b/8986915. Forgot to set a flag in the
FolderCapabilities.

Change-Id: I202e46d89fe5705e3ddd05b1fbd0c8cd9f8fae0d
ndroid/email/provider/EmailProvider.java
5f1dbb7e66da7c4abca2cc52b84744b4bc8055ff 16-May-2013 Andrew Sapperstein <asapperstein@google.com> Merge "Using proper Unread icon for unread "folder"." into jb-ub-mail-ur9
7e753119260e53628f279176b0a41f5ef5713ce8 16-May-2013 Andrew Sapperstein <asapperstein@google.com> Using proper Unread icon for unread "folder".

Fixes b/8967972.

Change-Id: I1089fdeac5803fd6f9bed19d1c22d0629814ba87
ndroid/email/provider/EmailProvider.java
67b38031abbbf35b10854d3c8d3b4adf7cb08aaa 16-May-2013 Yu Ping Hu <yph@google.com> Merge "Changes to support cleaving sync out of ExchangeService." into jb-ub-mail-ur9
7c3f85885c767b58eaa4dbbc8e8339bd567b73eb 09-May-2013 Yu Ping Hu <yph@google.com> Changes to support cleaving sync out of ExchangeService.

Change-Id: Idbfff4ddc8fca4829228d04816d40a4ab9639382
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/EmailProvider.java
fff905416f2f786f0483dc627af04524d81a76ab 15-May-2013 Andrew Sapperstein <asapperstein@google.com> Show "no messages" when list is empty.

Fixes b/8547230.

Change-Id: I7d9d00c9448f1222d38a1a6406709818b2523ceb
ndroid/email/provider/EmailProvider.java
b8d7d8d31de7efa7959a1169d720c30011575749 14-May-2013 Andrew Sapperstein <asapperstein@google.com> Fixed label icons when selected.

Fixes b/8599310. Using selector xml drawables
to properly get the right assets for the folder labels.
Also did some renaming/moving cleanup.

Change-Id: I3b5ddc9fb9da239131405880e637fa1df2c99ea6
ndroid/email/provider/EmailProvider.java
f55972ecd838f7362837070248ad5ca5abaa2af8 08-May-2013 Yu Ping Hu <yph@google.com> Add more sync status callbacks.

Change-Id: I77e8b122474d5240ad5aaed7556471263a05e6de
ndroid/email/provider/EmailProvider.java
968a2fe7805756ef6aa1f10f71306e865b9f7f09 07-May-2013 Paul Westbrook <pwestbro@google.com> Return full email address in conversation

Bug: 8850702
Bug: 8737081
Change-Id: I7d267e0cca243baf174c6cb61c887538e5e3bb54
ndroid/email/provider/EmailProvider.java
bed61a78a08f0a82c2aae12787ad64b4cd566c08 07-May-2013 Scott Kennedy <skennedy@google.com> Support the "Reply all" setting

Bug: 8571631
Change-Id: I52c976f7a8247d53908d90569a24d0573dd4508f
ndroid/email/provider/EmailProvider.java
4994e7ca505717800d6e0bc6f7a293d4b5291452 04-May-2013 Scott Kennedy <skennedy@google.com> Reply-all migration

Bug: 8546815
Change-Id: I6b41aee84f0e1dfdbed4b7b2e843b6268659ee20
ndroid/email/Preferences.java
ndroid/mail/preferences/PreferenceMigrator.java
71737836e6be308f752cb95c955a03146b039a9c 03-May-2013 Yu Ping Hu <yph@google.com> Add call for sync status updates to UI.

Change-Id: Ib91284b423cf88e8feac3b40d13627d26ccc7de7
ndroid/email/provider/EmailProvider.java
1484c6663db7b194eea9341ec8ecab6b44985c7c 30-Apr-2013 Yu Ping Hu <yph@google.com> Code cleanup.

- Cleanup sync adapter to not have statics & locks.
- Remove some dead code.

Change-Id: Ia310d32b93706dc3742ccee74e5b751174280488
ndroid/email/service/PopImapSyncAdapterService.java
5b528172436c754b261a786b985124ed9a898269 26-Apr-2013 Yu Ping Hu <yph@google.com> Merge "Use system SyncManager for Exchange." into jb-ub-mail-ur9
6929654a0db0886821c7b161d7d0beb6ae5efb64 26-Apr-2013 Alice Yang <alice@google.com> Remove checkboxes from Email

Change-Id: Ie2338cddcf15a278622f72e4827e6b160e16912f
ndroid/email/Preferences.java
ndroid/email/provider/EmailProvider.java
81c1b3ee2f6e32200f1ff48e1b6466bac515ed38 26-Apr-2013 Alice Yang <alice@google.com> Sender images in email

This is the minimum change to not break the build in Email when CL
for removing checkboxes is submitted in MR2.
I'm still investigating why contact images aren't showing up in Email and
will follow up with a fix.

Change-Id: I814ed2b0b0a468ee465e57c47c6c7248f4afdbbc
ndroid/email/provider/EmailProvider.java
9e7f5a2a33a31ff392d3116f6432b2f93ffe8e71 25-Apr-2013 Yu Ping Hu <yph@google.com> Use system SyncManager for Exchange.

Change-Id: I77e4e75c94c532d22a28cf97e6f55f1259b8bdde
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/PopImapSyncAdapterService.java
c726d4fa6cd5239f9b902e954efaab7752d26471 25-Apr-2013 Scott Kennedy <skennedy@google.com> Add "Reply all" setting to tablets

This controls the notification action on tablets.

Change-Id: I0b8df2ded371820f0dada3f1b11cebad462962ed
ndroid/email/activity/setup/GeneralPreferences.java
156a9bde06ec72f497f50ad1c7258636067512a6 24-Apr-2013 Andrew Sapperstein <asapperstein@google.com> PreferenceMigrator force commits pref upgrades.

Now, when PreferenceMigrator.migrate is run,
we forcibly call commit after the VersionedPrefs
object is updated (whether MailPrefs, AccountPreferences
or FolderPreferences). This commit applies the change to
Email2. Should fix b/8640441 and b/8520847.

Change-Id: I9a014c1c4bd35aa2ea8e268fec9a050d47e4d732
ndroid/mail/preferences/PreferenceMigrator.java
643846abbd1ae60454fc8191992afffd08114e98 23-Apr-2013 Scott Kennedy <skennedy@google.com> Settings changes

Bug: 8685202
Change-Id: Ica781557b91e5ed43221f6e28b9d65cbb044ea55
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
ndroid/mail/preferences/PreferenceMigrator.java
625409b169ab0333db2eb2f50551814bf2940bd8 22-Apr-2013 Andrew Sapperstein <asapperstein@google.com> CL to support method signature change.

Helps fix b/7923968. This is just a one-line
change. The real change is in the UnifiedEmail code.

Change-Id: I60808c0265e911394cbffa92214d10626769ca9a
ndroid/email/NotificationController.java
e669f28b0866e66c629103698ad14b22a204442f 20-Apr-2013 Yu Ping Hu <yph@google.com> Fix periodic sync (for POP/IMAP).

Periodic sync management was wrong in at least two ways:

1) Periodic syncs were scheduled as a side effect of
performing a sync, so changing the sync interval setting
would not do what you expect.
2) Performing a manual mailbox sync would schedule a
periodic sync on that mailbox.

This change removes the side effect from sync, and instead
actually responds to updates to the sync interval by
removing the extra syncs and updating just the account sync.

Bug: 8666490
Change-Id: I3f4a3fb7044c408578f0dc75ccb6c5bb176bfc0b
ndroid/email/provider/EmailProvider.java
ndroid/email/service/PopImapSyncAdapterService.java
50d5152f54060fa6a491e8f10411d02f13a09b83 20-Apr-2013 Yu Ping Hu <yph@google.com> Merge "Code cleanup." into jb-ub-mail-ur9
0eb47994a328fe450c54e483b894138fd449d9c9 19-Apr-2013 Yu Ping Hu <yph@google.com> Code cleanup.

- Refactor EmailProvider.call
- Remove unused import

Change-Id: I9f0ae35256856a9cd6ea015348d49fcbb6fa8b0f
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/provider/EmailProvider.java
3a82ad59928864931b826c46413831d7431057f9 20-Apr-2013 Mark Wei <markwei@google.com> Fix migration from Email1 to Email2 when using combined inbox.

Bug: 8578254
Change-Id: I2afb7e145664c1e6d10c0cfbf654d835fec8c9f1
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
503cc0630d54de430a97f6013c6c7b7e851e343d 19-Apr-2013 Yu Ping Hu <yph@google.com> Stop using ContentCache and related caches.

Bug: 8655671
Change-Id: I349ce464b5d752b3ac687852dbce4f0b57e04c67
ndroid/email/provider/EmailProvider.java
9a2686afa2e02c62a8e5f9c42c82bd2da70b96af 15-Apr-2013 Yu Ping Hu <yph@google.com> Improve POP sync.

- Set socket timeout as soon as you open it. This was how
IMAP worked, so I just moved the call up one level. This
should help one of the sync forever scenarios.
- Simplify the SQL query for getting a Mailbox.
- Try to load messages that failed to load last time.
- Always close the connection to the remote folder.
- Don't try to be too clever in fetching the body.
This needs to be fixed later for attachements, but for
now seems to work better and will let me get more testing.

Change-Id: I91b6a6f2a2846b34b1a0c50eb4eb37fc947389ce
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/service/Pop3Service.java
e0d4cab353b84fd632d5609d4780f597c8d56092 15-Apr-2013 Scott Kennedy <skennedy@google.com> Populate the account object with the type

This is needed for prioritizing contact results

Bug: 8587925
Change-Id: I093f0914060a01f37b175ae5877b27e0e16e9eaf
ndroid/email/provider/EmailProvider.java
f9fd4b6bb4a275d12548c250176b9be918619c7d 13-Apr-2013 Yu Ping Hu <yph@google.com> Remove spammy log message.

We don't have special MIME types for all possible queries.
It's only an error if the matcher doesn't know about it at
all, which is handled by findMatch, so we just return null
here (same as with Gmail).

Change-Id: I7061e25b8fd4543c41f62188cb90712353a64779
ndroid/email/provider/EmailProvider.java
9b040bde34529e4e55c70774ecea87868c79f1e5 12-Apr-2013 Yu Ping Hu <yph@google.com> Base64 the folder persistent id.

Bug: 8596345
Change-Id: Ib7025fa54abb12f7c65628639819d06fb530c7ed
ndroid/email/provider/EmailProvider.java
22130ad565886c29666be55b5fdcbe0be9894b6e 12-Apr-2013 Yu Ping Hu <yph@google.com> Sync folders during account sync.

Previously, the folderlist itself would only sync when there
was no inbox, i.e. at account creation time. Now any sync
that's not a mailbox specific sync will do it.

Change-Id: If7c446cd2e193ed6e1a4abd3fdde0d5748371ba5
ndroid/email/service/PopImapSyncAdapterService.java
64cc777f8b3f01fad0b14ad4277d85b7dcfdcd73 12-Apr-2013 Yu Ping Hu <yph@google.com> Autosync stale mailboxes when switching to them.

"Stale" is currently defined as "it's been 5 minutes since
my last sync".

Also includes a small refactor so that uiloadmore doesn't
load the mailbox from DB twice.

Bug: 7100372
Change-Id: Ib31aa211fe2ab790044beb7bc7d2fdcccf595171
ndroid/email/provider/EmailProvider.java
4b0e25898e1663f67ecdc38d1e8d9a24bb2d4e89 12-Apr-2013 Yu Ping Hu <yph@google.com> Fix checkbox option fetch for combined view.

Change-Id: Ie0679ce00ee0558cccc8e10c9346dd730ce08a33
ndroid/email/provider/EmailProvider.java
54cf4b9d8c04e7531e8474ea01c34419b420fbc4 11-Apr-2013 Alice Yang <alice@google.com> Merge "Checkbox vs. sender image setting" into jb-ub-mail-ur9
9f1cff0659e4b9a179690d9c31f7a9bf56aad228 11-Apr-2013 Alice Yang <alice@google.com> Checkbox vs. sender image setting

Replace the current "Hide checkbox" setting with a tri-state setting with
choice of:
- Show checkboxes
- Show sender image
- Show neither

Bug: 8512959

Change-Id: Ifa233b6d65f8c37388edeed71dbfbfdf1295d6fc
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
17d5bbf768c27ac7782b155e2ab25bcd480f5dcf 05-Apr-2013 Yu Ping Hu <yph@google.com> Improve mailbox sync and load more.

- Update syncTime for IMAP and POP whenever we sync.
- Change load more to simply include the delta in the RPC
rather than using the visibleLimit column.
- Add a query to get the message count for a Mailbox.
- Refactor code for updating totalCount and determining
the new message count when syncing.
- Remove dead code from Mailbox.
- Remove uses of visibleLimit from code.

Note that visibleLimit and messageCount in Mailbox table are
no longer useful and will be removed in a later change.

Bug: 8579767
Bug: 8523146
Change-Id: Ieb67e3b6f1c82c3b21b972c5a1e557cd75dc21db
ndroid/email/mail/Store.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/email2/ui/MailActivityEmail.java
0c06a7cf995c0d3e5dcccae97349891a46c3320f 10-Apr-2013 Paul Westbrook <pwestbro@google.com> Fixed mis-located cleanup code

Bug: 8565783
Change-Id: Iab06411cc85cd4958db574ec52eeebb7457c980f
ndroid/email/provider/DBHelper.java
6b88a2471f91e9d4b7fbfff6b8ade7820f64d46d 10-Apr-2013 Vikram Aggarwal <viki@google.com> Allow queries in folder URIs

As a result of a previous change, we are appending application version
to the end of the folder name. This breaks the EmailProvider's
expectation about folder URIs. So instead of using just
uifolder/<number>, allow for uifolder/<number>?<appversion query>

getPathSegments().get(i) will still return the path segment without
the query, so the folder ID gets resolved correctly.

The previous change:
https://googleplex-android-review.googlesource.com/#/c/281416/

Bug: 8435074 Not able to access Exchange inbox and combined inbox

Change-Id: I7b9ffad9b5510d1a08a29e2a21aacb091d4330a6
ndroid/email/provider/EmailProvider.java
7b423bf136da2dbc081a2823a6d2c677f66a2b9a 06-Apr-2013 Paul Westbrook <pwestbro@google.com> Remove waitForDebugger call

Bug: 8558839
Change-Id: Ie9f351b119620016e9a46c5bf389fdeb75c77382
ndroid/mail/preferences/PreferenceMigrator.java
293047605189eac463b03710ff2a7c1055a6a6dd 06-Apr-2013 Yu Ping Hu <yph@google.com> Reorder the folders in combined view.

Inbox should go to top.

Change-Id: I90c55952aaa3955adfd6d08a12a568bfb192c730
ndroid/email/provider/EmailProvider.java
fcddd014dafd33b2db74e51041e3fd0aef617fd6 06-Apr-2013 Paul Westbrook <pwestbro@google.com> Merge "email: "Exchange Services has stopped" - Rain of Exchange Javacrashes" into jb-ub-mail-ur9
1389f0ed03696a4be4891ce1247867a5dec6b08c 06-Apr-2013 Yu Ping Hu <yph@google.com> Merge "Add virtual mailbox for all unread messages." into jb-ub-mail-ur9
689efab2b1beed7185ba75db6f0ef389adc222ae 11-Oct-2012 Emmanuel Berthier <emmanuel.berthier@intel.com> email: "Exchange Services has stopped" - Rain of Exchange Javacrashes

Cleanup some nasty records containing NULL fields.

Change-Id: Iec5e7e1bebc4beee8fa010c3f9c9ee723fd2cd83
Author: Emmanuel Berthier <emmanuel.berthier@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 60461

cherry-pick of https://android-review.googlesource.com/#/c/47571/1
ndroid/email/provider/DBHelper.java
c065e72819fad62c083fd97e8d300a6b8e78a7ae 05-Apr-2013 Yu Ping Hu <yph@google.com> Add virtual mailbox for all unread messages.

Also restores the trash icon. I'm not using the "correct"
icon -- it's the menu icon, not a folder icon -- but it
looks correct. Also, the "unread messages" icon is likewise
the menu icon for mark unread.

Bug: 8527132
Bug: 8444885
Change-Id: I7d3bc286f80f130e6f08ff1340a013d81700406e
ndroid/email/provider/EmailProvider.java
d402c890dc00e2a0b2cf215d8479e59fc3a252f3 05-Apr-2013 Paul Westbrook <pwestbro@google.com> Fixed make POP and Imap more locale safe

Cherry-picks from:
https://android-review.googlesource.com/#/c/42334/
https://android-review.googlesource.com/#/c/42332/

Change-Id: I557c3d8c725cf6dc4f13f227dcec63864ab5db67
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/Pop3Store.java
9fd03edb83326c23fc4dd3944c140de913a4fe76 05-Apr-2013 Paul Westbrook <pwestbro@google.com> Merge "avoid cursor leak in email provider" into jb-ub-mail-ur9
89c74e89e52e3d3223ec9c2f108a9b0735d99d33 06-Mar-2013 Yoohyun.choi <yoohyun.choi@lge.com> avoid cursor leak in email provider

When cursor is done, the cursor must be closed to avoid cursor leak.

cherry-pick of https://android-review.googlesource.com/#/c/52910/
Change-Id: Iaaffed2c4e90dc4b17ae55fcedb242bf890b3dd5
ndroid/email/provider/DBHelper.java
4fd97a305065dfed11adf50612e55b9647ceb236 09-Feb-2012 Jack Bates <jack@nottheoilrig.com> Fix SMTP RFC violation for better interoperability

Space after colon violates RFC 5321 (and RFC 821): "Since it has been a common
source of errors, it is worth noting that spaces are not permitted on either
side of the colon following FROM in the MAIL command or TO in the RCPT command"

Change-Id: Ie5330bf2bd01cd8f734134dadd742cf16df70d7a
Signed-off-by: Jack Bates <jack@nottheoilrig.com>

cherry-pick of https://android-review.googlesource.com/#/c/32640/
ndroid/email/mail/transport/SmtpSender.java
391a7fc0e99457308b6f6bd9444c8aba94b0b7b1 04-Apr-2013 Paul Westbrook <pwestbro@google.com> Support legacy shortcuts

We need to support shortcuts that were created with previous versions
of Email

Bug: 8530220
Change-Id: I9e2a44b561f5617ffa954af37a9e78a95400f7dc
ndroid/email/provider/EmailProvider.java
ndroid/email2/ui/MailActivityEmail.java
c5c9c1c69e206b7632848a2535363693263f7fc9 03-Apr-2013 Yu Ping Hu <yph@google.com> Restore functionality for uploading new messages.

The code for syncing new messages from client to server
somehow never got moved from Email1 to Email2.

This change also includes minor cleanup on system mailbox
flags.

Bug: 8531552
Change-Id: I1f9396635ba14cb6e641d2bc1b506c6d702f6b2e
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/ImapService.java
d1a87bc02d65dde9e635848531e09aadc79ff538 02-Apr-2013 Paul Westbrook <pwestbro@google.com> Fix IMAP sync with Arabic language

Email shouldn't rely on the the default locale.
See: http://developer.android.com/reference/java/util/Locale.html#default_locale

Bug: 7138507
Change-Id: Ia2c6eccc6dee011f4e7e7c663a0328d4fd76131b
ndroid/email/mail/store/ImapFolder.java
ndroid/email/service/ImapService.java
ndroid/email/service/PopImapSyncAdapterService.java
de4c230f008ca0615b8035a560cd512624ac2cdb 02-Apr-2013 Yu Ping Hu <yph@google.com> Exclude not fully loaded messages from uimessages queries.

Bug: 8370633
Change-Id: I5643454333b490bb1a988efb7b59e20b18fa67f4
ndroid/email/provider/EmailProvider.java
46d6a4a7cb98430088595a9e305060ac4273ab8f 02-Apr-2013 Yu Ping Hu <yph@google.com> When loading messages, use left join for Message and Body.

Existing inner join means that a Message without an entry
in Body table cannot display correctly, even though this is
a potentially legitimate state.

However, because the MessageCursor for Email doesn't read
flagLoaded at all, this change actually causes another bug:
if you go to a partially loaded message, it will show as
blank with no load indicator. Fixing b/8370633 will mask
this by not letting you get in a situation where partially
loaded messages are shown.

Bug: 8512030
Change-Id: Ie2e365e7e5df3959115ed299d1a7f03aa1d7af79
ndroid/email/provider/EmailProvider.java
3bef153c9cf6b3ab5009af8677c8460bd52d9fc5 02-Apr-2013 Yu Ping Hu <yph@google.com> Merge "Improve error logging for mailboxNotification." into jb-ub-mail-ur9
11472650d1fce7548939d311c4434128930c18ba 02-Apr-2013 Paul Westbrook <pwestbro@google.com> Fix apk attachments

Bug: 7585865
Change-Id: I20191523377d99472e333dece4d727415f97c67a
ndroid/email/provider/EmailProvider.java
3767da5d26c7138a6c3a293fd4b2b685f71f016f 31-Mar-2013 Paul Westbrook <pwestbro@google.com> Add capabilities for search folder

Bug: 6693452
Change-Id: Ib55fca4f883a699eabdaabf35568bffa055d556f
ndroid/email/provider/EmailProvider.java
7cc82371ecb9c117f74152a7f317456c84c28407 29-Mar-2013 Yu Ping Hu <yph@google.com> Improve error logging for mailboxNotification.

Change-Id: I5b16ac46ce8cdd6e8f791c9cea7d7ead7e053bdc
ndroid/email/NotificationController.java
c534638b7aeb1f4bd65852bbcff6b2c78f21d566 28-Mar-2013 Yu Ping Hu <yph@google.com> Disable notification prefs until folder prefs are loaded.

Bug: 8485354
Change-Id: Id56c2634a16274e9340ad6ecb96661ee8a489d49
ndroid/email/activity/setup/AccountSettingsFragment.java
1dd937bf18fbd9c4967fbfdb5179508dd0a823fd 26-Mar-2013 Yu Ping Hu <yph@google.com> Prevent NPE when getting a bad mailbox id.

The mailboxNotification query apparently can return bogus
mailbox ids. This underlying bug still needs fixing.

Bug: 8482721
Change-Id: Icfbd0d986ab32fe878a0dbe09a3276322c75cafe
ndroid/email/NotificationController.java
28a344042d0f8353d2e5c15fe3951c1e0520f1b7 23-Mar-2013 Paul Westbrook <pwestbro@google.com> Prevent NPE

Also add additional logging for this case

Bug: 8372753
Change-Id: I87aa9ee46f0ca866745d62d27f4b40913f2e9b97
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
861c5c8c9e054a4562af44805c57f39e7121ca43 22-Mar-2013 Yu Ping Hu <yph@google.com> Guard against potential NPE.

Change-Id: I379da1f478b1b1fd1e488dbeff249cc10e3d48d5
ndroid/email/service/EmailServiceStub.java
5a3aebbd2dd8cdd4d7c1a76ce3085cd6a314c0d0 22-Mar-2013 Paul Westbrook <pwestbro@google.com> Fix problem with sending attachments in Exchange

The problem was that when the attachment was attempted to be opened
from the Exchange process, it didn't have access to the cached file.
Instead, use a content provider uri to reference the cached file.

Bug: 8400456

Change-Id: I80abd66642e938cf09f73bf0e9bd049aa8d7ba1d
ndroid/email/provider/EmailProvider.java
68a8e21248313582f2dbf820c275f6807b4fa715 21-Mar-2013 Yu Ping Hu <yph@google.com> Merge "Always create system folders during sync." into jb-ub-mail-ur9
8a11cb8fd1b52cbcc413be04970e38e738617b54 21-Mar-2013 Yu Ping Hu <yph@google.com> Merge "Always show the starred folder." into jb-ub-mail-ur9
f16a7612c0bc4b4f03c9f8ba982c7723a5f33e17 21-Mar-2013 Scott Kennedy <skennedy@google.com> Exclude all inbox labels when we're viewing an inbox

Bug: 8426563
Change-Id: I7707c9ebf9ebcb73be73ef82f5f2212514671bfe
ndroid/email/provider/FolderPickerSelectorAdapter.java
ndroid/email/provider/WidgetProvider.java
a5a963321d2e281d1c05c7a706989dc434258790 20-Mar-2013 Yu Ping Hu <yph@google.com> Always show the starred folder.

Bug: 8383232
Change-Id: I8a5fa0dbdd9f4f2000c5b7d3347eb4946af0ae80
ndroid/email/provider/EmailProvider.java
2192bf01e0df1285718b53f6b77d635f4e8c65ca 20-Mar-2013 Yu Ping Hu <yph@google.com> Always create system folders during sync.

Change-Id: I8ff6eb4f65d4207d7a2768c5fd837fad8cd47269
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/EmailServiceStub.java
9ae81e2af07219bfad26c882516343e83c16d926 15-Mar-2013 Yu Ping Hu <yph@google.com> Move system folder string resources to emailcommon.

This permits us to move shared code for looking up system
folder names to emailcommon, which is also in this change.

Also renames emailcommon2 to emailcommon.

This is part of a multi-project submit with
I4a071a07c3e33aaa4ea404eb66a8db1eabc9ef0e and
I5746c0353783f9b29d52d6540472588c6542a6a2.

Bug: 8383232

Change-Id: I6c6eec4f1bcf2abd54c1ed05da1add8d894ee403
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailProvider.java
91107a4c56176554fe66f8592ea8251117462eb8 18-Mar-2013 Yu Ping Hu <yph@google.com> Remove useless UI notifications in uiUndo.

The uris supplied for these are bogus (lack IDs), and at any
rate the actual undo itself should notify the UI. (That's
currently broken, but not for want of trying, but the point
is that needs to get fixed anyway.)

Bug: 8373349
Change-Id: Id0f4e9fa45f2ece42d07f1f350d841f00270a8d9
ndroid/email/provider/EmailProvider.java
d0e7d88f43bcd7d612a880f3525ef40dbe8f461a 16-Mar-2013 Yu Ping Hu <yph@google.com> Fix undo to use the correct URI.

Bug: 8373349
Change-Id: Ia23b60a1f82be16cb48afe5cf239e1c588b192a1
ndroid/email/provider/EmailProvider.java
3e88d65aa89ef4e05f33de69f46765930aaab26b 15-Mar-2013 Yu Ping Hu <yph@google.com> Fix inboxes in POP for non-english.

Same as I27b422b4b9a3568c899beda41c96e61eb77c4ad3
but for POP.

Bug: 8393126
Change-Id: Ifa7ef3aa4080ec4c39309f988f041344fc4e8b54
ndroid/email/mail/store/Pop3Store.java
b3b47ef971ff58c146d07dd3a68437ea4b9e7166 15-Mar-2013 Yu Ping Hu <yph@google.com> Merge ""Fix" Inboxes in non-English languages for IMAP." into jb-ub-mail-ur9
5187e702d6a363af625bdcc9db1d3131c914927a 15-Mar-2013 Yu Ping Hu <yph@google.com> "Fix" Inboxes in non-English languages for IMAP.

Without this change, languages where the inbox is not named
"Inbox" will never initialize IMAP accounts correctly.

This change "works" because
LegacyConversions.inferMailboxTypeFromName matches against
server name. Obviously this code's bad and I should feel
bad, but for now this change at least makes the app usable
in other languages and leaves the code in the simplest state
for fixing later.

Bug: 8393126
Change-Id: I27b422b4b9a3568c899beda41c96e61eb77c4ad3
ndroid/email/mail/store/ImapStore.java
5ed8b266a480ea413264abdb5042c58b29175df8 14-Mar-2013 Paul Westbrook <pwestbro@google.com> Fix some problems with move message

Make Email respect the accepts moved mail flag

Don't throw an exception when receiving on the
folders_updated column

Bug: 8370675
Change-Id: I92c630577e6f572361bbaf68d8e5d0bfb6204951
ndroid/email/provider/EmailProvider.java
8e2c4056caffb9695fa7fdf3a90c1c4f056adb97 14-Mar-2013 Yu Ping Hu <yph@google.com> Clean up dead code. Should be a no-op for functionality.

Also includes a fix for saving a draft that's already
been saved (used to create a new one).

The following were unused:
- accountIdAddToField
- mailboxIdAddToField
- uisendmail
- uisavedraft
- uiupdatedraft
- uisenddraft

Deleting those also allows us to remove the translation
from the Bundle used by calls to the ContentValues used by
update (since the update paths are now gone).

Change-Id: I87f2875e3272177a128a8ff65541e51b1f2d05fc
ndroid/email/provider/EmailProvider.java
a6cd7cbd637fd39f190889c28378c81e93489796 14-Mar-2013 Yu Ping Hu <yph@google.com> Merge "Fix IMAP send by ensuring system mailboxes exist." into jb-ub-mail-ur9
f7055e261821af30874f6597757468eba6830539 14-Mar-2013 Yu Ping Hu <yph@google.com> Fix IMAP send by ensuring system mailboxes exist.

This is a quick fix to get it working ASAP, I will improve
how system folders are created when handling b/8383232.

Bug: 8307247
Change-Id: I6ea24ea756911c60d4eca69ce65d27dff33850c8
ndroid/email/provider/EmailProvider.java
700fb3c23d56a14eef9c330c50278f02935f5a04 13-Mar-2013 Alice Yang <alice@google.com> Merge "Revert "Change "hide checkboxes" to "show checkboxes""" into jb-ub-mail-ur9
a833b36ec24a1ab4188dfcea4ff70ecce3f41c43 13-Mar-2013 Alice Yang <alice@google.com> Revert "Change "hide checkboxes" to "show checkboxes""

This reverts commit 5742d449178fd51cfea303280e6c7b327f087f9a.

Bug 8370186

Change-Id: Ie15b7c30aaba8df8678d15e19dcd38fddea6de13
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
88c80b775bc8232955dcd0cd07e18aa6f9cbcd5c 13-Mar-2013 Paul Westbrook <pwestbro@google.com> Load replyall setting

Bug: 8374501
Change-Id: Ibf01a9c27ad05e3d6c1b172a255299d8af3b69ea
ndroid/email/activity/setup/GeneralPreferences.java
fdc5e52ef99e23260cd136d946fa78cdeab6da21 12-Mar-2013 Paul Westbrook <pwestbro@google.com> Merge "Simplification of app initialization" into jb-ub-mail-ur9
9d91dd8023b31f37c0aade7bf6d9910908204a94 12-Mar-2013 Yu Ping Hu <yph@google.com> Specify correct sync extras for user-requested syncs.

BUG: 8364227
Change-Id: Icfc97c92e5ecc9c2abd83b73cf67a5e10408cede
ndroid/email/service/EmailServiceStub.java
06c358dfee2f242543682be15833f8c4c46806fd 12-Mar-2013 Paul Westbrook <pwestbro@google.com> Simplification of app initialization

Specify a account query uri in a resource, and remove the old receiver

Change-Id: Ia04dccfc95e0bb1854bba2e6f51e2de1546d72ce
ndroid/mail/providers/protos/boot/AccountReceiver.java
5a3d863a43405132d562650603adc0a7bfb87fbc 09-Mar-2013 Paul Westbrook <pwestbro@google.com> Add support for feedback

Change-Id: I6de8c0117f79c0be05d3db2fc108f8bf61415783
ndroid/email/provider/EmailProvider.java
95bb350f38d08beeabee68323b8514f3cbfd5db5 08-Mar-2013 Paul Westbrook <pwestbro@google.com> Fix NPE when adding account with security policy

When adding an Exchange account with a security policy, Email
generates a notification to let the user enable the policy. The
code that generates the notification attemptes to load the folder
as part of the base notification. Before the account policy has been
configured, it isn't possible to load the folder. We need to handle
a null folder when generating the notification

Also, imporoved the logging when an exception is thrown from the
PolicyService

Bug: 8341882
Change-Id: I33ff57adc3c130e8318910e352146b8ea56f9a2c
ndroid/email/NotificationController.java
ndroid/email/service/PolicyService.java
1cea05ac37523dff68f63dc66799b97522f734d4 08-Mar-2013 Scott Kennedy <skennedy@google.com> Merge "Make widgets work again" into jb-ub-mail-ur9
6967b6b6bcf269222cb995c5b9dad0ded6b79e08 07-Mar-2013 Yu Ping Hu <yph@google.com> Merge "When folder is changed, also update conversation list." into jb-ub-mail-ur9
dfd2c87740cb3f4fe3d3b882116a6fe00cdcb2bd 07-Mar-2013 Scott Kennedy <skennedy@google.com> Make widgets work again

We can't send Folder parcelables to RemoteViews, so let's just send
what we need: two URIs and a String.

Bug: 8330949
Change-Id: Ic3f272e1bae4530cdc7776fd88eeb7bcb1a7dae3
ndroid/email/provider/WidgetProvider.java
fc0dae9cd74d6edb22464f3a0721a82f0b5f9893 06-Mar-2013 Yu Ping Hu <yph@google.com> When folder is changed, also update conversation list.

Also add the folder's total count to the extras for the
conversation list cursor.

BUG: 7480726
Change-Id: I3215fed561deb8430fd6d6c680bdb44ca87cc162
ndroid/email/provider/EmailProvider.java
32881e8dd375f16e6059452166503f7136f14ae5 05-Mar-2013 Paul Westbrook <pwestbro@google.com> Fix NPE after migrating older account

Change-Id: Ifeb3b1853ce3efd725227941103d29a00bc14fc2
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/provider/DBHelper.java
ndroid/email/service/EmailServiceUtils.java
9a95253846ccc7a94dd7d4c618ec2d808e2a4000 23-Feb-2013 Paul Westbrook <pwestbro@google.com> Cache attachments on send

Cache attachments in a email directory when sending to allow sending
to succeed when the content provider has a permission

Bug: 7381557
Change-Id: Icf9faead2048de237228625f998b42feade48978
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
3e2fdd33e32599c8b7e817c2ca00d50ee3bba7bf 26-Feb-2013 Paul Westbrook <pwestbro@google.com> Fix account creation

Notifications were not being sent on account additions,
so the UI would reprompt to add an account, after an account
was added. Now, the appropriate notifications are sent.

Also, fixed some cases where try/finally blocks were not used
to ensure that cursors were being closed.

Change-Id: If65934a34d995471fd5102fbe7e8cacbed5aae44
ndroid/email/provider/EmailProvider.java
82fef2b3314e5068a3521aeea8f28d6345018df9 23-Feb-2013 Paul Westbrook <pwestbro@google.com> Remove usage of deprecated field

Change-Id: I6c2dc897e0389023f16c0d4887ee9489ebba4cd8
ndroid/email/provider/EmailProvider.java
ffa3370b39a39e597e02d15915b8b6955f19252f 23-Feb-2013 Mark Wei <markwei@google.com> am ea2edb63: Set MIME type correctly on drafts when content provider does not provide it.

* commit 'ea2edb637036a7368b6ef82a0aafdb1a790e26e9':
Set MIME type correctly on drafts when content provider does not provide it.
7401a826341d0e210f8d65642124198fc58c2893 22-Feb-2013 Paul Westbrook <pwestbro@google.com> Fix suggestions from last CL

Change-Id: I838a408d28b5427f591e8e453008d9945144ff21
ndroid/email/provider/EmailProvider.java
e04b736866f58c835aac1a6cc3446bdf3aeb0e51 22-Feb-2013 Paul Westbrook <pwestbro@google.com> Remove deprecated fields/members

Change-Id: I74d5f2eb4ed778f0590a3c935e6b79c335a3bdd7
ndroid/email/provider/EmailProvider.java
779fe0200300978e28a0b8a904817bdc5e587cad 22-Feb-2013 Paul Westbrook <pwestbro@google.com> First part of switching Email to use ContentResolver#call

This CL includes the call() support. Subsequent CLs will remove the
deprecated UI provider uris, will add attachment caching to Email

Bug: 7381557
Change-Id: Iff59c7c0503c6e9ccda1d15954f72ffa78331b4e
ndroid/email/provider/EmailProvider.java
ea2edb637036a7368b6ef82a0aafdb1a790e26e9 22-Feb-2013 Mark Wei <markwei@google.com> Set MIME type correctly on drafts when content provider does not provide it.

Bug: 8235172
Change-Id: Ia8bc575fb902de882dfbba3bfc7cd3acb625ce2c
ndroid/email/provider/EmailProvider.java
512433135c184d6c19c8b58dac7b33315ac511dd 16-Feb-2013 Yu Ping Hu <yph@google.com> Merge "Fix how visibleLimit for a Mailbox is set." into jb-ub-mail-ur9
66eef4565dd0a8b99e927bed7b64c472d24c276d 15-Feb-2013 Yu Ping Hu <yph@google.com> Fix how visibleLimit for a Mailbox is set.

- Make sure visibleLimit stays <= totalCount.
- Don't reset it to 0 every time user enters a folder.

Also sets Folder.totalCount = Mailbox.folderCount
(rather than Mailbox.messageCount).

BUG: 7480726
Change-Id: Iae084d9445f483dca2b1da052ffd4dd7d091c6f6
ndroid/email/provider/EmailProvider.java
ndroid/email/service/ImapService.java
2f9c66d08b13c1ed4eb7d2f70baa98116ac5fcfb 14-Feb-2013 Scott Kennedy <skennedy@google.com> Use swipe preference for archive/delete action

Since some people prefer delete over archive, we will use their
conversation list swipe preference to determine whether to show
a "Delete" action or an "Archive"/"Remove label" action. "Delete"
will be shown if they have selected "Always delete"

UR9 version of I4eb0d408474a9f613cc4267c3851cc7277a22ebd

Change-Id: Ia2f1382b88c1ee6f64e864cb8b780d02821b673d
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
ndroid/mail/preferences/PreferenceMigrator.java
132a3f09777953bffb8ab25c501ce3324b2f3ac6 11-Feb-2013 Vikram Aggarwal <viki@google.com> Merge "Add user assignable category for mail foldders if it accepts moved messages" into jb-ub-mail-ur9
5ba32cc2b93f4b9828ea3c2584ae7a0c2b52ea14 08-Feb-2013 Rohan Shah <shahrk@google.com> Add user assignable category for mail foldders if it accepts moved messages

Email requires a user assignable category in the case
the user is moving labels/folders from a category the
user should not be allowed to view (i.e. sys labels).

Change added flag under function where if it allows
moved messages, it will allow the user to assign
there as well.

Bug: 8157593

Change-Id: Icc8a5d4587ef9180d32207613da4f31ddc8854f1
ndroid/email/provider/EmailProvider.java
b34608228f0b55e401415b67b8150ca9e00cee7d 11-Dec-2012 Scott Kennedy <skennedy@google.com> Move notifications to UnifiedEmail

This involves redoing the persistence model, to split general,
account, and folder settings into separate SharedPreference stores.

It also requires some preferences to be moved into UnifiedEmail.

Depends on Ibe2e3f93ec164370535ffc5f5b2409544cc8d36d (UnifiedEmail)

Change-Id: Ie6ec389b5b5d2e7ab1b299d0877811ae716526e2
ndroid/email/EmailIntentService.java
ndroid/email/NotificationController.java
ndroid/email/Preferences.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email2/ui/MailActivityEmail.java
ndroid/mail/preferences/PreferenceMigrator.java
a5abf7b338036eddb3baa627e9384a6962297597 07-Feb-2013 Scott Kennedy <skennedy@google.com> am 7fdde9bb: Cache column name/indexes so we can use getColumnIndex()

# Via Scott Kennedy
* commit '7fdde9bb4a24e931618a7a64227e2194c89034da':
Cache column name/indexes so we can use getColumnIndex()
7fdde9bb4a24e931618a7a64227e2194c89034da 07-Feb-2013 Scott Kennedy <skennedy@google.com> Cache column name/indexes so we can use getColumnIndex()

MatrixCursor doesn't do this, so we need to add our own cache.

Depends on Ia5ffd31f54a2a335f495df5e0d1a0886ee08c14b

Change-Id: Ica78e3cec747bf86fcef16508156e359216c64fe
ndroid/email/data/ClosingMatrixCursor.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/EmailProvider.java
15056dedc536c9c8c22a8474024bc55067aeb071 29-Jan-2013 Vikram Aggarwal <viki@google.com> am fb4cc403: Check tablet mode through resources

# Via Vikram Aggarwal
* commit 'fb4cc403514e4d98e63f86ed9d5fa2ac442073d0':
Check tablet mode through resources
fb4cc403514e4d98e63f86ed9d5fa2ac442073d0 29-Jan-2013 Vikram Aggarwal <viki@google.com> Check tablet mode through resources

Change-Id: I1f29bce68a5736e00e38b5f0189c025bfbae433c
ndroid/email/activity/setup/GeneralPreferences.java
d02b69c5cccc87c6acc356a4ae1784e719eba974 29-Jan-2013 Vikram Aggarwal <viki@google.com> am 4b09765a: Added veiled pattern updates through provider

# Via Vikram Aggarwal
* commit '4b09765a2e8a0fd22a9db0e876aaaada4246aff8':
Added veiled pattern updates through provider
4b09765a2e8a0fd22a9db0e876aaaada4246aff8 28-Jan-2013 Vikram Aggarwal <viki@google.com> Added veiled pattern updates through provider

Change-Id: I09cef0865e3d29f44a93a3887ff72676ab868b14
ndroid/email/provider/EmailProvider.java
632ab1d6339ca038287fb999d98ee0b78ca7cedd 23-Jan-2013 Paul Westbrook <pwestbro@google.com> DO NOT MERGE Revert "Change "hide checkboxes" to "show checkboxes""

This reverts commit 5742d449178fd51cfea303280e6c7b327f087f9a.
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
5742d449178fd51cfea303280e6c7b327f087f9a 21-Dec-2012 Scott Kennedy <skennedy@google.com> Change "hide checkboxes" to "show checkboxes"

Change-Id: Ie44dc65acab4ed94e8d7b3b26392872c4419a603
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
68a3607895963854637215a405145f190d6458f0 08-Dec-2012 Andy Huang <ath@google.com> convert rawFolders into a blob/Parcel

Requires CL I42eadd.

Bug: 7690709
Change-Id: I303f3c5479402a0eed9037ba2c95e00bdc7087b8
ndroid/email/provider/EmailProvider.java
f9997921cbea7feb13bbbd897e2f179494e5400e 29-Nov-2012 Scott Kennedy <skennedy@google.com> Change Email vibrate setting from tri-state to checkbox

Migrate the old value as necessary.
Update the unit tests.

Cherry-picked from I1c276ffde3496cbc66846ed4a007088d39f20382 with
minor changes.

Bug: 7624838
Change-Id: I1b3fa331b62f556701bacba5ce9cd64305d9b52a
ndroid/email/NotificationController.java
ndroid/email/activity/setup/AccountSettingsFragment.java
722b7bc29d3f5be029d21f5587b7bc675051073b 29-Nov-2012 Scott Kennedy <skennedy@google.com> Do not vibrate in vibrate mode if ringtone is silent

An empty string as the ringtone URI was triggering the system
vibration while in vibrate mode.

Bug: 7624838
Change-Id: Ide1cb2d8ac5d1295c18770bd053dd1cd0a50feb0
ndroid/email/NotificationController.java
2fbe5abcaceeddc1cba13e82bf1e575df8234742 25-Sep-2012 Vikram Aggarwal <viki@google.com> Notify the folder list in addition to the specific folder.

We might be dropping updates to the FolderListFragment since updates
to individual folders do not currently update the top-level
folder-list URI.

Bug: 7487632 EmailProvider doesn't notify on the folder list URI

Change-Id: I7c673eefd2d9cbaf01a5ca3098f7c4728f841f40
ndroid/email/provider/EmailProvider.java
947911082955d00014d1eccf04cd4b157d8cd8c6 05-Nov-2012 Paul Westbrook <pwestbro@google.com> Fix missed case for suppressing undo

Change-Id: I1393cf87f0372dfa20c46265ce9e26cbf34b15c2
ndroid/email/provider/EmailProvider.java
c7636b8a47b39a482414cf7a9695846956add963 05-Nov-2012 Paul Westbrook <pwestbro@google.com> Add support to suppressing undo in Email

Bug: 7465798
Change-Id: I5f07b7821bb72ef8c0766da82d335792b010a11c
ndroid/email/provider/EmailProvider.java
7e49f89a3a1ac5300c2672bdcb64338a8085da45 13-Oct-2012 Paul Westbrook <pwestbro@google.com> Return a value for conversation mode

Bug: 7312540
Change-Id: I0266df9a71f237666efa17360269f9ee5201668f
ndroid/email/provider/EmailProvider.java
986881efe6029ad4382371e2da4e597312eda51c 23-Sep-2012 Paul Westbrook <pwestbro@google.com> Fix multi message notifications

When multiple messages are received, now the View intent
will take the user to to contents of the mailbox, instead of
the viewing the last message

I have filed bug 7216375 to track the issue about receiving
multiple messages in different syncs

Bug: 7129870

Change-Id: I3fdf4680c62565615fcbefc75d72c2a721942604
ndroid/email/NotificationController.java
35177585a24b608582536c3d2c6633f8ee486511 23-Sep-2012 Marc Blank <mblank@google.com> Merge "Remove Imap2 from AOSP tree" into jb-ub-mail
0629f67215d1229088c406e32c34a1dd3789cc14 23-Sep-2012 Marc Blank <mblank@google.com> Remove Imap2 from AOSP tree

Bug: 7215459

Change-Id: I0808920c12d0b43455e213fd47c90f4eaee7ee1c
ndroid/email/imap2/AttachmentLoader.java
ndroid/email/imap2/EmailSyncAdapterService.java
ndroid/email/imap2/Imap2SyncManager.java
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/imap2/ImapId.java
ndroid/email/imap2/ImapInputStream.java
ndroid/email/imap2/Parser.java
ndroid/email/imap2/QuotedPrintable.java
ndroid/email/imap2/SearchRequest.java
016310a054d54c11490244f2725f5323f4b2ee35 23-Sep-2012 Vikram Aggarwal <viki@google.com> Fix account order.

The combined account is added both at the top and the bottom
currently: Check L.3103 of EmailProvider.java.

Bug: 7100404 Order of accounts in email is broken

Change-Id: I1cbff04efbb0b50630c655918ffdfa4a5d11c2f7
ndroid/email/provider/EmailProvider.java
114e314968f507b4237e693d279befe261b00f02 22-Sep-2012 Marc Blank <mblank@google.com> Return contentUri for all attachments

Bug: 7189815
Change-Id: If76d3a2038b3260fa44a7662854b03f7b6a1696c
ndroid/email/provider/EmailProvider.java
54347010fbbdd3ae1dea5b0e282514c640e16a5f 22-Sep-2012 Marc Blank <mblank@google.com> Allow legacy imap to sync

* Remove old (and dangerous) constants

Bug: 7210754
Bug: 7212263

Change-Id: I6a1463a653c5c4823a96c9fbb9ca37e53a45b48a
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/provider/DBHelper.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/PopImapSyncAdapterService.java
6bbbc0d57c6aa074af3967d596ff420622815f17 22-Sep-2012 Marc Blank <mblank@google.com> Prevent duplicate imap folders

Bug: 7212259
Change-Id: Iad43956c4caaf5a61c483af6ade91fa046342879
ndroid/email/service/PopImapSyncAdapterService.java
78b8c04898c04890b757fbd83df9666e0a9068f5 21-Sep-2012 Marc Blank <mblank@google.com> Add another test for "incomplete" accounts

* We have been erroneously marking some accounts "incomplete" and
this can cause reconciliation to fail after deleting the
accounts in Settings.
* Still need to investigate why the flag isn't cleared at times...

Bug: 7148506
Bug: 7166598
Change-Id: I0059580a6e4b6a5c54c09b8409c4358ff707ff77
ndroid/email/provider/AccountReconciler.java
5c523858385176c33a7456bb84035de78552d22d 20-Sep-2012 Marc Blank <mblank@google.com> Restore Imap1

* Restore Imap1 code
* Legacy users will use Imap1
* Existing Imap2 users will continue to use Imap2
* New accounts will be created in Imap1
* More to follow

Bug: 7203993

Change-Id: I8b86fcada59a854fd464d5269c94d00ebae85459
ndroid/email/activity/setup/AccountSetupType.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapConstants.java
ndroid/email/mail/store/imap/ImapElement.java
ndroid/email/mail/store/imap/ImapList.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapResponse.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
ndroid/email/mail/store/imap/ImapUtility.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/ImapTempFileLiteral.java
ndroid/email/service/LegacyImap2AuthenticatorService.java
ndroid/email/service/LegacyImapAuthenticatorService.java
ndroid/email/service/LegacyImapSyncAdapterService.java
ndroid/email/service/Pop3SyncAdapterService.java
ndroid/email/service/PopImapSyncAdapterService.java
ec0af7822c2321cf52b311b2f6bfbc37c9ee14db 20-Sep-2012 Marc Blank <mblank@google.com> Merge "Quote username and password in login command" into jb-ub-mail
6c477f5430480d11c31f80d3bd40146da20010a6 20-Sep-2012 Marc Blank <mblank@google.com> Quote username and password in login command

Bug: 7201914
Change-Id: Iff13a730c308198b01fdd3238149f54075b5d846
ndroid/email/imap2/Imap2SyncService.java
652a907672165b63d715817ceb08bd010489dab2 20-Sep-2012 Paul Westbrook <pwestbro@google.com> Hide reply all setting on tablets

Since tablets have the space to fit both the reply and reply all buttons
there is no need to show this setting on these devices

Bug: 7190341
Change-Id: I8a911ee964be6af31b63286db53b335a9e4a8396
ndroid/email/activity/setup/GeneralPreferences.java
5e1db519d98cc53317008b4b92b52d6b2edd53f4 19-Sep-2012 Paul Westbrook <pwestbro@google.com> Fix crash when the Email process is killed

If the Email process is killed during setup, the Account information
wouldn't be set. Specify this information in the intent as the intent will be delivered
again when the activity is restored

This is a short term fix. Ideally we would switch all of the intents for the setup
activities to use these extras to pass this information, or we would save the state of
SetupData in onSaveInstanceState

Bug: 7163201

Change-Id: Ic1758eb031cd113089073d03f3c2571e37a98b23
ndroid/email/activity/setup/AccountSetupIncoming.java
fb42a915e7f521d6fc7a95ad9f0e19d3b2d1bfe7 19-Sep-2012 Paul Westbrook <pwestbro@google.com> Merge "Fix crash with Email widget" into jb-ub-mail
48b4864840751bf68b44bad55e769be03deb2666 19-Sep-2012 Paul Westbrook <pwestbro@google.com> Fix crash with Email widget

Make sure the projection is correct for the sparse account
cursor

Bug: 7029165
Change-Id: If25ee7718fcd2577320404145de26a859fd4de0a
ndroid/email/provider/WidgetProvider.java
58e3a2da4ce25251178ce6fbac5b8f673e54c45b 19-Sep-2012 Mindy Pereira <mindyp@google.com> Merge "Return Mindy's senders" into jb-ub-mail
af7d768e876943492a8aad3f15bcdf8f6248dddb 19-Sep-2012 Marc Blank <mblank@google.com> Return Mindy's senders

* Also prevent NPE

Bug: 7188573
Change-Id: Ic87e7b3411667262e2aa738a38cb2283c9340b03
ndroid/email/imap2/Imap2SyncService.java
8ff282a260eef699c3e22e8809075191706a171a 19-Sep-2012 mindyp <mindyp@google.com> Lots of fixes to line up with new multi/single move to folder dialog.

This leaves the picker with radion buttons for choosing the trash
and sent folders for imap.

Change-Id: I11bf32458b4d91bd21f2baf9260a69ac13026aaa
ndroid/email/provider/FolderPickerDialog.java
ndroid/email/provider/FolderPickerSelectorAdapter.java
b203b2b1196bfd5507c83a4fe81d362de840ec0a 19-Sep-2012 Marc Blank <mblank@google.com> Remove useless class and crazy UIDL logging

* The logging makes it very difficult to debug POP3 issues

Change-Id: Ic3ffb9e5b3240918dff3e713fc2a7c49976efe84
ndroid/email/mail/Store.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
887ea25ed5a7074eddbe3a2fcf8c817269631ec1 18-Sep-2012 Marc Blank <mblank@google.com> Merge "Show display name in convo list" into jb-ub-mail
d40524bbac2e55cafc7bf6d634dde093fd432b0a 18-Sep-2012 Marc Blank <mblank@google.com> Show display name in convo list

Bug: 7170872
Bug: 7144575
Change-Id: Iceaa0616b1fd2db842cd6af0d818a4cc2a2189cc
ndroid/email/provider/EmailProvider.java
eaf7e3bce7a7f8f31c5677db188dec74072a43ca 18-Sep-2012 Marc Blank <mblank@google.com> Don't smartsend reply inappropriately

Bug: 7172780
Change-Id: Id43b75efab9c6f7a32e7c6bd42696547cc81f413
ndroid/email/provider/EmailProvider.java
e161ca513dbb812328af85e2172737895a9eaa3a 18-Sep-2012 Marc Blank <mblank@google.com> Properly check for deleted messages

Bug: 7011707
Change-Id: I9b977774e4b6d201dd96da1675bef7e3de88099c
ndroid/email/imap2/Imap2SyncService.java
00d17498c34776639369306791fd7f557605dfe4 15-Sep-2012 Marc Blank <mblank@google.com> Merge "Make sure provider is initialized before setServicesEnabled()" into jb-ub-mail
93bb868b870980cb7e62bb30a4d7e9b61528d90c 15-Sep-2012 Marc Blank <mblank@google.com> Make sure provider is initialized before setServicesEnabled()

Bug: 7142845
Change-Id: Idf793c5d07e3ea4c4a482696c5a27914fba66022
ndroid/email/provider/EmailProvider.java
8fe771a9e352ed3e2b0c9a72d85a70aaf3f7d951 14-Sep-2012 Marc Blank <mblank@google.com> Prevent infinite loops (ugh); fix list parsing

* We weren't accounting for string literals in list
parsing
* We didn't account for a null result in bodystructure
parse

Bug: 7162595
Change-Id: Idf0ae135dcfb968c722ab9fb56d5d253e74bd623
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/imap2/Parser.java
787c534f286f0267edb1a083ef191fac804060b5 12-Sep-2012 Marc Blank <mblank@google.com> Remove duplicate classes; trim addresses in RCPT TO:

Bug: 7133545

Change-Id: Ia1b928083246c5d54a5403b00168a20967517f09
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/imap2/smtp/MailTransport.java
ndroid/email/imap2/smtp/SmtpSender.java
ndroid/email/mail/transport/SmtpSender.java
f5ae8038471829fba009aa749b4b640921979588 11-Sep-2012 Marc Blank <mblank@google.com> Merge "Make sure EmailContent is initialized" into jb-ub-mail
92561ecd56d26712df68c83a084bc09fbf07cc8e 11-Sep-2012 Marc Blank <mblank@google.com> Make sure EmailContent is initialized

Bug: 7142845
Change-Id: I4299ab2627a4427ff8e96958b2c27f2f827e7794
ndroid/email2/ui/MailActivityEmail.java
858051154111e8e725ea47d335adc3b3a0f095e9 11-Sep-2012 Marc Blank <mblank@google.com> Handle loadMore when no messages are loaded

Bug: 7129772
Change-Id: I9d2fd4f2bc488930c53e9fe44dc3fa852409b5c0
ndroid/email/imap2/Imap2SyncService.java
74c79a50432fcbf127fbfeadc1a461263ea92135 11-Sep-2012 Marc Blank <mblank@google.com> Modify intent names

Change-Id: Iad8b4842056a7f553363f9af47e65665c2b26a5d
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupBasics.java
266064bcc7c6ed7318a284d59bb83d53edbf1921 10-Sep-2012 Marc Blank <mblank@google.com> Add "System Folders" settings

* Add this category and preferences for setting the trash
and sent items folders

Bug: 7100092

Change-Id: I964e02e5e319b3f04b030d36ed7dca30ed046362
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/provider/FolderPickerActivity.java
ndroid/email/provider/FolderPickerCallback.java
ndroid/email/provider/FolderPickerDialog.java
ndroid/email/provider/FolderPickerSelectorAdapter.java
ndroid/email/provider/FolderSelectionDialog.java
b621f625efd2d94c7a4497f22626054b5acfb497 09-Sep-2012 Marc Blank <mblank@google.com> Merge "Don't reset user's port number in settings" into jb-ub-mail
19e9291c9ad42a3e6be10e5ff4a12f9bbe8adc05 09-Sep-2012 Marc Blank <mblank@google.com> Merge "Use correct attachment provider authority" into jb-ub-mail
665b19e779cec4685c4d540abad4b03e1027cf97 09-Sep-2012 Marc Blank <mblank@google.com> Don't reset user's port number in settings

* Spinner onItemSelected is called prior to user input; this
reverts the port to the security-based default

Change-Id: I1cb67e519e9305ef2384b5f5f305bff1e950e7c4
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
393b85957781baab7d648071b5b2288a26976881 09-Sep-2012 Marc Blank <mblank@google.com> dump is @hide; remove @Override

Change-Id: I4df3a75a7d0747e62ddd4bbc23ab4008344e49a1
ndroid/email/provider/EmailProvider.java
323954df41bb71076d11f52df6275a57ab2fd4dc 09-Sep-2012 Marc Blank <mblank@google.com> Merge "Create requireSetup attribute; use it for gImap" into jb-ub-mail
16b07e11c737edb362d968da12b42ad5a8b94f69 09-Sep-2012 Marc Blank <mblank@google.com> Merge "Use resource based mime type for application" into jb-ub-mail
6e5bccf2c984039da5ae1dc08cffa665b73b6474 08-Sep-2012 Marc Blank <mblank@google.com> Use correct attachment provider authority

* Make sure new code works with old Attachment rows

Bug: 7130972
Change-Id: Ia5d258930f39266517eead535a92bb4380fdb594
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
81b0f74efa39d80b0aa18686c96499faf0e2691f 08-Sep-2012 Marc Blank <mblank@google.com> Create requireSetup attribute; use it for gImap

Change-Id: Id5f37861e4d6f2c2ed0fe98bd8b4d7eb73868c09
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceUtils.java
7e5df63fc9771c7950d3f95da17cfb112ebbf7f3 08-Sep-2012 Marc Blank <mblank@google.com> Use resource based mime type for application

Change-Id: I41a3cbf5c810668f9b0885f6614b2e48215901b2
ndroid/email/provider/EmailProvider.java
af092bd5f850653b0d237fb55ccc896f74dc7982 08-Sep-2012 Marc Blank <mblank@google.com> EmailProvider dump

Change-Id: Id975c99427b41f4a56235dc6ba5ad515d6700fe5
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceUtils.java
fdb1635868e9591c3bcaf107360a7eae2e09fe18 07-Sep-2012 Marc Blank <mblank@google.com> More work on FolderPicker

* Only show for Imap2 (hard-coded now w/ STOPSHIP)
* Don't show more than once
* Make sure all folders are set up completely before showing

Change-Id: Ie745c7e2f155496482d213ecfc9eff2009bb23ee
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
8c8a68a717d8221404e1316ef0318e397dd5e9ad 07-Sep-2012 Marc Blank <mblank@google.com> Prevent looping w/ exceptions during IDLE

Bug: 7126413

Change-Id: If1d435a93845e0fd06be54328f6a0cbc161e5a9d
ndroid/email/imap2/Imap2SyncService.java
9a341d85f0027cac0f9dca0312d8c775738f9c73 07-Sep-2012 Marc Blank <mblank@google.com> Merge "Improve trash folder picker upon account creation" into jb-ub-mail
14e5f567ed09b0f5e4442038999d38a77593f658 07-Sep-2012 Marc Blank <mblank@google.com> Merge "Log capabilities (w/ STOPSHIP)" into jb-ub-mail
983c78e92899b94b237c292968c1be2bf53c5d57 06-Sep-2012 Marc Blank <mblank@google.com> Log capabilities (w/ STOPSHIP)

Change-Id: Id448fd48ee1d7a2eabab8f3bd4dae34b6e401a7d
ndroid/email/provider/EmailProvider.java
26164054710375519ba7468987971a7a3340ba7e 06-Sep-2012 Marc Blank <mblank@google.com> Improve trash folder picker upon account creation

* Use setup intent uri
* TODO: More cleanup

Bug: 7077441

Change-Id: Ieab5b0ed33b73b7a0e9012aedd6becf867db1566
ndroid/email/imap2/Imap2SyncManager.java
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
ndroid/email/provider/FolderPickerCallback.java
ndroid/email/provider/FolderSelectionDialog.java
2f5897589e791ebd854506a463233f48b06ed953 06-Sep-2012 Marc Blank <mblank@google.com> Merge "Clean up imap2 logging" into jb-ub-mail
41e78c168ec53c46236163052827a19c75d656b9 06-Sep-2012 Marc Blank <mblank@google.com> Clean up imap2 logging

Change-Id: I53b522ea33d8bb1b070d994fd765d1eec2f60fb4
ndroid/email/imap2/Imap2SyncService.java
5b3fda11ded711042c5c2b9342a47bd2e2eb7d58 31-Aug-2012 Mark Wei <markwei@google.com> Add supplementary account info to outbound google.com links

Bug: 6661601
Change-Id: Ifae6d4a0f30c8233a1b51971168a19f1548718ca
ndroid/email/provider/WidgetProvider.java
b210f3ad534c1215de17e95ce5f289dde9fad4a1 05-Sep-2012 Marc Blank <mblank@google.com> Merge "Revert "Initialize mDatabase on provider startup"" into jb-ub-mail
c0a425027b4d01262bd85f73a5212179b4418b16 05-Sep-2012 Marc Blank <mblank@google.com> Revert "Initialize mDatabase on provider startup"

This reverts commit 6c319d78edc52cd4a6d2f53277d2e1cef1afc5bc

Change-Id: I57881b090a3c7efba79369702356b622d9a7aba8
ndroid/email/provider/EmailProvider.java
c0e2b147e09dd0bf15f19e63807b1b3bab798f50 05-Sep-2012 Marc Blank <mblank@google.com> Clear visibleLimit when folder entered

Change-Id: I39824dbff83ffcf109cbc1ffebf00cad5bce2498
ndroid/email/provider/EmailProvider.java
d2bf25ac8bf92501dab268eac586663609fca9a5 05-Sep-2012 Marc Blank <mblank@google.com> Make sure body loading finishes when searching

Bug: 7107329
Change-Id: Ief78b1c31a7c363cd2e23ef1b7d4ff9e26c219b7
ndroid/email/imap2/Imap2SyncService.java
7110183fe51cfb51819e9992f3e4700567c7b8e9 05-Sep-2012 Marc Blank <mblank@google.com> Merge "Put combined account last" into jb-ub-mail
2651bcc7be2c5fbce23faa0b0d12db63caee5a45 05-Sep-2012 Marc Blank <mblank@google.com> Put combined account last

Bug: 7100404
Change-Id: Iff2884e635d030d840f297c15f5e2ee646185c5f
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/provider/EmailProvider.java
db1c845212b814b49bd347c9399413e69f7bce8b 05-Sep-2012 Marc Blank <mblank@google.com> Handle mime encoded sender in convo list

Bug: 6901954
Change-Id: I5f9915592d4d859bd8ddd0185890015923390fbe
ndroid/email/imap2/Imap2SyncService.java
9765f7b284941fc542c285998e435a8844d0e582 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Initialize mDatabase on provider startup" into jb-ub-mail
5a2b9579de8353996df7cbd84cf0847c2ee075d3 04-Sep-2012 Marc Blank <mblank@google.com> Prevent possible NPE

Change-Id: I0254812c55cf6c5e4825aa28f900b8030502e9f6
ndroid/email/provider/EmailProvider.java
6c319d78edc52cd4a6d2f53277d2e1cef1afc5bc 04-Sep-2012 Marc Blank <mblank@google.com> Initialize mDatabase on provider startup

* Try to prevent startup-related races

Bug: 6969684
Change-Id: I58ac16381bb71b8e21e01cb3ead0ba99f70c9873
ndroid/email/provider/EmailProvider.java
9e4556ae1c4ed0202e3b60c790d165945b4a0fc0 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Revert "Initialize mDatabase on provider startup"" into jb-ub-mail
fcba7fa20a17e2c691a39d344d5c880d051a34e0 04-Sep-2012 Marc Blank <mblank@google.com> Revert "Initialize mDatabase on provider startup"

This reverts commit 33f3b0c1d5930c5420bdc366a6a361c248937265

Change-Id: Ia56d67f49b3b5d7569791d9d556e2f7eed13ee7d
ndroid/email/provider/EmailProvider.java
5bf0cef203b2b47120e337a889372f3488f81e90 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Show "Creating account..." dialog during account creation" into jb-ub-mail
efb46b08571aeffb62ec9cd913775a57be6b8407 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Clear visible limit when entering mailbox; enable imap load more" into jb-ub-mail
644f172cde5bb39b383e42f61ea5c73ca0ea1671 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Initialize mDatabase on provider startup" into jb-ub-mail
b82437f563f814471c88e7977dca0ef888cdcaea 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Allow NULL values in genSelect" into jb-ub-mail
0ef02e5773d76d614beaa461909cda08481a4845 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Decode base64 message text" into jb-ub-mail
ada7dfef3f6e9ef049158a37248f389a3afb10ba 04-Sep-2012 Marc Blank <mblank@google.com> Merge "Reconcile all types of local accounts in MailService" into jb-ub-mail
f53490dc86f5a61ab09024dc4938ce8419c61fc5 03-Sep-2012 Marc Blank <mblank@google.com> Reconcile all types of local accounts in MailService

Bug: 7078247

Change-Id: I43eb5b8a85e40217893bdc08cd839450358d07ea
ndroid/email/SingleRunningTask.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/MailService.java
6eac1c9f1c15c8a9440fbf4c1854958c054b912b 04-Sep-2012 Marc Blank <mblank@google.com> Show "Creating account..." dialog during account creation

Bug: 7100373
Change-Id: Ic86d8b8c8fafe628a69e867d93719bb986c7c583
ndroid/email/activity/setup/AccountSetupOptions.java
cc986cf3d75dd80f59e41b829bb41c369f973d7d 03-Sep-2012 Marc Blank <mblank@google.com> Clear visible limit when entering mailbox; enable imap load more

Bug: 7045530

Change-Id: I013c465dfbe992e9df104039e8576465805c9119
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/provider/EmailProvider.java
33f3b0c1d5930c5420bdc366a6a361c248937265 03-Sep-2012 Marc Blank <mblank@google.com> Initialize mDatabase on provider startup

* Try to prevent startup-related races

Bug: 6969684
Change-Id: I5eb2bf2773c2809a27a7eeb461bf8fbfccc864a2
ndroid/email/provider/EmailProvider.java
df9c1f3aa54792cc65f95ddff8e36a34a9dcdda1 03-Sep-2012 Marc Blank <mblank@google.com> Allow NULL values in genSelect

Bug: 7050016
Change-Id: Ia70e2312e37e8a5adae62d045878a079e9195d00
ndroid/email/provider/EmailProvider.java
e6c576a629a40cb581390001cec2842f231308d3 03-Sep-2012 Marc Blank <mblank@google.com> Decode base64 message text

* Who the f*** sends text in base64. Oh, that's right - we do.

Bug: 7074378
Change-Id: Ic20c6e2aba0b700cbb2cd032f5e541c9a9f83239
ndroid/email/imap2/Imap2SyncService.java
96e13d4d8c190004124246dcee86b959d7bf9cac 03-Sep-2012 Marc Blank <mblank@google.com> Don't logout of Imap while body loading continues

Change-Id: Ibb79c8436851863dac582478fef32344b9269d3f
ndroid/email/imap2/Imap2SyncService.java
b82ae909d7514bf06090ee3a120aef2154ab0296 24-Aug-2012 Marc Blank <mblank@google.com> Add support for "load more" for Imap2

* Use new attribute in services.xml to indicate support
* Initial implementation

Change-Id: Ia8709d606d521c6d495c343a47ee074b5024d340
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/LegacyImap2AuthenticatorService.java
e714bb9d153cfe13a7f0932e7d67ea08fa5a1d98 23-Aug-2012 Marc Blank <mblank@google.com> Convert authorities, intents, and account manager types

* Tested ok on wiped Nexus
* Tested ok on S3
* Upgrade verified on Nexus

Change-Id: If5d4ce594f8a309cdb59589d10b1d33f3b79326c
ndroid/email/NotificationController.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/imap2/AttachmentLoader.java
ndroid/email/imap2/EmailSyncAdapterService.java
ndroid/email/imap2/Imap2SyncManager.java
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/imap/ImapConstants.java
ndroid/email/mail/store/imap/ImapElement.java
ndroid/email/mail/store/imap/ImapList.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapResponse.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
ndroid/email/mail/store/imap/ImapUtility.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/Imap2AuthenticatorService.java
ndroid/email/service/ImapAuthenticatorService.java
ndroid/email/service/ImapService.java
ndroid/email/service/ImapTempFileLiteral.java
ndroid/email/service/LegacyEasAuthenticatorService.java
ndroid/email/service/LegacyEmailAuthenticatorService.java
ndroid/email/service/MailService.java
ndroid/email/service/Pop3AuthenticatorService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/Pop3SyncAdapterService.java
ndroid/email/service/PopImapAuthenticatorService.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/mail/providers/protos/boot/AccountReceiver.java
5ac8d38796952a817f4693b38d62fc124651c121 28-Aug-2012 Marc Blank <mblank@google.com> Always return correct folder capabilities

* This requires us to use a MatrixCursor based on individual
Mailbox queries

Bug: 7059516
Change-Id: Ie9481a519d3d876464985924e5e7ad6d987c3945
ndroid/email/provider/EmailProvider.java
70edcf05387df33f4761b766add6b80999e425e9 22-Aug-2012 Marc Blank <mblank@google.com> Integrate Imap2 into Email

* Also, convert imap accounts to imap2
* The original imap service remains, but is no used
* There remain some questions about how the upgrade
should work in terms of settings

Change-Id: I0e05edad6a1553f428a2c2fa3daf1df878d4b5f7
ndroid/email/imap2/AttachmentLoader.java
ndroid/email/imap2/EmailSyncAdapterService.java
ndroid/email/imap2/Imap2SyncManager.java
ndroid/email/imap2/Imap2SyncService.java
ndroid/email/imap2/ImapId.java
ndroid/email/imap2/ImapInputStream.java
ndroid/email/imap2/Parser.java
ndroid/email/imap2/QuotedPrintable.java
ndroid/email/imap2/SearchRequest.java
ndroid/email/imap2/smtp/MailTransport.java
ndroid/email/imap2/smtp/SmtpSender.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/MailService.java
0b9f23cae28a57730653af7be074a367e3ae4a09 22-Aug-2012 Marc Blank <mblank@google.com> Merge "Report delete capability for all folders" into jb-ub-mail
285cef8ad0af4727b53a7b79e709c0ecb5f40d4f 22-Aug-2012 Marc Blank <mblank@google.com> Report delete capability for all folders

Bug: 7034779
Change-Id: I5cd69739007a870d50e0f362945ca5aa62ae0cdc
ndroid/email/provider/EmailProvider.java
a6885ba97d9d45d3496c67b8142418cbdefee89b 21-Aug-2012 Marc Blank <mblank@google.com> Remember base64 decoding for IMAP attachments

* Also, add debugging class to EmailProvider

Bug: 6995516
Change-Id: Ia96415caa61f26d55f09beb76fb3f34a40b53691
ndroid/email/provider/EmailProvider.java
ae597ea949e3351de0dc71ba4b4ab124afea7d96 21-Aug-2012 Marc Blank <mblank@google.com> Handle getExtras() from message list cursor

Bug: 6923453
Change-Id: Iceacf32ab195de47553243cdf16a75436057d995
ndroid/email/provider/EmailProvider.java
22e9efd44238802cc76ac18ec0c717640898df67 19-Aug-2012 Paul Westbrook <pwestbro@google.com> Supports delete

Make sure that all Email labels report supporting delete

Bug: 7006885
Change-Id: Ia73b37f456d749debdf5c186a8ae688b9d8525b7
ndroid/email/provider/EmailProvider.java
12a79eb4798093b7e8a276c4e96f07fd62e0933d 18-Aug-2012 Marc Blank <mblank@google.com> Preserve SetupData state on orientation change

* I suspect there are more bugs to be found here

Bug: 6956692
Change-Id: Id01d8e990b954505383d8218c05c192d658062cc
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/SetupData.java
0bac607eff0503a69ae8cc579b474eb55c06fdbd 17-Aug-2012 Marc Blank <mblank@google.com> Merge "Try to find cause for NPE" into jb-ub-mail
296d18c02b4397c320a273cc94c234620e13b3fd 17-Aug-2012 Marc Blank <mblank@google.com> Try to find cause for NPE

Bug: 7006995
Change-Id: I12d19fab0264b5d779f24df92274ad879237d254
ndroid/email/provider/EmailProvider.java
53d791d7a4d31b91254e16a18c122b36f5847e36 17-Aug-2012 Marc Blank <mblank@google.com> Remove Imap2 warning

Change-Id: Ic531ef1047ba1bf8da50cae9af147cf18332d8b8
ndroid/email/activity/setup/AccountSetupBasics.java
bc53491b95e4de2e30b04e696f30d209539ec87a 17-Aug-2012 Marc Blank <mblank@google.com> Ensure that security notification is posted if not active

Bug: 7007658

Change-Id: Ia422c30c47b044279471e549541ac6279735828c
ndroid/email/SecurityPolicy.java
b89744ecfb92a4b8fc66a23b942531d39910de44 16-Aug-2012 Marc Blank <mblank@google.com> Use appropriate prefix to infer server address

Bug: 6999072
Change-Id: I71aa184b1cfa0b6926f4dae8861f071f27d3acb2
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/service/EmailServiceUtils.java
cf3b3ae987e73453f2265673a7ba3a72a1a6b4ed 16-Aug-2012 Marc Blank <mblank@google.com> Prevent NPE while getting service

Bug: 6989095
Change-Id: I646e393ec77a2e31c92011868f705e0936e41d88
ndroid/email/service/EmailServiceUtils.java
33858c77e9eaa688b43469de38439bd2107073f7 10-Aug-2012 Paul Westbrook <pwestbro@google.com> Fix crash when validating email hostAuth

Bug: 6948287
Change-Id: I781a32a2da0b4248e7ee1e061393ebc2bdc4dd61
ndroid/email/provider/EmailProvider.java
9439595e582803ede8c4bb8634cf93457681edd7 08-Aug-2012 Paul Westbrook <pwestbro@google.com> Fix NPE when proceeding without selecting trash folder

Bug: 6948677
Change-Id: Iac846a8c4e992a02f5f5974ac623a99bee218b13
ndroid/email/provider/FolderSelectionDialog.java
532bcf4a522f91258c74604b74096c9b1f7c0510 07-Aug-2012 Paul Westbrook <pwestbro@google.com> Catch exception in monkey runs

Bug: 6929910
Change-Id: I1d1703282af66bcba7e77277b8ea663fdebcc251
ndroid/email/mail/transport/MailTransport.java
e340b1f4df2aa2397262935f636edbff4e35a9c7 04-Aug-2012 Marc Blank <mblank@google.com> Merge "Progress updates for POP3 message downloads" into jb-ub-mail
970fe5316b54cf6b60dbe9122e744eaa31772e10 04-Aug-2012 Marc Blank <mblank@google.com> Progress updates for POP3 message downloads

* Also, handle MessagingException when doing STAT

Change-Id: I5267b64f18a84fcc97fc2d003e49d4e373ea02c5
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/Pop3Service.java
b74f2204672ae01e1b2954f5714031d369c332cb 03-Aug-2012 Paul Westbrook <pwestbro@google.com> Make sure to respect the projection from the client

The combined account query wasn't respecting the projection from the
client

Bug: 6930416
Change-Id: Iecda9b08caf6bb3e68a0d1cf79496b3d32b4b54e
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
cee9881650e01da155b3d7117357a15f49a7a4a1 03-Aug-2012 Marc Blank <mblank@google.com> Fix typo in DBHelper

Bug: 6930157
Change-Id: Id98cb1772b3d2d58dcd3098566f1096b10ea66f2
ndroid/email/provider/DBHelper.java
7f7f7e6402eec1baab6bedcb58da61369cae4097 03-Aug-2012 Marc Blank <mblank@google.com> Handle server deletion of local POP deletions

* Also avoid looping through zillions of messages when
checking uid's
* Always have 25 (or whatever the visible limit) messages
loaded

Change-Id: Ib2f02a59cc438e3fd14d7ac607fb01d9a5fa5282
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/Pop3Service.java
f6db592c313c77190727c7cd72d3edda9d23a099 02-Aug-2012 Marc Blank <mblank@google.com> POP3 renovation

* Much, much faster
* Remove message length pass and lots of other useless code
* Create pseudo-attachment for long messages (click to download) that
includes size (so user can determine whether it's worth it)
* Handle download of message via pseudo-attachment; real attachments
are then created as necessary.

TODO: Add real UI with UX input (or modify existing to clean up the
loose ends)
TODO: Optimizations for loading the whole message
TODO: Get server delete working (isn't working currently anyway)

Change-Id: I31f3809fc5a2f9fd490d33cfed70d2930654e71d
ndroid/email/LegacyConversions.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/Utilities.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/Pop3Service.java
e0015b2800eeefbf8aaf322645038907f37e62f1 01-Aug-2012 Vikram Aggarwal <viki@google.com> Priority Arrows are always disabled for Email.

Change-Id: If8617fc9c41467987aa572bfe2f93394757c4166
ndroid/email/provider/EmailProvider.java
7d5e2a7c08966ffd4a9e8c78f504cc4fd5be4216 01-Aug-2012 Marc Blank <mblank@google.com> Do "same certificate" checking when using "trust certificates"

* Refactor/simplify Transport/MailTransport
* Add serverCert column to HostAuth table in EmailProvider
* During first connection to server, save the server certificate
in the HostAuth; on subsequent connections, ensure that the
certificate presented has the same public key as the one
stored
* For now, we'll just fail to connect (with a CertificateException)
if there's a mismatch

TODO: Add some UI to handle different certificates

Bug: 6888866
Change-Id: Ia79497e89eaad8d43617b50d3771121b2ed7f687
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/DBHelper.java
942fea3c97e0f8aa6420ecbc6201d4be27800d94 31-Jul-2012 Marc Blank <mblank@google.com> Synchronize checkDatabases()

Bug: 6538393
Change-Id: I5e4d532aa859d8a49805b74475275ad914e84b86
ndroid/email/provider/EmailProvider.java
949fc3d88338861dec8eac29fffaef5b17ae07e8 31-Jul-2012 Marc Blank <mblank@google.com> Prevent NPE when the message has been deleted

Bug: 6907706
Change-Id: I5d5f980856eed12242095527aa927d139c77db4d
ndroid/email/provider/EmailProvider.java
f986f44ecac2b65fa50dcd8543945ff85d3b2245 30-Jul-2012 Mindy Pereira <mindyp@google.com> Reduced the number of calls that did the same thing in the Folder class.

The new method is just Folder.toString

Change-Id: I28fe0cc6e0adb110645941acd4990957283e5b03
ndroid/email/NotificationController.java
125a2435d6f9dd4a49e1a66de35ad6bf39081202 29-Jul-2012 Marc Blank <mblank@google.com> Use Imap2 for auto-setup (if installed)

* And warn user (allowing her to switch to legacy adapter)
* This is temporary, for use in testing and marked STOPSHIP

Change-Id: I2510b0855a67c09add116d827185ff14596f44dd
ndroid/email/activity/setup/AccountSetupBasics.java
1bd4630d3d7e4ea309a126b05b00fb1ccab283b8 27-Jul-2012 Marc Blank <mblank@google.com> Linkify and show URL's if they are incuded in ALERT messages

* Gmail does this, for example...

Change-Id: I3b8d7b38e490bbac286f688c11cb62e6874121c2
ndroid/email/activity/setup/AccountSettings.java
dba0b20d955d88831ce94d96dbdadc49dba4761a 27-Jul-2012 Marc Blank <mblank@google.com> Handle ALERT response to login command

* Allow AccountService loginFailed API to take a reason string
* Present the reason string in the dialog shown from the login
failure notification
* Handle ALERTs in IMAP login responses (for example, some servers
will occasionally require web login and we need to inform them,
rather than simply saying the password is wrong)
* This fixes a longstanding bug in our Imap1 implementation

Change-Id: I8b270cd5d4746559b6c8a78bce02f0e7c525bdea
ndroid/email/NotificationController.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/service/AccountService.java
ae57810e1e321991c454a4a6de4b88817c839315 27-Jul-2012 Marc Blank <mblank@google.com> Merge "Imap2 additions" into jb-ub-mail
0b6b83c6f90652b506c7761b923663c08f3af833 25-Jul-2012 Marc Blank <mblank@google.com> Imap2 additions

* Implement first-pass Imap2 server-side search
* Improve number parsing performance
* Better handle the BodyThread (loading message bodies)

Change-Id: I0ccd7377c80a0553b086d5204b211067896a2f49
ndroid/email/provider/EmailProvider.java
34d8a139ce9c7eb72ec92ba6861353f221301330 27-Jul-2012 Mindy Pereira <mindyp@google.com> Remove extraneous loop.

There better be just 1 folder!

Change-Id: I8f4431cb133b29a4d4f266d0a95b843b374f15cc
ndroid/email/provider/EmailProvider.java
709b4633eda47f81a689c3be623660d74cdad904 27-Jul-2012 Mindy Pereira <mindyp@google.com> We don't need this! Raw folders does everything for us.

Change-Id: I5e37ed79ce3dce02ffad6fbea184981dd6f4f40e
ndroid/email/provider/EmailProvider.java
97a198292e665fff5d27d727d415f35b0a0633e4 26-Jul-2012 Marc Blank <mblank@google.com> Notify on "all accounts" when an account is updated

Change-Id: If6bad046d10972dcf7aa76d73b18c8a0c655a6ce
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
b225298b13eb47c6251d73c28506b0a7ad56bf5c 26-Jul-2012 Marc Blank <mblank@google.com> Add swipe-to-delete general preference

Change-Id: I83aa62526ba7a74cea27930300340227b147340f
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailProvider.java
21959b3f297fe96c33b22b623a6c426e95d7effc 25-Jul-2012 Paul Westbrook <pwestbro@google.com> Support widget changes in UnifiedEmail

Change-Id: I48ed403a7f1d61607b70c3ef260cc1f903e27a1b
ndroid/email/provider/WidgetProvider.java
a4418762d4667dd8e76adfe45d905da9e228d1d5 25-Jul-2012 Marc Blank <mblank@google.com> Merge "Make sure account capabilities get set properly in UIProvider" into jb-ub-mail
0b5f15d61ebf7c0e8428100637bc479ed93a4cb2 25-Jul-2012 Marc Blank <mblank@google.com> Make sure account capabilities get set properly in UIProvider

* Change getCapabilities API to take an account, rather than
the id of the account
* getCapabilities() can therefore execute even before Exchange
is fully up and running

Change-Id: Id4c2a9942ea7a21e0c56401c50206b680274b43e
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
6eee9e4f11d0dad2c2e965281c63146f7acd0d2f 24-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Filtering attachments by content type.

If the optional contentTypeQueryParameters is
set in the attachments URI, we only include attachments
that start with one of the contentTypes given in the
query parameters.

Change-Id: I97364b405b37174c02ba712009604b4dd122ae73
ndroid/email/provider/EmailProvider.java
51693c5a4ca3553f0a02a91fe1805fb895380e3e 20-Jul-2012 Paul Westbrook <pwestbro@google.com> Migrate legacy widgets

Bug: 6304532

Change-Id: I6a5cad036ec7d4746e396b580e4689c957a7ee18
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
54b6b8b072100551c1820d679108bd8356a0c8be 20-Jul-2012 Marc Blank <mblank@google.com> Prevent CME w/ sServiceList

Bug: 6854037
Change-Id: I0b9aadfa0b347c62bf8a3b0c5ec88330871cce2d
ndroid/email/service/EmailServiceUtils.java
00287c4d8f54ae07c89bb3893f440acdca09d728 20-Jul-2012 Marc Blank <mblank@google.com> Remove unused code; rename some constants

* Also handle large batch operations in chunks

Change-Id: Ie566cb8d8bb73e8edd663de5228e905c223f031b
ndroid/email/provider/EmailProvider.java
ndroid/email/service/ImapService.java
51d4370b770ae56a4437bb68ed4729e5f1111a43 20-Jul-2012 Mindy Pereira <mindyp@google.com> Create ConversationInfo object with senders info for email.

Change-Id: Ibc789682d3bf0b19e026dcb629f94afee0405ec3
ndroid/email/provider/EmailProvider.java
77a9966f462581707bc49ccbf3348ca65b5fa41d 19-Jul-2012 Marc Blank <mblank@google.com> Merge "More work on Imap2" into jb-ub-mail
a8b683cf3f2efe726220c0235368cf6ea899e3ba 18-Jul-2012 Marc Blank <mblank@google.com> More work on Imap2

* Handle sending mail and moving to sent folder
* Implement picker for sent folder
* Upload sent items to server
* Add support for "automatic" sync window
* Move some files from Email -> emailcommon
* The added files are copied directly from Email (and can be
removed if/when Imap2 is merged back with Email)

Change-Id: I3a6a3d224826e547748be2f1b567b6294ad5db89
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/CountingOutputStream.java
ndroid/email/mail/transport/EOLConvertingOutputStream.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
ndroid/email/provider/FolderSelectionDialog.java
ba6bf4e0520ab8e5eb5e3ccdb0a41a241fab8f34 19-Jul-2012 Vikram Aggarwal <viki@google.com> Merge "Default Inbox name for Email" into jb-ub-mail
a0fef46aea16c1783f681bb0053eeb3f53d975ab 19-Jul-2012 Vikram Aggarwal <viki@google.com> Default Inbox name for Email

Change-Id: Iac4995d948d73c6a663331b0653453a916057189
ndroid/email/provider/EmailProvider.java
49cbb81332769c97a19cd388dcfd88957c072328 19-Jul-2012 Mindy Pereira <mindyp@google.com> Should be able to forward a message with no additional content.

Change-Id: I6eccf2f2436303a0359027d3efd3763306f9f657
ndroid/email/provider/EmailProvider.java
c992071671248761de44eff048ffb64554a5cb26 18-Jul-2012 Marc Blank <mblank@google.com> Fix build break

Change-Id: I23cdd4c07faf97d471caf1e9dc37d81f412d8dab
ndroid/email/provider/FolderSelectionDialog.java
c6089bc01f2ae49fb11904a4b4f222811358254f 29-Jun-2012 Marc Blank <mblank@google.com> Initial Imap2 implementation

This CL includes the following:
* New Imap2.apk generation (not included in builds)
* "Push IMAP" option for accounts when Imap2.apk present
* Account creation/setup
* 2-way sync of messages, deletions, flag updates
* Push (messages, flags)
* Folder list hierarchy handling
* Message text (one plain or html part)
* Picker UI for trash folder (placeholder)
* Capabilities handling/UI command

Major Imap2 new features:
* Push
* Multiple folder sync
* Sync window (like EAS)

TODO:
* Picker UI for sent folder
* Upload of sent messages to server
* Search
* Multiple viewable parts
* Probably lots more, incl. unit tests

Change-Id: Ia5d74073d9c307e0bdae72a7f76b27140dde7d14
ndroid/email/VendorPolicyLoader.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/FolderPickerActivity.java
ndroid/email/provider/FolderPickerCallback.java
ndroid/email/provider/FolderSelectionDialog.java
ndroid/email/service/AccountService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/Imap2AuthenticatorService.java
ndroid/email/service/ImapService.java
eetstra/ThirdPartyProject.prop
ab076fa6334182bb93e3420b9459c201ffae5a88 16-Jul-2012 Mindy Pereira <mindyp@google.com> Account and Folder are both json objects now.

We dont have a seperate parcelable account and serialized account
string (for pending and regular intents)

Fixes b/6805342 Email crash on opening message from notification bar

Change-Id: I5b310fbafefb8dd82b9e222421fb624703b1676b
ndroid/email/NotificationController.java
b27348a80836d6f7daac2ece4b2e6620f8d315f4 13-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Adding the via column to email.

Change-Id: I3d49f696a1262f22b0ebaf733b5a4f26ac270935
ndroid/email/provider/EmailProvider.java
de79ecbbe2356d21ab0b0d40a7ee00f4e18b4924 11-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Update to email2 for the new spam warnings.

This feature being Gmail-specific, we simply
set the default values so that warnings never show
up for email clients.

Change-Id: Ie0a55762c1af73a9c9aa8836faadc23ac9af52cb
ndroid/email/provider/EmailProvider.java
7c8f1c125aa5cd79f1f5f6048f8443eb084a6b2e 28-Jun-2012 Marc Blank <mblank@google.com> Fix handling of json in SQLite query

Bug: 6749576
Change-Id: I3cd85182d8c35e564f50ee7f9c787d797253e105
ndroid/email/provider/EmailProvider.java
c5afb16430a145f20d7c887e45f47b38687054da 28-Jun-2012 Marc Blank <mblank@google.com> Add a bunch of stuff missed earlier

Change-Id: I7f707446a963912fe5786dacb5569e68db572d1c
ndroid/email/activity/EventViewer.java
ndroid/email/activity/setup/AccountSetupType.java
ndroid/email/activity/setup/EmailPreferenceFragment.java
ndroid/email/activity/setup/ForwardingIntent.java
ndroid/email/activity/setup/PolicyListPreference.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/Utilities.java
ndroid/email/service/AuthenticatorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/ImapService.java
ndroid/email/service/ImapTempFileLiteral.java
ndroid/email/service/Pop3Service.java
ndroid/email2/ui/CreateShortcutActivityEmail.java
ndroid/email2/ui/MailActivityEmail.java
ndroid/email2/ui/MailboxSelectionActivityEmail.java
ndroid/mail/browse/EmailConversationProvider.java
ndroid/mail/providers/EmailAccountCacheProvider.java
ndroid/mail/providers/protos/boot/AccountReceiver.java
ndroid/mail/utils/LogTag.java
f419287f22ae44f25e1ba1f757ec33c7941bbfa8 28-Jun-2012 Marc Blank <mblank@google.com> DO NOT MERGE: Move emailcommon2 sources to emailcommon

Change-Id: I06df7e467cd2e0117df8b8db3ddc6ff9da13f1c7
ndroid/email/AttachmentInfo.java
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/EmailConnectivityManager.java
ndroid/email/FolderProperties.java
ndroid/email/GroupMessagingListener.java
ndroid/email/LegacyConversions.java
ndroid/email/MessageListContext.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/NotificationController.java
ndroid/email/Preferences.java
ndroid/email/RecipientAdapter.java
ndroid/email/RefreshManager.java
ndroid/email/SecurityPolicy.java
ndroid/email/SingleRunningTask.java
ndroid/email/Throttle.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/AddressTextView.java
ndroid/email/activity/AttachmentInfoDialog.java
ndroid/email/activity/BannerController.java
ndroid/email/activity/ChipsAddressTextView.java
ndroid/email/activity/DeleteMessageConfirmationDialog.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/FragmentInstallable.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MessageCommandButtonView.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/NfcHandler.java
ndroid/email/activity/RecentMailboxManager.java
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/activity/ThreePaneLayout.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/UiUtilities.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/activity/setup/MailboxSettings.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/data/ThrottlingCursorLoader.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/ServiceStore.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/EasAuthenticatorServiceAlternate.java
ndroid/email/service/EasTestAuthenticatorService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/MailService.java
ndroid/email/service/PolicyService.java
ndroid/email/service/PopImapAuthenticatorService.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/email/view/NonLockingScrollView.java
ndroid/email/view/RigidWebView.java
ndroid/email/view/SizeBoundingFrameLayout.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/EmailWidgetLoader.java
ndroid/email/widget/WidgetConfiguration.java
ndroid/email/widget/WidgetManager.java
d658fb6cac242e793df7e8269d9e96518392cb5e 27-Apr-2012 Paul Westbrook <pwestbro@google.com> Set clear_when_task_reset flag on get content intent

Bug: 6401627
Change-Id: I546d51e605bf9483bd36f56adf5b21c1b3cd4c70
ndroid/email/activity/MessageCompose.java
65432baf25d06b58a9b50d3df9952c4eedc9b8a5 27-Apr-2012 Paul Westbrook <pwestbro@google.com> set FLAG_ACTIVITY_TASK_ON_HOME on notification intent

Bug: 6384825
Change-Id: I9fc577ab3acdc608ce6e1781d438cc049c6ddcd6
ndroid/email/NotificationController.java
03cd72805dab0379ed255d151f1c17cc60655fc3 25-Apr-2012 Marc Blank <mblank@google.com> Revert to old Email app

* These are the last sources in the ICS-MR1 tree

Change-Id: Ida4651bddd92a06a518d00f3e1f275ab3a80c8ae
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/Email.java
ndroid/email/GroupMessagingListener.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/NotificationController.java
ndroid/email/RecipientAdapter.java
ndroid/email/RefreshManager.java
ndroid/email/SecurityPolicy.java
ndroid/email/SingleRunningTask.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/RecentMailboxManager.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
ndroid/email/activity/setup/EmailPreferenceFragment.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/activity/setup/PolicyListPreference.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/Utilities.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/MailService.java
ndroid/email/service/PolicyService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/PopImapSyncAdapterService.java
05ba9724087aa032c120cfba64ff1a997a9cba7f 06-Apr-2012 Paul Westbrook <pwestbro@google.com> Move settings into account

Change-Id: I0e791ead6c54af96afbfdf1d38457fb2fb41c4dc
ndroid/email/provider/EmailProvider.java
6f627965d00bbe137f848cf6593556ce66a53372 21-Mar-2012 Paul Westbrook <pwestbro@google.com> Removed some UI provider code from EmailProvider

Leaving this in was breaking the build, as new files were required.

This change is just to keep this version of Email building.
Eventuually Email2 will replace this one.

Change-Id: I96fbed63a18a11bcdc64c2f0bbe8b100fdb273d9
ndroid/email/provider/EmailProvider.java
e7dc6a34d481e509021432d501585dd30fa7cd01 16-Mar-2012 Vikram Aggarwal <viki@google.com> AutoAdvance.OLDER always

Change-Id: Ifaf1ab14db0a3415d91b910b726bf9c8e0fec1ea
ndroid/email/provider/EmailProvider.java
05b99a0d8cbf6e9eab0b12e596e9afbff4cec9d4 16-Mar-2012 Vikram Aggarwal <viki@google.com> AutoAdvance.LIST is safer than AutoAdvance.NEWER

Change-Id: I72ba37cb8a7259c13afcfaabb70a11d65f536b69
ndroid/email/provider/EmailProvider.java
a7d788d54a602bfdfd4111b1de119404101a3ef4 14-Mar-2012 Mindy Pereira <mindyp@google.com> Fix build.

Change-Id: I077de029e1da06e3dcd6dae438a6c64b58e9e127
ndroid/email/provider/EmailProvider.java
4bf4edcf64c0b1cb8aabfb2e16ec29f4b19921d2 13-Mar-2012 Mindy Pereira <mindyp@google.com> Send uri of folder this item is in instead of just the id.

Change-Id: I5b7ba10497ac2f5081de02074d525e39d73ba9b0
ndroid/email/provider/EmailProvider.java
1d202e274d4c4f83d01c83abc909e1e331cd7df6 13-Mar-2012 Paul Westbrook <pwestbro@google.com> Support new folder id

Change-Id: If971ca60e5029487dd1c12b4664c6b64f3133f4a
ndroid/email/provider/EmailProvider.java
ebbf8e1040ef9742e3ea20b3e3c6b07a08812b58 13-Mar-2012 Marc Blank <mblank@google.com> Merge "Add support for "Load more" for search results"
6550ae97731282e2427c3130c4ea316dfce5538b 13-Mar-2012 Marc Blank <mblank@google.com> Add support for "Load more" for search results

Change-Id: Ie16e11ced34c85de02980c85e2db9d61faed5b6f
ndroid/email/provider/EmailProvider.java
dd32d141878d0e1018f2f0b8b02b34208e81ff1c 10-Mar-2012 Andy Huang <ath@google.com> cross-project refactoring

Attachment.mimeType -> contentType
Attachment.contentUri(String) -> contentUri(Uri)

Change-Id: Id35fb698d120013c00878f416f9b68a2f0095fca
ndroid/email/provider/EmailProvider.java
34943d241d189b80d2f825f7577c7e8e509901c4 12-Mar-2012 Marc Blank <mblank@google.com> Trigger load of full msg when opening partially loaded msg

Change-Id: Ia49aa7f423ceac6697d95abf66e10bb5998c5747
ndroid/email/provider/EmailProvider.java
824f7763653cd9c15f400301de53f5023ae37762 12-Mar-2012 Marc Blank <mblank@google.com> Fix up load of IMAP attachments

Change-Id: I2f55fc2c3d92eff72ebfd50ff3f782928f3a85a2
ndroid/email/LegacyConversions.java
ndroid/email/service/EmailServiceStub.java
e2166f75486da0a1b70b804ea34f11f600f11cfd 11-Mar-2012 Marc Blank <mblank@google.com> Add totalCount to Mailbox; send to UIProvider

Change-Id: If01868eb27a97540683f25148f32b8c41ae59c17
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
9e266d12fb5f09fb309b60f2d1eaaa4a1a0a4a8e 11-Mar-2012 Marc Blank <mblank@google.com> Implement "load more" for POP/IMAP

* Search not yet implemented

Change-Id: Ic808d3adcb48a2b4370fda77d7b108ea656de5c4
ndroid/email/provider/EmailProvider.java
25fe72687df8fd3aa4d7dc81054cbf9f2be7f1f3 10-Mar-2012 Marc Blank <mblank@google.com> Notify on attachment's message when updates occur

Change-Id: I23d537992fbf8b0f0dab3afaf37cacfd5587d1f3
ndroid/email/provider/EmailProvider.java
55d0e821eaecb5e454812a30c1137dbc95db98e2 09-Mar-2012 Marc Blank <mblank@google.com> Report search result total to UI

Change-Id: Ic88e7594b98548a96c8c6f96d2f8a585e539f520
ndroid/email/provider/EmailProvider.java
ebb79619e8ed3c9f0c051e7f323e3971bce7508d 09-Mar-2012 Marc Blank <mblank@google.com> Move account delete logic to EmailProvider

* This functionality had to move away from Controller

Change-Id: I557918a325eab8c83a9728fa1ce33dde8b86158f
ndroid/email/Controller.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/provider/EmailProvider.java
ab6321e2c470596b9d8e4f97a23160788d917590 09-Mar-2012 Marc Blank <mblank@google.com> Fix SMTP sending

Bug: 6134036
Change-Id: Id48e4bd17e7493d873d888027e68c7eb86d23198
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/PopImapSyncAdapterService.java
3408ad11132d8fffc9cc3aa51f67406096499aae 09-Mar-2012 Marc Blank <mblank@google.com> Use proper column in loadAttachmentCallback

Bug: 6138389

Change-Id: Icd9b3454670d29e1fbd1dfc309700eb1643cc9ee
ndroid/email/service/AttachmentDownloadService.java
97e4651c454fbab5e81853d78ca8463e1a34352d 09-Mar-2012 Marc Blank <mblank@google.com> Repair brain damage

Change-Id: I1f2367476f78c5cd78d8a59e099debabceb95e3a
ndroid/email/service/AttachmentDownloadService.java
c3643cf2b561a345040645951cb107bb7daf01a9 09-Mar-2012 Marc Blank <mblank@google.com> Fix search to work with IMAP

Change-Id: Ic3d9dfec0e30323e258e59630c2ca42bb1c7e98c
ndroid/email/provider/EmailProvider.java
26195ef64d9588b1d5f42ee93913bb1222ed9641 08-Mar-2012 Marc Blank <mblank@google.com> Handle searchUri (first pass)

Change-Id: I75f7a757322e1d4f9b4eac92b9ecbb6a0cc6580b
ndroid/email/provider/EmailProvider.java
06a382f26fe80931359dba4872a2563e6a8e5732 08-Mar-2012 Marc Blank <mblank@google.com> Fix up delete to handle trash/drafts deletions

* Also, while we're here, create default "last touched time" for drafts and
sent so that they appear in the initial recent list

Change-Id: Ie2fe20b34625b5616dac5581f9bbd015f52a82bc
ndroid/email/provider/EmailProvider.java
92f9de3c5c550696d50f801e40f5b2692d0a4732 08-Mar-2012 Marc Blank <mblank@google.com> Merge "Return searchUri with accounts; return empty cursor for now"
ef94d9285ea58e3db47871cd73b0e9270c673021 08-Mar-2012 Marc Blank <mblank@google.com> Return searchUri with accounts; return empty cursor for now

Change-Id: I160676a492ef359007676c3aa9f56f9015b64c64
ndroid/email/provider/EmailProvider.java
6b4cdee94f415aeacdc35a2d9751a26f4153a10b 08-Mar-2012 Brian Muramatsu <btmura@android.com> am 938ec79a: am d163332b: am d5fdf404: Merge "Fix STARTTLS handshake error in Email\'s SmtpSender class"

* commit '938ec79ac92ef9119ad75b49691b2121886d867b':
Fix STARTTLS handshake error in Email's SmtpSender class
420e97f0f82afe0db64c3651eaf3cb15e149ba01 07-Mar-2012 Marc Blank <mblank@google.com> Support attachment commands from UIProvider

Change-Id: Ib457808bdb424275c0abe6e1d86e3b9d33406780
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
70bbe5ec3cabfc711cf4486318a04bb18e34ebf3 07-Mar-2012 Marc Blank <mblank@google.com> Add columns to Attachment for UIProvider use

Change-Id: I7f85431f409dbd6a5bd6d111b18d1fc89c00b9b2
ndroid/email/provider/DBHelper.java
b4a4ca99a9bd5aa357cdbc8530e3b3d861af9197 07-Mar-2012 Andy Huang <ath@google.com> Attachment SYNCED column is going away

Change-Id: I19476bc5a9a9e557e61a7347689129ce552b3ff9
ndroid/email/provider/EmailProvider.java
af8f8a48ee8a974862802a39a001390937a3cfb7 07-Mar-2012 Marc Blank <mblank@google.com> Reconcile accounts in deleteAccountPIMData

Change-Id: Ifd17ef76e13ddcfa07c84429dca7bf19e6cbcfab
ndroid/email/service/EmailServiceStub.java
d163332bc58cb1b2f09fd061e51e50ecbc40eb73 07-Mar-2012 Brian Muramatsu <btmura@android.com> am d5fdf404: Merge "Fix STARTTLS handshake error in Email\'s SmtpSender class"

* commit 'd5fdf40490033bbafbd946e92094b18e931c1a76':
Fix STARTTLS handshake error in Email's SmtpSender class
71b57354c1e9df99d121a6725358311b3450c859 06-Mar-2012 Mindy Pereira <mindyp@google.com> Listen for application/email-ls so we can distinguish between email2/gmail2.

Change-Id: I1b30738b0d8a3f6830dfc6d67b6db385771bba15
ndroid/email/provider/EmailProvider.java
6ae4b080d498fbf8b9c750ea4289ddd15908f1f1 06-Mar-2012 Mindy Pereira <mindyp@google.com> Set compose to email2 until we get rid of the email app.

Email2 supports the compose intent.

Change-Id: I739ccb95b63806ed46dfa74b721b5a43665aa1c4
ndroid/email/provider/EmailProvider.java
27282ed34ae1a7f636bd5d85b859e38ee692b5bd 06-Mar-2012 Paul Westbrook <pwestbro@google.com> Change the authority for Email2's account cache provider

Allow the account cache cursor to have the notification uri set

Change-Id: I8b01ada0b787fe7a709ad7feacacb91acc3da826
ndroid/email/provider/EmailProvider.java
bc7f451442d008e4b3c8e1d28546f1831c7f9d7e 03-Mar-2012 Marc Blank <mblank@google.com> Fix IMAP/POP notifications

* Make sure the default Inbox is always notified
* Use correct "new" count for mailbox

Change-Id: Id66c76e415589f6eb6fdad0649ae039fd45c1205
ndroid/email/NotificationController.java
ndroid/email/provider/EmailProvider.java
258ab6ee842d619588b0f5f3ab48efe74de10b0f 02-Mar-2012 Marc Blank <mblank@google.com> Prevent NPE in AccountCheckSettings

Bug: 5911793
Change-Id: I2834ab6d139e734baed6790098f0405e6a4e957a
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
e1a6088ee4e3f0e4344dd9bc38029b6d01431eab 02-Mar-2012 Marc Blank <mblank@google.com> Don't try to refresh combined inbox

Bug: 6022440
Change-Id: I182c0da80debff5579b850c20015253864a0cf9f
ndroid/email/Controller.java
ndroid/email/service/EmailServiceUtils.java
eccf7ee9a4c4b9bf78af9a679827542ec5c42161 01-Mar-2012 Marc Blank <mblank@google.com> Hook up attachment queries; use more specific notifications

Change-Id: I01198b9ddf63e1edd9a35a81c15e0cf791702184
ndroid/email/provider/EmailProvider.java
ceedaa3c546bd84eccc9c44eff2f1bc09d61ec8a 01-Mar-2012 Marc Blank <mblank@google.com> Fix settingsQueryUri

Change-Id: I519f9e52ebe6a2eeeed78913e0f2b0c01539161e
ndroid/email/provider/EmailProvider.java
d5187106d1b0e0e387bc020e1d8e1c4aab8ed3ef 01-Mar-2012 Marc Blank <mblank@google.com> Handle account settings query in EmailProvider

Change-Id: Iae33b00c3fa17fe381c0c66d9e159a2717e0f201
ndroid/email/provider/EmailProvider.java
c7a10613b321cfa136f64ae80a68fdb75f921f14 01-Mar-2012 Marc Blank <mblank@google.com> Clean up updated messages in non-syncing mailboxes

* We'll just delete the updates for that mailbox

Change-Id: I6eec384334c9b1ea42ec064a49f938c772c44489
ndroid/email/service/PopImapSyncAdapterService.java
c31e2555bf84a1f923fa98359ebc08447bf6905b 29-Feb-2012 Misha Nasledov <misha@nasledov.com> Fix STARTTLS handshake error in Email's SmtpSender class

The Email.apk checks for "-STARTTLS" in the SMTP server's EHLO response
but SMTP servers may respond with STARTTLS on the last line as such:

250 STARTTLS

Or even as part of a line as such:

250-XSECURITY=NONE,STARTTLS

Checking for "-STARTTLS" in this case will break. The fix is to simply check
for "STARTTLS" instead.

See http://code.google.com/p/android/issues/detail?id=19109
And http://code.google.com/p/android/issues/detail?id=2309

Change-Id: I3a590a4398cb664f46875650550986a67f320f76
ndroid/email/mail/transport/SmtpSender.java
108f7b639a78ba772dcdc2747e480935bb5c052a 29-Feb-2012 Paul Westbrook <pwestbro@google.com> Support the always_show_images column

Change-Id: I4817ca936cc2775cd22b878d17045e0ede0af04d
ndroid/email/provider/EmailProvider.java
27be3474a2a6df6d5f1eec3c63d6937c92559a86 28-Feb-2012 Marc Blank <mblank@google.com> Actually put composeUri into the cursor; d'oh!

Change-Id: I1295bb7501c3481f0d5e21e7cc76c1b19ab3047d
ndroid/email/provider/EmailProvider.java
d9201da55bd57032651ba84207cf95c938d2123d 28-Feb-2012 Marc Blank <mblank@google.com> Setup composeUri for accounts in EmailProvider

* Add intent filter in manifest

Change-Id: Ifbacfcb6109d76d48dabb87eb45ea28ec4278ad8
ndroid/email/provider/EmailProvider.java
8c4b6e40cf0d258cb15a032cfa3d45e17c21b305 28-Feb-2012 Marc Blank <mblank@google.com> Hook up settingsIntentUri in EmailProvider

Change-Id: Icc47a7dd29f6707443f5b56bdc6df86818295662
ndroid/email/provider/EmailProvider.java
fd077592ee06b27ad70281f05a6239d9c943b52f 27-Feb-2012 Marc Blank <mblank@google.com> Use EmailProvider to create account list

Change-Id: Iedd99ecb95066c3b7e089e3b987a0caed44b97e5
ndroid/email/provider/EmailProvider.java
9a5e2a798e11b666670281d64c1039483ad60546 26-Feb-2012 Marc Blank <mblank@google.com> Fix clearing of mailbox notifications

Change-Id: Ieb98a8908ec067229dd449790da55085585ef17b
ndroid/email/NotificationController.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/provider/EmailProvider.java
bf5caf97c547c8fa4bbdc2b500e8d43ee6322fcf 24-Feb-2012 Marc Blank <mblank@google.com> Notify by mailbox, rather than account

* Update EmailProvider, removing two no-longer-used columns in Account and
Mailbox

Change-Id: Ie0f10eb0ca315d73e82be968f7760a51a239ba3f
ndroid/email/NotificationController.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
98412cadfb8d8a9ff1f09cf0d4a73a636e478818 24-Feb-2012 Marc Blank <mblank@google.com> Use account id instead of name for queries

Change-Id: I49f870491d2b090df345b956280dbb477436be60
ndroid/email/provider/EmailProvider.java
99dfd1edfd0151a1aa608d96f26a605d972a8a95 23-Feb-2012 Mindy Pereira <mindyp@google.com> Merge "Remove folder sync_frequency column. UI doesn't need it."
b61bd298bd24f33a70d17e3936927a39e69fa960 23-Feb-2012 Mindy Pereira <mindyp@google.com> Remove folder sync_frequency column. UI doesn't need it.

Change-Id: I2a696115aed048f854174a8c4dc7666165b6ae1f
ndroid/email/provider/EmailProvider.java
87c84a6d96a360b2310f44ff4ae2e181c7a4479a 23-Feb-2012 Marc Blank <mblank@google.com> Send sync status updates from POP3/IMAP

Change-Id: Ia1bb5d1a302d6dde8b8979e03a762d6d45ee8cd3
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/PopImapSyncAdapterService.java
6b9d94bf397757b5f6654d0a0c56f562ad62a5b2 22-Feb-2012 Marc Blank <mblank@google.com> Make mailbox change notifier less noisy

Change-Id: I6eb7ac4f60acf6d92f4c094a373038fef222d97a
ndroid/email/provider/EmailProvider.java
1dc7772d4313bec45af4a4d7609bc36f6e3a247b 22-Feb-2012 Marc Blank <mblank@google.com> Support syncStatus and lastSyncResult in EmailProvider

* Also, trigger a sync on refreshUri

Change-Id: Ia8dee593decfc2101873071ad64fcc3fd1fd5f23
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
7db23e6acb1dbfd04a4a544de7754bc587265c4b 22-Feb-2012 Marc Blank <mblank@google.com> Fix build break; support folder query

Change-Id: Ic2a62e2d00e0fe46a1a488d665818c47243c9d8d
ndroid/email/provider/EmailProvider.java
9227dbbf0f1c467762c44119d7cb1140c7191a88 19-Feb-2012 Marc Blank <mblank@google.com> Add back attachment loading callbacks for IMAP

* Remove newly unused code

Change-Id: Ifea2193deaf35734a031500c807ce9e3abd88fb1
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/GroupMessagingListener.java
ndroid/email/RefreshManager.java
ndroid/email/activity/EmailActivity.java
ndroid/email/service/EmailServiceStub.java
59e10b6b3dbc14884b032b1843413b08adaaf288 18-Feb-2012 Marc Blank <mblank@google.com> Support folderUri and statusUri in EmailProvider

* Implementation of status to be completed later

Change-Id: I9dc2b1144b8186341f1c032906145f3d899b2a0b
ndroid/email/provider/EmailProvider.java
078daa692e09a0b94bb7e38b538bd58321b6591d 17-Feb-2012 Marc Blank <mblank@google.com> Hook up "load more messages" to service implementation

Change-Id: I15b102bacb4a68c3c006d1b3c1feffb7f14a8697
ndroid/email/Controller.java
7ac38af790f272a92d18dc858d0e0bba124849be 17-Feb-2012 Marc Blank <mblank@google.com> Re-attach mailbox sync callbacks and refresh status

Change-Id: I45de04f59f83757186f30d6ff53395a639a1d740
ndroid/email/Controller.java
ndroid/email/RefreshManager.java
ndroid/email/service/ImapService.java
ndroid/email/service/Pop3Service.java
0e5b4d35dd2b8f3d855aea63192ca6ff43a26132 16-Feb-2012 Marc Blank <mblank@google.com> Fix build break

Change-Id: Ib9725587f32b8d8a6e64e9ee083d0b4e980b7e05
ndroid/email/Controller.java
4f813fb12937de74d3ccec730b8de0c9de7a87e0 14-Feb-2012 Marc Blank <mblank@google.com> Convert POP3 to service

* Remove MessagingController and (almost all of) MailService

Change-Id: I8953b58b237de6a71fda770f1727bd94081fec55
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/provider/Utilities.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceStub.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/MailService.java
ndroid/email/service/Pop3Service.java
ndroid/email/service/PopImapSyncAdapterService.java
d57e096b2cf9c85a3c2df733f92e7f8b2d26402a 15-Feb-2012 Marc Blank <mblank@google.com> This time for sure!

Change-Id: I98a0a8dcc37f52ac29d87379a886c9ca966e923c
ndroid/email/provider/EmailProvider.java
abad2efba849d1c590581767c704deb412c748cd 15-Feb-2012 Marc Blank <mblank@google.com> Oops! Handle subfolders query.

Change-Id: I62628fb8bdb25b96f023788271508d65fd8b4cdd
ndroid/email/provider/EmailProvider.java
1e138516eb980352af8ce70338bee4823b2adbc7 15-Feb-2012 Marc Blank <mblank@google.com> Handle query for subfolders from UIProvider

Change-Id: Ic448324a5a87b6679978426ec639fe4c3d8d77d7
ndroid/email/provider/EmailProvider.java
c0272961e1afff760191f8f6e0ebbed132d9cb0a 15-Feb-2012 Marc Blank <mblank@google.com> Return only top-level email folders for uiFolders query

Change-Id: I9480f8263ded7d1eb3eaecc92564130b498a558d
ndroid/email/provider/EmailProvider.java
c84467afe1b5e0a657ed7d6a9fa1e3fe1ff259a0 09-Feb-2012 Marc Blank <mblank@google.com> Start of IMAP conversion to Service architecture

* Handle startSync and loadMore
* Use SyncManager rather than MailService for periodic sync
and upload sync
* First of many CL's to disentangle sync from UI
* Note that the large majority of this CL is a refactoring
of IMAP specific code out of MessagingController and into
ImapService; MessagingController will eventually be
removed entirely from the app, as will much of Controller

Change-Id: I13546d0694479b33cf93c25920dedc1d38227f6c
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/RefreshManager.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceUtils.java
ndroid/email/service/ImapService.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapSyncAdapterService.java
69d952c3debabf44fce642d95c04a3248480e33a 13-Feb-2012 Marc Blank <mblank@google.com> Add folder list to conversation list fields in query

Change-Id: Ieea84693196796175a1bdea8ecd3dbdf4a229c66
ndroid/email/provider/EmailProvider.java
1e162747761e644cc2368c7c0f2108902bcb0f11 04-Feb-2012 Marc Blank <mblank@google.com> Set the CAN_ACCEPT_MOVED_MESSAGES capability as appropriate

Change-Id: Ifa6e098352afb5feaa277ed0614628eb1765992f
ndroid/email/provider/EmailProvider.java
83dae570ed7decef4e0be46a0f88cfee142b993f 04-Feb-2012 Marc Blank <mblank@google.com> Handle undo for "move to folder"

Change-Id: Ie3847fe4919fc49411b8465e2600f85efb174d0a
ndroid/email/provider/EmailProvider.java
e2488c3f02b95c3b7857a9260b6a86911969fede 03-Feb-2012 Marc Blank <mblank@google.com> Handle move-to-folder from UI

Change-Id: I2165b9f83459c0b8f8817108dc294c7882730df8
ndroid/email/provider/EmailProvider.java
63d60d9eb182d583d08e6d4b6dc11b392dede6f1 03-Feb-2012 Marc Blank <mblank@google.com> Split EmailProvider into two classes (and about time)

Change-Id: Ia72e8c83ea16718077ffe8b8d284d18b6f9f0786
ndroid/email/provider/DBHelper.java
ndroid/email/provider/EmailProvider.java
87d7a604172d0e15454e8b615b163377e67050c1 02-Feb-2012 Marc Blank <mblank@google.com> Handle update of draft

Change-Id: I15c2b2b85afeff19e4ae7520c36a6119ab1e5cca
ndroid/email/provider/EmailProvider.java
3a8291b3e02de754da4886ba40fdd0cd0fe54ad2 02-Feb-2012 Marc Blank <mblank@google.com> Oops; generating bad URI for save message!

Change-Id: Iaf10108dee202c23abc6a18b9e5e8673c4813d0f
ndroid/email/provider/EmailProvider.java
12142f430ebbc81f29ac17da5944786c4c1eee4c 02-Feb-2012 Marc Blank <mblank@google.com> Support save/update draft and change of convo URI usage

* For now, update not working (it's complicated)

Change-Id: I9df440338ac167f03ce4f2f4b36ad286adad318e
ndroid/email/provider/EmailProvider.java
5adc6c0be9193632673dc66c8d220776972adfa4 01-Feb-2012 Marc Blank <mblank@google.com> Support undo for message deletes

Change-Id: I55d8950ca782babc00b28ced7c4d23042882b05e
ndroid/email/provider/EmailProvider.java
9c440c8b8078a47d340647ea86062c1446ffb579 26-Jan-2012 Marc Blank <mblank@google.com> am 17c089fb: am ecaa9774: If we\'re stopped, make sure watchdog alarm is also stopped

* commit '17c089fb7b02bbe755a47f917f92394df6cbef03':
If we're stopped, make sure watchdog alarm is also stopped
17c089fb7b02bbe755a47f917f92394df6cbef03 26-Jan-2012 Marc Blank <mblank@google.com> am ecaa9774: If we\'re stopped, make sure watchdog alarm is also stopped

* commit 'ecaa97741332e506afade647402896993ba64fba':
If we're stopped, make sure watchdog alarm is also stopped
ecaa97741332e506afade647402896993ba64fba 25-Jan-2012 Marc Blank <mblank@google.com> If we're stopped, make sure watchdog alarm is also stopped

Bug: 5647625
Change-Id: I33e94107f2d6e4a38a5a221df72ed83596ca7c54
ndroid/email/service/AttachmentDownloadService.java
5520221f60e6ef2739a1898e24e0ef9d26a2c94f 24-Jan-2012 Marc Blank <mblank@google.com> Handle insert instead of update for "send mail"

* Return proper Uri from insert

Change-Id: I5439fff9872a14c63504a17a2bfef34ff19f99c6
ndroid/email/provider/EmailProvider.java
7f667159c9ecf44fe7f3da8741e537a6d20f5c60 24-Jan-2012 Marc Blank <mblank@google.com> Merge "Handle convo read/starred/deleted"
5e392205dcbb4e45529fba93dfde7e4103871474 19-Jan-2012 Marc Blank <mblank@google.com> Handle convo read/starred/deleted

* Send UIProvider notification when changes are made by sync engine

Change-Id: I3076c739b13b40e931277f1b5ac08447c814ff6f
ndroid/email/provider/EmailProvider.java
d16fa893d1a24497147fd91b32698ff7bf695600 20-Jan-2012 Andy McFadden <fadden@android.com> Use Map.Entry, not HashMap.Entry

Map.Entry is the defined return value from entrySet(). HashMap.Entry
shouldn't be used directly.

Change-Id: I855f7a4e855776deb83754ca89c2a4128e9e04a2
ndroid/email/provider/ContentCache.java
c8afa2f5cbdcc9b3c59d93e9a8ab1bc1e75dd91f 18-Jan-2012 Marc Blank <mblank@google.com> Send attachments w/ UnifiedEmail outgoing mail

Change-Id: I471816dcaac1ab53aea1465dd69ae4453a1a0268
ndroid/email/provider/EmailProvider.java
1d3f98c5229d0cb9f270a1601b71b8d887cf5416 17-Jan-2012 Marc Blank <mblank@google.com> Merge "Store UI-friendly addresses in EmailProvider database"
36ed276f7a97529d5ffdd42d4e9a89ce14d8a2f9 17-Jan-2012 Marc Blank <mblank@google.com> Store UI-friendly addresses in EmailProvider database

* Currently, we store a generally incompatible packed string format
for to, from, bcc, cc, and reply-to columns
* Change this to UI-compatible, comma-separated RFC822 strings
* Upgrade database to use new format

Change-Id: I42c01d72b49531c4324d3956edf5ff362d5c9120
ndroid/email/provider/EmailProvider.java
ce1791abf3326c50da41ab3631738ff28e9a1a54 13-Jan-2012 Mindy Pereira <mindyp@google.com> Update to new message column names.

Change-Id: Ie24fc8e0529ff363dc8bf7a5f6522b601560b91a
ndroid/email/provider/EmailProvider.java
6605115ec4bd02f9adf190e0b390ceed783bde5b 14-Jan-2012 Marc Blank <mblank@google.com> Set notify uri for queries; trigger notify on message inserts

Change-Id: I9fdf2f83670ec72937deebe352e962632f37b519
ndroid/email/provider/EmailProvider.java
788d52d831cbc5ec0288655bee2cfe2d0616a1b1 12-Jan-2012 Marc Blank <mblank@google.com> Send new columns for message header; real data for msg counts

Change-Id: I88f560beafdf8cf9194664a63cf74436be281056
ndroid/email/provider/EmailProvider.java
bb760d73f08041f2f2e813054a02698b3ea17960 13-Jan-2012 Marc Blank <mblank@google.com> Sort message (conversation) list properly

Change-Id: Id208890abf4c646fe8eba01bbfe22de35c610e3c
ndroid/email/provider/EmailProvider.java
bdf32afa644f566e8be90048ed631e0e70332ac5 13-Jan-2012 Marc Blank <mblank@google.com> Hook up primitive email sending to UIProvider

Change-Id: I5fe949c3cdf3d04514976d029d966caa912ec5be
ndroid/email/provider/EmailProvider.java
96d0323cfa841361f5a53ef96a66fad9155a5c8b 13-Jan-2012 Andy Huang <ath@google.com> remove CLIENT_CREATED usage

Change-Id: Icb102ef554e9e945bdf4866d0038892556fcf739
ndroid/email/provider/EmailProvider.java
ca6f713e71ce3734bc688b9821fc6838b5d70de1 12-Jan-2012 Marc Blank <mblank@google.com> Oops; fix order of TABLE_NAMES

Change-Id: I994b31c05c640f61444ae3d66c5b94e1d147e698
ndroid/email/provider/EmailProvider.java
e9e865345eb5f586e3f972db8c3c714fb6bb5aad 12-Jan-2012 Mindy Pereira <mindyp@google.com> Set c to the result of the query.

Change-Id: I5b8c935aedcdd86d756ee7de70088f2c8db179d5
ndroid/email/provider/EmailProvider.java
0c550c343fecaec3e04fba274d1ac08bd722d311 12-Jan-2012 Marc Blank <mblank@google.com> Return "0" for unknown columns in UIProvider queries

* For now, let's avoid exceptions

Change-Id: I5758f3aefb458c00fd3fc1865e63df92e9ba1650
ndroid/email/provider/EmailProvider.java
3594ac81469c55c1ee6ee4594c2ca52942a7c354 12-Jan-2012 Marc Blank <mblank@google.com> Implement initial UIProvider operations (UnifiedEmail)

* Add support for folder list, conversation list, and message view
queries
* Open up EmailProvider (temporarily) to allow access from
UnifiedEmail (signatures don't currently match)
* Modify make file so that we can reference definitions in
UIProvider

Change-Id: If73c59aa9edfdac5619ff2c6b9cedfdfe4e93d6f
ndroid/email/provider/EmailProvider.java
75987dbe0ca7609bf4f11f2d7edfe4bcd70a4fe5 10-Jan-2012 Paul Westbrook <pwestbro@google.com> am 17d522b5: am 07676012: Fix widget updates

* commit '17d522b51c9aa564e1989095e0264264642c2432':
Fix widget updates
17d522b51c9aa564e1989095e0264264642c2432 10-Jan-2012 Paul Westbrook <pwestbro@google.com> am 07676012: Fix widget updates

* commit '07676012f7e4060faa0d23dc6068e9dcdd4a4106':
Fix widget updates
07676012f7e4060faa0d23dc6068e9dcdd4a4106 09-Jan-2012 Paul Westbrook <pwestbro@google.com> Fix widget updates

Fix widgets that stop updating. If the Launcher got killed, the Email
widget service gets unbound. When this happens the cursor loader for the
widget is stopped. Since widget is relying on the loader to update the data,
when the loader is stopped, the widget would never update.

Now when email recognizes a change, it will send a broadcast intent, which
will cause the widget service to be started, if it isn't.

Bug: 5811810
Change-Id: Ia840e58f10e780b94440119662c2e48e7785c507
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
ndroid/email/widget/EmailWidget.java
93bc609c9e2d02b6a0ae8a6f6cf8489336aeb135 04-Jan-2012 Marc Blank <mblank@google.com> am 9b4240f7: DO NOT MERGE: Handle UI part of email lookback limit

* commit '9b4240f7c5647c2952b050bb74f18eba274f51f8':
DO NOT MERGE: Handle UI part of email lookback limit
9b4240f7c5647c2952b050bb74f18eba274f51f8 21-Dec-2011 Marc Blank <mblank@google.com> DO NOT MERGE: Handle UI part of email lookback limit

Bug: 5792217
Change-Id: Iccd6b1db30e8fb1fbdb514ed2de6d1e789a6280a
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/MailboxSettings.java
d85413e946d19d11a53136780bf1ee255665f371 22-Dec-2011 Marc Blank <mblank@google.com> Merge "Handle UI part of enforcing email lookback limit"
919e59044b5c6a3d3947af05ddf241f51f65def4 21-Dec-2011 Marc Blank <mblank@google.com> Handle UI part of enforcing email lookback limit

Bug: 5792217
Change-Id: I4351ae4d8505965a32690ecb5e6338765fb3770f
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/MailboxSettings.java
e3def6c9c4294e9f537d499911b792c89bec2b3c 20-Dec-2011 Conley Owens <cco3@android.com> Make TAG field package-private in several classes

Specifically, several internal classes.

This makes a little more sense since they are accessed outside of the
class that they are defined in.

In addition, this fixes errors created by proguard when building with
OpenJDK.

Change-Id: If2e2f90558e04e777a0c4dbc2ccd1f6c46dd8228
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
58ce2d0c3a1d693825eb3a8cb9c4ea8ea32d6d65 20-Dec-2011 Conley Owens <cco3@android.com> Make TAG field package-private in several classes

Specifically, several internal classes.

This makes a little more sense since they are accessed outside of the
class that they are defined in.

In addition, this fixes errors created by proguard when building with
OpenJDK.

Change-Id: If2e2f90558e04e777a0c4dbc2ccd1f6c46dd8228
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
d5109cf7f08a76efca11e81dfb5f08fcf54c4233 15-Dec-2011 Mindy Pereira <mindyp@google.com> Use static library resources from chips.

Change-Id: I4261004dda1bd106d0c0ad0aec8348920ffd8c7e
ndroid/email/RecipientAdapter.java
6d7eef22cd2634bd0da8de8e38635dd92b3e5a48 08-Dec-2011 Mindy Pereira <mindyp@google.com> DO NOT MERGE. Fix issue where back stack is not cleared when opening email from a notification.

Fixes b/5716835 back stack in email gets messed up in certain circumstances

Change-Id: I499a1c19f1ebbb7e4debde690cacf17f9f6c3454
ndroid/email/NotificationController.java
2df61456f4aef692316acbb39b69de4c78a9f8bb 08-Dec-2011 Mindy Pereira <mindyp@google.com> Clear back stack and make this the top level stack.

Fixes b/5716835 back stack in email gets messed up in certain circumstances

Change-Id: I6fb593a520931b16e973f025c00709f7e76bb4d9
ndroid/email/NotificationController.java
a7d1b5c58ce52ed63a935d07d46906a78632ceb6 08-Dec-2011 Andy Huang <ath@google.com> Fix various text size problems when system font size is huge

This CL to replace Iafd5d1dc.

* use common styles for spinner anchor and dropdown text
(introduced in I3063cfea)
* allow dropdown item height to scale beyond fixed height to fit
huge text

Other fixes:
* use Gmail's color for dropdown and folder list header text
* remove spurious divider in dropdown items that precede a
header

Bug: 5687252
Change-Id: I3e46cff736a045c4a59a0ff8810977e39f903a14
ndroid/email/activity/AccountSelectorAdapter.java
970e9b70db30e0cb00e101bfb4f346ec8e0bf82e 08-Dec-2011 Mindy Pereira <mindyp@google.com> Merge "Revert "Fix various text size problems when system font size is huge""
c75638981761bfc9cb1c042bdd3dcc4d66e17eb9 08-Dec-2011 Mindy Pereira <mindyp@google.com> Revert "Fix various text size problems when system font size is huge"

This reverts commit 19bc1921f2e15bebbde2b4172f94e9d226ab2845
ndroid/email/activity/AccountSelectorAdapter.java
d8296ff4f2137c1e72324760afc93517350450c2 08-Dec-2011 Vikram Aggarwal <viki@google.com> Merge "Fix various text size problems when system font size is huge"
19bc1921f2e15bebbde2b4172f94e9d226ab2845 08-Dec-2011 Andy Huang <ath@google.com> Fix various text size problems when system font size is huge

* use common styles for spinner anchor and dropdown text
(introduced in I3063cfea)
* allow dropdown item height to scale beyond fixed height to fit
huge text

Other fixes:
* use Gmail's color for dropdown and folder list header text
* remove spurious divider in dropdown items that precede a
header

Bug: 5687252
Change-Id: Iafd5d1dc7c3809393c3892138b42b7274fb03a27
ndroid/email/activity/AccountSelectorAdapter.java
4c49b4a2205da555c93e7d506af0d71218690039 08-Dec-2011 Marc Blank <mblank@google.com> Use LOCALIZED collation for mailbox names

* Our mailbox sort order varies from that of other clients due to
our not having used LOCALIZED collation

Bug: 2347066
Change-Id: I334feb9fa5690118401e2fe2b4a767eb3f29b25f
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/RecentMailboxManager.java
ndroid/email/activity/ShortcutPickerFragment.java
bb86a95acdd99f99bcc756826cd4f3c6803ba1dd 02-Dec-2011 Mindy Pereira <mindyp@google.com> Like Gmail, we only want to set activated text to a diff color for two pane.

Fixes b/5699511 Draft message is showing in white color text

Change-Id: I9f15807936db8864a1752d56056b08ddfb32f121
ndroid/email/activity/MessageListItem.java
dc931441d879ede625a073755bfac40f93de6d10 02-Dec-2011 Mindy Pereira <mindyp@google.com> Merge "Fix layout for edit quick response dialog."
d637dc245b3b08c9bc1e24f2b33652dda6c0dbc6 02-Dec-2011 Mindy Pereira <mindyp@google.com> Fix layout for edit quick response dialog.

Fixes b/5528659 Quick Response "create new" dialog is janky

Change-Id: Ib78d677114f9af1969ce8314e6f58002d2ad727f
ndroid/email/activity/setup/EditQuickResponseDialog.java
bc6625ef73d52f207cb68b6d7a982abb3a30b8f5 02-Dec-2011 Mindy Pereira <mindyp@google.com> Merge "Make sure to check for a null account before using the account."
ceca4751b26b5da91cd8b2038a679be214d3b7db 02-Dec-2011 Mindy Pereira <mindyp@google.com> Make sure to check for a null account before using the account.

This is a common root cause with monkey crashes.

Fixes b/5628984 com.google.android.email: java.lang.NullPointerException: Unable to start activity ComponentInfo{com.google.android.email/com.android.email.activity.setup.AccountSetupIncoming}: java.lang.NullPointerExceptionat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)

Change-Id: Ib3ac5c62b72662402c7d5df4e5d895beaf324197
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
3714243c0d1774216b357b980334d18207f50bf6 02-Dec-2011 Vikram Aggarwal <viki@google.com> Merge "Consolidate Preference.OnPreferenceChangeListener objects in AccountSettingsFragment"
4016ea1ae9a08ac9710d0035029421451421f86d 23-Nov-2011 Vikram Aggarwal <viki@google.com> Consolidate Preference.OnPreferenceChangeListener objects in AccountSettingsFragment

Fixes b/5642876

Change-Id: I74b9e06107ea89d7b3acf74c6c676dcc85125abc
ndroid/email/activity/setup/AccountSettingsFragment.java
e18e8f45dabc1bbb36f6f4d7541d5cfad4fb691c 29-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Show correct error when adding widget with no email accts on device."
30003e582f03f98d656fe4f0b5feb40f9b2361ba 29-Nov-2011 Mindy Pereira <mindyp@google.com> Show correct error when adding widget with no email accts on device.

If the WidgetConfiguration service is disabled until the user adds an account,
adding the widget just fails badly as there is no service registered
to handed an APPWIDGET_CONFIGURE intent.
Fixes b/5613821 App isn't installed toast message when creating widget for Email without any account

Change-Id: I98003eadf71fb944d3c0902f7e132ca7c5b67571
ndroid/email/Email.java
fe402a80816f2fe12d9fac78474b093ffb4515b1 28-Nov-2011 Mindy Pereira <mindyp@google.com> Check for account before launching welcome screen.

If this is running via monkey, might not have an account yet.

fixes b/5518958 java.lang.NullPointerException at com.android.email.activity.MessageCompose.onBack(MessageCompose.java:1797)

Change-Id: I17fb606a2fd3aad685a855ae8bd9eda551296ca3
ndroid/email/activity/MessageCompose.java
fd81e1977954a710cd3630ef3a9ab6aebff1094c 21-Nov-2011 Marc Blank <mblank@google.com> Don't save Policy with Account

Change-Id: Ib3601daee8780640a07db573f623e99279c9f9b1
ndroid/email/SecurityPolicy.java
5789a78af324f7e7541334817c6811d3981a21c7 19-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Add account should be shown on all Email prefs screens and subscreens on tablet."
f579eb8ac3c0deacf248468b1648ef971fb65c16 18-Nov-2011 Mindy Pereira <mindyp@google.com> Add account should be shown on all Email prefs screens and subscreens on tablet.

For phone, should match Gmail and just show it at the top level.
Fixes b/5621803 "Add account" button disappeared - IKXEVERESTLTE-3051

Change-Id: I143043485cbb912023fe015a768c6f37c8cad3f5
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/EmailPreferenceFragment.java
ndroid/email/activity/setup/GeneralPreferences.java
8957df83d454dcf9f18450c55fe46302a58a4cb4 19-Nov-2011 Vikram Aggarwal <viki@google.com> am dd4f501b: Merge "Accurately update the preference summary string when changing the vibrate setting." into ics-mr1

* commit 'dd4f501b44e1f15f8ba33488a63d0d4731e93317':
Accurately update the preference summary string when changing the vibrate setting.
7a7f544c0cb7b4aafc64586308d34d1537a4c185 19-Nov-2011 Mindy Pereira <mindyp@google.com> am 9eeb535f: Merge "Make message items aware of the various modes." into ics-mr1

* commit '9eeb535f6f8d940447755a0a31f7b0cc805b1028':
Make message items aware of the various modes.
dd4f501b44e1f15f8ba33488a63d0d4731e93317 18-Nov-2011 Vikram Aggarwal <viki@google.com> Merge "Accurately update the preference summary string when changing the vibrate setting." into ics-mr1
d22cf7bda7018f7040d21b0ea5c81ca8af038fc8 18-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "DO NOT MERGE ListView eill always show dividers below items if all items in the adapter are enabled." into ics-mr1
9eeb535f6f8d940447755a0a31f7b0cc805b1028 18-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Make message items aware of the various modes." into ics-mr1
7d28a1c27936fce22af99d0ae5ec63e609eeac3e 18-Nov-2011 Vikram Aggarwal <viki@google.com> Accurately update the preference summary string when changing the
vibrate setting.

Fix b/5639748

Change-Id: Ice6d4770c156104495d476826a636487f4df5f1b
ndroid/email/activity/setup/AccountSettingsFragment.java
e4202e782c91075c09cd5c348517a90620622a7f 18-Nov-2011 Mindy Pereira <mindyp@google.com> Make message items aware of the various modes.

On two pane tablet in portrait mode, the message list items may not
be wide enough to be considered "WIDE_MODE", however, when they are shown
in the message list mode, they should ALWAYS use message list mode backgrounds.

Fixes b/5641014 email portrait: missing the vertical divider between folders and messages

Change-Id: Ied05386f1ab62c48b1824647c95a6f72baabc859
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/UIControllerTwoPane.java
85791394731a03a3577c516552dd787e254126ee 18-Nov-2011 Mindy Pereira <mindyp@google.com> DO NOT MERGE ListView eill always show dividers below items if all items in the adapter are enabled.

It seems like it should not show a divider on the last item when there are headers
OR infer not all items enabled when there are headers, but it doesn't.

Fixes b/5517092 extra divider line between last label and next header in label list

Change-Id: I3f70bbf0d33883df4c60596411481504f627f350
ndroid/email/activity/MailboxFragmentAdapter.java
6fc728b7cd963ef7ed1e6d8749cd50ccd9b24f38 18-Nov-2011 Mindy Pereira <mindyp@google.com> ListView eill always show dividers below items if all items in the adapter are enabled.

It seems like it should not show a divider on the last item when there are headers
OR infer not all items enabled when there are headers, but it doesn't.

Fixes b/5517092 extra divider line between last label and next header in label list

Change-Id: Ib0f0361e672edcc36c973166c062b67e61ec59c4
ndroid/email/activity/MailboxFragmentAdapter.java
db3dc58fce381d276ca38d5f7e4b160bf66295c6 16-Nov-2011 Marc Blank <mblank@google.com> am bcadbc5f: Merge "Fix ICS setup regression" into ics-mr1

* commit 'bcadbc5fce10278f1a557a876ebf0eb60afdf051':
Fix ICS setup regression
bcadbc5fce10278f1a557a876ebf0eb60afdf051 16-Nov-2011 Marc Blank <mblank@google.com> Merge "Fix ICS setup regression" into ics-mr1
c196e05ee15ba72ed993bf498897c2be121ccad1 16-Nov-2011 Marc Blank <mblank@google.com> Fix ICS setup regression

Bug: 5612276
Change-Id: Ic9ab3cb075be7ff4e0e5138a453a71cfcbe655b5
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
5117621aab778b27ab4f4c2a8e47d08990db3436 15-Nov-2011 Vikram Aggarwal <viki@google.com> am fb9c860a: Remove hard-coded references to zoom values and set them as resource arrays instead.

* commit 'fb9c860ae2fafffd95931ded199e8c07ed3831bb':
Remove hard-coded references to zoom values and set them as resource arrays instead.
fb9c860ae2fafffd95931ded199e8c07ed3831bb 15-Nov-2011 Vikram Aggarwal <viki@google.com> Remove hard-coded references to zoom values and set them as resource arrays instead.

Change-Id: I2af4bad3611a6f5c1580980d6ccee25910085f84
ndroid/email/Preferences.java
ndroid/email/activity/MessageViewFragmentBase.java
e6772f7c75c4aa06cb1a6522d3064d06e77a5874 15-Nov-2011 RoboErik <epastern@google.com> am 438a54a9: Merge "b/5613906 Don\'t show account picker for 0 or 1 account" into ics-mr1

* commit '438a54a9007b49793930acbbe41d2283e1d9cd4b':
b/5613906 Don't show account picker for 0 or 1 account
7d0d51e981eacd9c79e892cc501ecf2f0e41023b 15-Nov-2011 Mindy Pereira <mindyp@google.com> am a91aff96: Merge "Revert "Dont take density into account when setting initial zoom values."" into ics-mr1

* commit 'a91aff96565ddb2b52700427303478f0ef3b660b':
Revert "Dont take density into account when setting initial zoom values."
e285f7da80f9ac19c8eea454f55c5e4f3d3c9b58 15-Nov-2011 Marc Blank <mblank@google.com> am 7fd8ebef: Merge "Reduce max in-memory size of IMAP text from 16MB to 2MB" into ics-mr1

* commit '7fd8ebef9f65eac8f1e1e21c8fe1f94e069cbbdd':
Reduce max in-memory size of IMAP text from 16MB to 2MB
c2b4b68a413a408a203205fac34680370d8bb97d 15-Nov-2011 Mindy Pereira <mindyp@google.com> am 8b30d335: Merge "Highlight the first result for search." into ics-mr1

* commit '8b30d335c1d2abe9e7ee79f97b834fdcb7a2c9c3':
Highlight the first result for search.
42cc693ccd365a8c2fdca60e19f56dabe5fd46e1 15-Nov-2011 Mindy Pereira <mindyp@google.com> am e103e90f: Dont take density into account when setting initial zoom values.

* commit 'e103e90fa1fe7c440a99d3f5484adc45097f3caa':
Dont take density into account when setting initial zoom values.
438a54a9007b49793930acbbe41d2283e1d9cd4b 15-Nov-2011 RoboErik <epastern@google.com> Merge "b/5613906 Don't show account picker for 0 or 1 account" into ics-mr1
a91aff96565ddb2b52700427303478f0ef3b660b 15-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Revert "Dont take density into account when setting initial zoom values."" into ics-mr1
6599af135788ba415e84e13c02a9549de2a6d792 15-Nov-2011 Mindy Pereira <mindyp@google.com> Revert "Dont take density into account when setting initial zoom values."

This reverts commit e103e90fa1fe7c440a99d3f5484adc45097f3caa
ndroid/email/activity/MessageViewFragmentBase.java
7fd8ebef9f65eac8f1e1e21c8fe1f94e069cbbdd 15-Nov-2011 Marc Blank <mblank@google.com> Merge "Reduce max in-memory size of IMAP text from 16MB to 2MB" into ics-mr1
8b30d335c1d2abe9e7ee79f97b834fdcb7a2c9c3 15-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Highlight the first result for search." into ics-mr1
d39cf1938a468bb1ba77538140bc2ef80d634e36 14-Nov-2011 RoboErik <epastern@google.com> b/5613906 Don't show account picker for 0 or 1 account

This hides the activity when dropping an email widget until we
get some data back and can decide which picker to show.

Change-Id: I200b035a45d079285d1b84b273ddd7ce2ffda24c
ndroid/email/activity/ShortcutPickerFragment.java
dceb2884ea913f3e692f683997278968c7df4a4d 15-Nov-2011 Marc Blank <mblank@google.com> Reduce max in-memory size of IMAP text from 16MB to 2MB

* Even 2MB is probably high, but it's far better than 16MB

Bug: 5573863
Change-Id: I00d6d84ebc538d41dbf5683bd078a6bcd802e584
ndroid/email/mail/store/imap/ImapResponseParser.java
bed1b4fa7ae3f9a4a546f2aa367a8f2e7ba4b7b1 14-Nov-2011 Mindy Pereira <mindyp@google.com> Highlight the first result for search.

Fixes b/5614128 Email doesn't auto display first search result after result list appears

Change-Id: I1843471bc3fe018151ed2a30ceb3e19eb2af24e9
ndroid/email/activity/MessageListFragment.java
e103e90fa1fe7c440a99d3f5484adc45097f3caa 14-Nov-2011 Mindy Pereira <mindyp@google.com> Dont take density into account when setting initial zoom values.

WebView takes screen density into account when setting the initial
webview zoom value as of cl:
https://android-git.corp.google.com/g/#/c/146916/

Fixes b/5593688 Message text size is set to Large in Email

Change-Id: I442eb91c825a7ad7a42d3d2772b625c662df6ec1
ndroid/email/activity/MessageViewFragmentBase.java
dbd8c443dfe7ba9b230e5836d4ba032f689aa360 11-Nov-2011 Mindy Pereira <mindyp@google.com> am 30fd3107: Merge "Make the dropdown width larger/ matching Gmail." into ics-mr1

* commit '30fd3107c4445b7974e83704bc9dfbce905e654c':
Make the dropdown width larger/ matching Gmail.
7c9c70c9441866702920961db834aff5a7986f48 11-Nov-2011 Mindy Pereira <mindyp@google.com> am 8eff05da: Merge "Make account spinner styles match gmail style." into ics-mr1

* commit '8eff05daa877a75229bf98bf57cd1ed647d58b20':
Make account spinner styles match gmail style.
30fd3107c4445b7974e83704bc9dfbce905e654c 11-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Make the dropdown width larger/ matching Gmail." into ics-mr1
8eff05daa877a75229bf98bf57cd1ed647d58b20 11-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Make account spinner styles match gmail style." into ics-mr1
c31736c0d772b1fc4d6624a75139d99f91146563 11-Nov-2011 Marc Blank <mblank@google.com> am af637589: Fix typo in CL; sigh

* commit 'af6375894fe4b405f205a22a7ee9118a36fef428':
Fix typo in CL; sigh
070277d9fcf30bb63dc89955f04323972b1fdc1a 11-Nov-2011 Makoto Onuki <omakoto@google.com> am 22e4f6b6: Merge "Fix bug 5594054 Crash seen while syncing Exchange" into ics-mr1

* commit '22e4f6b671ab5cfa56fe0aa40df029effcc5a060':
Fix bug 5594054 Crash seen while syncing Exchange
af6375894fe4b405f205a22a7ee9118a36fef428 11-Nov-2011 Marc Blank <mblank@google.com> Fix typo in CL; sigh

* Facepalm

Bug: 5582884
Change-Id: I060518a4bbb2c08e1abef934c81d72ec4fbcb565
ndroid/email/provider/EmailProvider.java
22e4f6b671ab5cfa56fe0aa40df029effcc5a060 11-Nov-2011 Makoto Onuki <omakoto@google.com> Merge "Fix bug 5594054 Crash seen while syncing Exchange" into ics-mr1
2764af42693716334c435d184de5b77756481778 11-Nov-2011 Marc Blank <mblank@google.com> am de6b6db9: Merge "Don\'t crash in EmailActivity if no accounts exist" into ics-mr1

* commit 'de6b6db9951637147ae4288d386995ac07c87f26':
Don't crash in EmailActivity if no accounts exist
de6b6db9951637147ae4288d386995ac07c87f26 11-Nov-2011 Marc Blank <mblank@google.com> Merge "Don't crash in EmailActivity if no accounts exist" into ics-mr1
c1d9be5dc36f64b104fcaf041dd38c28ed4d05a0 11-Nov-2011 Makoto Onuki <omakoto@google.com> Fix bug 5594054 Crash seen while syncing Exchange

bug 5594054

Change-Id: Id14598c4da66c0f2c78a7c892f653b6cee781f3b
ndroid/email/activity/MessageListItem.java
4ce8274b86d0afe1533a7271be301f014ea8b655 10-Nov-2011 Mindy Pereira <mindyp@google.com> am 69fc89b1: Merge "The quick contact should only open when the usr taps the photo." into ics-mr1

* commit '69fc89b118f1da9bb97b3a2c8284bf9f70f7e844':
The quick contact should only open when the usr taps the photo.
c40ccf4cc98bfc4d042227497e7a7b484db5c4ce 10-Nov-2011 Minh Pham <phamm@google.com> am e7ee5bd6: Fix search UI

* commit 'e7ee5bd608b44b123cca12a9f198118927a838c7':
Fix search UI
656ebc2982437edae6b45198bde25e0e73fde39f 10-Nov-2011 Marc Blank <mblank@google.com> Don't crash in EmailActivity if no accounts exist

Bug: 5044497
Change-Id: Ied760ea385015a3c7df0a0d1e68ebc32dc5fb957
ndroid/email/MessageListContext.java
ndroid/email/activity/EmailActivity.java
1720f8251379a23d7b81bf15a304bec6643adab0 10-Nov-2011 Mindy Pereira <mindyp@google.com> Make the dropdown width larger/ matching Gmail.

part of b/5520685 update account switch spinner to match Gmail layout

Change-Id: I727d318f3f10199399b61fc4455e44d302fb8e2f
ndroid/email/activity/ActionBarController.java
0730c4fcd008a7b7835240b790c3b11847845018 10-Nov-2011 Mindy Pereira <mindyp@google.com> Make account spinner styles match gmail style.

Fixes b/5520685 update account switch spinner to match Gmail layout
Change-Id: I06c262f16d8629696bb761b005a3728406ccce53
ndroid/email/activity/ActionBarController.java
69fc89b118f1da9bb97b3a2c8284bf9f70f7e844 10-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "The quick contact should only open when the usr taps the photo." into ics-mr1
81d234aa8cff470e5543bda2bd4b3ac068537478 09-Nov-2011 Mindy Pereira <mindyp@google.com> am cc9845e8: Make sure we show/ hide all quoted text views.

* commit 'cc9845e86ef500b4e4c65c141cac45f88d426696':
Make sure we show/ hide all quoted text views.
406641ce0978a3d9f7ae5e47d0528118e85a5075 09-Nov-2011 Marc Blank <mblank@google.com> am 00099da1: Merge "Make EAS Email syncable after GB/HC -> ICS upgrade" into ics-mr1

* commit '00099da1b3b9d91574187e70182e5384debb3731':
Make EAS Email syncable after GB/HC -> ICS upgrade
8a90477033dba4dfe5d46a67467d33a5c83c4f1d 09-Nov-2011 Mindy Pereira <mindyp@google.com> am aff4bdac: Merge "Activated text should be white. Shares resources with gmail." into ics-mr1

* commit 'aff4bdac07041ec3bbdedda09390b01f07c61e1b':
Activated text should be white. Shares resources with gmail.
626c28997746ff1a8545a0a1f94d5e15f9a8d4ef 09-Nov-2011 Mindy Pereira <mindyp@google.com> am 4beab88c: Share font colors and sizes with gmail.

* commit '4beab88c92226628bf743070f88affb701968ce0':
Share font colors and sizes with gmail.
0ee798579c5a74df89537eedcccdceb8e2e6acda 09-Nov-2011 Mindy Pereira <mindyp@google.com> am 21e4fe49: Share background styles with gmail.

* commit '21e4fe49b68738523ebdc8c340469a46d79ed691':
Share background styles with gmail.
9599bca7c9dbac5abfebc98e09f4bd951dee3045 09-Nov-2011 Mindy Pereira <mindyp@google.com> The quick contact should only open when the usr taps the photo.

Fixes b/5520783 turn off quick contact tap handler on message header

Change-Id: If5efe6c69946784fe6cc9e25bfdc6018247c19c1
ndroid/email/activity/MessageViewFragmentBase.java
e7ee5bd608b44b123cca12a9f198118927a838c7 09-Nov-2011 Minh Pham <phamm@google.com> Fix search UI

- Message list is collapsed by default in 7 inch and 10 inch portrait. It can cause confusion when searching.
- We should uncollapse the list in this case.
Bug: 5587501

Change-Id: I2a272e28e1cad7895049c4aa4ee1d8d2918efba9
ndroid/email/activity/ThreePaneLayout.java
ndroid/email/activity/UIControllerTwoPane.java
cc9845e86ef500b4e4c65c141cac45f88d426696 09-Nov-2011 Mindy Pereira <mindyp@google.com> Make sure we show/ hide all quoted text views.

Leftover part of b/5517524 compose on tablets needs redline

Change-Id: I73aabb7ad02a64aa9413cdf7a0ea8f147fa2994f
ndroid/email/activity/MessageCompose.java
00099da1b3b9d91574187e70182e5384debb3731 09-Nov-2011 Marc Blank <mblank@google.com> Merge "Make EAS Email syncable after GB/HC -> ICS upgrade" into ics-mr1
aff4bdac07041ec3bbdedda09390b01f07c61e1b 09-Nov-2011 Mindy Pereira <mindyp@google.com> Merge "Activated text should be white. Shares resources with gmail." into ics-mr1
fde8089157ae2def89d0e4a03f5f6f2bcdf538fa 09-Nov-2011 Mindy Pereira <mindyp@google.com> Activated text should be white. Shares resources with gmail.

part of b/5520533 activated text should be white

Change-Id: Ia6f79bed2277185eca100bd6c65884a2cd574e22
ndroid/email/activity/MailboxListItem.java
4beab88c92226628bf743070f88affb701968ce0 08-Nov-2011 Mindy Pereira <mindyp@google.com> Share font colors and sizes with gmail.

part of b/5520048 unread/ read contrast is bad for conversation list items on tablet

Change-Id: I06d0d560ce32714afe9229d1e009b9b09dc11df8
ndroid/email/activity/MessageListItem.java
21e4fe49b68738523ebdc8c340469a46d79ed691 08-Nov-2011 Mindy Pereira <mindyp@google.com> Share background styles with gmail.

Part of b/5520048 unread/ read contrast is bad for conversation list items on tablet

Change-Id: I0a5848852b15ead11bef3d56a2c1e1b324f6da73
ndroid/email/activity/MessageListItem.java
ndroid/email/widget/EmailWidget.java
8ff1842ab123721b66f2ed1e14e92244a51b0b99 08-Nov-2011 Marc Blank <mblank@google.com> Make EAS Email syncable after GB/HC -> ICS upgrade

* In the same upgrade step in which we add AccountManager accounts
to IMAP/POP accounts, we now make Email syncable for EAS accounts
* This step is hit by all users upgrading from GB/HC -> ICS

Bug: 5582884

Change-Id: I11a06e2ad72ffed20c31f5d8be81705642f552a5
ndroid/email/provider/EmailProvider.java
bf036b9e1a86c08ef967830219e8508f48a3a619 05-Nov-2011 Mindy Pereira <mindyp@google.com> am 1b6e1ae3: Fix padding on reply quoted text area and ids.

* commit '1b6e1ae3066f1a8ac32917e0c05739aa368af145':
Fix padding on reply quoted text area and ids.
1b6e1ae3066f1a8ac32917e0c05739aa368af145 04-Nov-2011 Mindy Pereira <mindyp@google.com> Fix padding on reply quoted text area and ids.

Part of fixes for b/5517524 compose on tablets needs redlines

Change-Id: I7b526c21f1a11532b8b0d598a309174bb38a9cf6
ndroid/email/activity/MessageViewFragmentBase.java
6747b51e11951a935293f29837968ebf3e9ce8fb 04-Nov-2011 Mindy Pereira <mindyp@google.com> am aa90b4f2: Update attachment styles.

* commit 'aa90b4f2ebc3f7b3c1e31cfdaf2b8433d5495b4d':
Update attachment styles.
aa90b4f2ebc3f7b3c1e31cfdaf2b8433d5495b4d 03-Nov-2011 Mindy Pereira <mindyp@google.com> Update attachment styles.

Part of fixes for b/5517524 compose on tablets needs redlines

Change-Id: I286c6fa57229e993660dd307fc14b929b701b47f
ndroid/email/activity/MessageCompose.java
fdff68d5dd1dd06a9ff83a8ac184e02a6c328168 03-Nov-2011 Mindy Pereira <mindyp@google.com> am 31e5beba: Create tablet compose view.

* commit '31e5beba35287258e20b0fff5b9138a3b0892221':
Create tablet compose view.
31e5beba35287258e20b0fff5b9138a3b0892221 03-Nov-2011 Mindy Pereira <mindyp@google.com> Create tablet compose view.

part of Fixes for b/5517524 compose on tablets needs redlines

Change-Id: I107b58dfda3f228457a3a3b90c8f41e832007c9d
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageViewFragmentBase.java
3074ba91f6f1c30a41bd7248bfeb114131d64bef 03-Nov-2011 Mindy Pereira <mindyp@google.com> resolved conflicts for merge of 80966740 to master

Change-Id: Iab18d4cd7c85b0ef4467bcf745d0c84bde7b3846
809667407c96310210d2ae1e86355f5506ca90ba 01-Nov-2011 Mindy Pereira <mindyp@google.com> Create a require manual sync dialog.

Fixes b/5533550 [Verizon Reported Issue]Add one-time notice to user when auto sync is disabled due to security policy

Change-Id: I1d5380928429a829dbcb31d5f7309f9bc98e8dff
ndroid/email/Preferences.java
ndroid/email/RequireManualSyncDialog.java
ndroid/email/activity/UIControllerBase.java
d0e7f538cbb9306f5c705bb09bf597c352e0dd8d 02-Nov-2011 Mindy Pereira <mindyp@google.com> resolved conflicts for merge of 565e94cd to master

Change-Id: I424541a5c8d1d74b78e19170e40edb071fa68c0e
b4b2933b1e27dffbc56d1708420d39caa6dc7911 02-Nov-2011 Mindy Pereira <mindyp@google.com> resolved conflicts for merge of f4d30527 to master

Change-Id: Ia79af94545c878595dcd1bb4e2fec98d49d94838
649eaedd7394165ca7ec3a182928b60cd73e7e3b 02-Nov-2011 Mindy Pereira <mindyp@google.com> Revert "Create a require manual sync dialog."

This reverts commit 5ae8d889a82db0f45f0336b73e76ad6675c8a7e0
ndroid/email/Preferences.java
ndroid/email/RequireManualSyncDialog.java
ndroid/email/activity/UIControllerBase.java
5ae8d889a82db0f45f0336b73e76ad6675c8a7e0 01-Nov-2011 Mindy Pereira <mindyp@google.com> Create a require manual sync dialog.

Fixes b/5533550 [Verizon Reported Issue]Add one-time notice to user when auto sync is disabled due to security policy

Change-Id: I90e295158136def96502f78c94a5e3ec00a059bc
ndroid/email/Preferences.java
ndroid/email/RequireManualSyncDialog.java
ndroid/email/activity/UIControllerBase.java
52cd41af58cd58f98f79c8071cf5e29df98e2621 27-Oct-2011 Marc Blank <mblank@google.com> Merge "Remove unneeded logging"
9e2330e473eeec9d3baa67f3f1569e4f02dd6cae 27-Oct-2011 Marc Blank <mblank@google.com> Remove unneeded logging

Change-Id: I9866a678b58728f5e0ddcbb3596beb2e53c9a7fa
ndroid/email/MessagingController.java
ndroid/email/SingleRunningTask.java
7efde8632df2a41c5c88c6e7a863e8831cbaa0bc 26-Oct-2011 Marc Blank <mblank@google.com> Provide four default "quick responses" for new accounts

* These are added during account creation; existing accounts are
not affected

Bug: 5220629

Change-Id: I906e7b886ead9fdb269d9d44a245cc01c1cf260d
ndroid/email/activity/setup/AccountSettingsUtils.java
2736c1a11ce3ecdcd9d19aa9c324fb9ce0910c7b 20-Oct-2011 Marc Blank <mblank@google.com> Rewrite of security policy handling and service code

* Remove PolicyService APIs policiesRequired, policiesUpdated,
isSupported, clearUnsupportedPolicies, and isActiveAdmin
* Add PolicyService API setAccountPolicy, which is the sole
method by which security policies are promulgated
* Add protocolPoliciesEnabled and protocolPoliciesUnsupported
to the Policy class; these are packed, localized strings
indicating policies that the protocol itself have enabled
and/or cannot support (i.e. these are policies that are
unknown to the DPM, e.g. don't load attachments)
* Differentiate in security notifications between three kinds
of policy changes - changes that don't require user
intervention (e.g. reducing requirements), changes that
require user intervention (the legacy notification), and
changes that make the account unsyncable (e.g. the server
adding an unsupportable policy). Handle all possible policy
changes cleanly.
* Make security notifications per account (with multiple
accounts, notifications would get arbitrarily munged)
* Expose ALL enforced policies via the account settings
screen in two categories: policies enforced (including
both policies enforced by the DPM and policies enforced
by the protocol) and policies unsupported (note that these
can only be seen if policies are changed after an account
is created; we do not allow the creation of an account
when any required policies are unsupported). Add a
button that forces a sync attempt, for accounts that
are locked out, but whose policies have changed on
the server (this would otherwise require a reboot).
* Updated unit tests

Bug: 5398682
Bug: 5393724
Bug: 5379682
Change-Id: I4a3df823913a809874ed959d228177f0fc799281
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/PolicyListPreference.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/PolicyService.java
6629f6b67caa525dc5bf5efb3d066951d4a6b977 22-Oct-2011 Marc Blank <mblank@google.com> Merge "onMove in CachedCursor shouldn't call the underlying cursor's method"
037e00b97d78773b3b7e887d7249b022a6ba9c40 21-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Disable widget creation if there're no accounts"
d94522c6d9b3afad6b6796bc58d5a31b11d7b16d 21-Oct-2011 Ben Komalo <benkomalo@google.com> Make Email widget more accessible.

Bug: 5480096
Change-Id: I58fe6bd070c7d8058f2a920012c3260bfed614b9
ndroid/email/widget/EmailWidget.java
227514c1cfe0f5ddafb84ddc10afb88c3839cfa1 21-Oct-2011 Ben Komalo <benkomalo@google.com> Remove stale strings in widget.

We can't tap to configure anymore, at least not according to the old
method.

Bug: 5451924
Change-Id: I997e96a9bab36aecf68a5daeedff6e7442a848a4
ndroid/email/widget/EmailWidget.java
1fb0b605e265ae784ef0da9dd360d8065647476d 21-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Request focus in field when cc/bcc is toggled."
d69fab905dadf8edecc36555e06d281d2d5f7286 21-Oct-2011 Ben Komalo <benkomalo@google.com> Prevent insert quick response crash.

Monkeys can click really fast, before the data is finished loading.

Bug: 5067086
Change-Id: I7f9248b0fb694a83ecb793570b2a17f91a49ad85
ndroid/email/activity/MessageCompose.java
ea73911291eea49fa65e1c70109b8d942d419237 21-Oct-2011 Ben Komalo <benkomalo@google.com> Disable widget creation if there're no accounts

Bug: 4571798
Change-Id: I4b496c12b6c8a2123f9b3d9e28ecf098ca374a74
ndroid/email/Email.java
2f105a0543ea293e7a0f3515d0c900ab65e2b7ba 21-Oct-2011 Ben Komalo <benkomalo@google.com> Request focus in field when cc/bcc is toggled.

Bug: 3090788
Change-Id: I184dfe586199af9bcb016f60bf97bcd4382b4f73
ndroid/email/activity/MessageCompose.java
c5c44eed77b851e71803b972fb76fd91d5338fef 20-Oct-2011 Ben Komalo <benkomalo@google.com> Fix account creation issues.

This is a theoretically dangerous issue that has surfaced only as a
monkey bug so far. The issue is that callers that create an Intent set
some global state, expecting that state to still be valid when the
Intent is handled. However, if the process was killed before the Intent
could be handled, or if that global singleton was not saved properly,
that state was lost and SetupData was never initialized properly.

Bug: 5337276
Change-Id: I6bd08a0dec13f54c7ba8d536ebdc87e6c559c483
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/SetupData.java
2ca9441e8c362d14ecc684c26d00049e2789f4c4 19-Oct-2011 Ben Komalo <benkomalo@google.com> Update Intent passed to contacts.

Reduce the number of intent keys so that a more compact dialog can be
used.
Bug: 5483848

Change-Id: I4d3da4a2a1480996bb14c5f2698a6530508ba7e7
ndroid/email/activity/MessageViewFragmentBase.java
a91f33b44b967496d16ef5ed443219df3d97d8c4 19-Oct-2011 Marc Blank <mblank@google.com> onMove in CachedCursor shouldn't call the underlying cursor's method

Bug: 5472277
Change-Id: Ida5a840d2d27941bb8b548a4d2d985b1082e93b6
ndroid/email/provider/ContentCache.java
3285fb3cfdb209257ed5fb8f36a4d98c67b0d53e 18-Oct-2011 Marc Blank <mblank@google.com> Prevent NPE with badly-timed account deletion

Bug: 5473621
Change-Id: I0956540de0de172bc3519a301598e197b449b9a8
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
1bc90d3ed9f7749a1de1d80dc588e3a1194fb887 18-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Fix touch interceptions."
98c968d178bfaaa756d86f0fa55518145d9b2126 15-Oct-2011 Ben Komalo <benkomalo@google.com> Fix touch interceptions.

We were unfortunately passing through all touches and never intercepting
events from the message ScrollView. This was desirable when the drag was
over the message content, but in the surrounding chrome it would lead to
pressed states while dragging, sometimes accidentally causing text
selection. This change makes that logic special cased to WebViews only.

Bug: 5361173
Change-Id: Icf535c015cec4a79a5ad7eba3d6c5aa7bd572a8a
ndroid/email/view/NonLockingScrollView.java
2e3d46cbde7a04211e7fbecb9f0836aac7bc22ba 17-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Fix NPE in move messages"
a007d79c3f5189463463e42693c985ecdde80ab2 17-Oct-2011 Ben Komalo <benkomalo@google.com> Fix NPE in move messages

Bug: 5452020
Change-Id: Id8fca21692ad1a70a2114eaa7fec6bcecab6cab6
ndroid/email/activity/MessageListFragment.java
561004883da8d1c5507c163eab7237262e4abbaf 14-Oct-2011 Ben Komalo <benkomalo@google.com> Fix widget update to properly refresh.

Bug: 5413224
Change-Id: Id66c7dc8aac8b5e24c7d5c5b1633c9c3ab981b15
ndroid/email/provider/WidgetProvider.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/WidgetManager.java
1f6769faccad7691bcf2a5369ce373725e0dc0e1 14-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Always pop back to main app from widget."
28e496daef8be15def1de3787845a22bed0c8b79 13-Oct-2011 Ben Komalo <benkomalo@google.com> Respect system font size in message list.

- This makes dimensions according to scaled font sizes, and also resets
the activity properly (invalidating drawing caches) when that font size
happens.

Bug: 5287961
Change-Id: I04cf117b027befd6a065edeadf95187f62fffc8a
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
3532e56591ad3e76da678ad9004f060a1c963bb2 13-Oct-2011 Ben Komalo <benkomalo@google.com> Always pop back to main app from widget.

Bug: 5445267
Change-Id: I992a8a1c4402ba756787957766e8be3c68e064f8
ndroid/email/activity/MessageCompose.java
ndroid/email/widget/EmailWidget.java
7d1324a6df00caa50b18c6937ddbf5ecac5d55c2 13-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Keeps track of "last account used""
513486cfb5d446f098b1c97d16932e51e316d1a7 13-Oct-2011 Ben Komalo <benkomalo@google.com> Fix per account starred mailboxes.

We always switched to combined view when we tapped "Starred" in a
mailbox list. This was confusing since tapping to show the mailbox list
will take you to the mailbox list for the combined view, even if there's
only one account on the device! Other confusing things happened like
showing coloured account chips, even if there's only one account.

This fixes it so that we pass the account ID when building the
selection. Lots of wiring to make it happen, but very little change
overall.

Bug: 5388326
Change-Id: I1fe52f211cceca0c1b26581e200f3c7adcd0734a
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
47bf70cf7bb109ee44757194c34fc8549d8b9086 11-Oct-2011 Ben Komalo <benkomalo@google.com> Keeps track of "last account used"

This only applies for the main EmailActivity. The compose window still
uses the user-visible setting for "Default account" as the default
account when handling intents like "mailto:" links.

In the future, we should probably just remove that setting, now that we
remember the last account in the reading-email case.

Bug: 4460450
Change-Id: I4b3e7c9e13b7e89320891346383780cd670492ae
ndroid/email/Preferences.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/Welcome.java
160bbc8288e21eec9148dc0add7ac7c9bc998e5c 11-Oct-2011 Marc Blank <mblank@google.com> Merge "Don't show "mailbox not found" toast on "back""
d9cdd88702750291ca348a11ce738ea399454834 11-Oct-2011 Marc Blank <mblank@google.com> Don't show "mailbox not found" toast on "back"

* We'll only show this on a first load of the
MessageListFragment

Bug: 5396997
Change-Id: I9a93bfd6e2c31d1ed8f75f1ec486da060712dffd
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
c35c4b14c9e7d68137d8a958b64c773e7ec5d150 08-Oct-2011 Ben Komalo <benkomalo@google.com> Fix persistent "empty name" error.

We were never clearing the error state when typing in a field that
needed to be non-empty.

Bug: 5422268
Change-Id: Iabe8c6f6c348b4210695c3eeff98e79e60f83d08
ndroid/email/activity/setup/AccountSetupNames.java
6e8e49d5f7866fd681e5a2be594cf94fe6337399 07-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Ensure proper mailbox is highlighted."
ce4ebc52a6fd7e2084eb6b54f9147269329aa87b 07-Oct-2011 Ben Komalo <benkomalo@google.com> Ensure proper mailbox is highlighted.

Bug: 5424565
Change-Id: I1436568aa1c7d7d2becce27ee068d88deb217496
ndroid/email/activity/MailboxListFragment.java
f9b566c10981fca190a6347eff1217e557ffa6f6 06-Oct-2011 Ben Komalo <benkomalo@google.com> Fix message list pressed state color

Also do some cleanup - we were creating a background task for opening a
message, when in the common case we don't need to hit disk for any
reason. This was also an issue since the async opening of the message
caused the list item to go into an "active" state, changing its colour
(this problem still exists in starred view now, though)

Bug: 5222509
Change-Id: Ie94109df42406fd6eec1e1255bb0827626ba0628
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
cd75eef4de0ae822e565bf0011092c8ab6b717e9 04-Oct-2011 Marc Blank <mblank@google.com> Merge "Handle possible NPE in MessageListItem"
bcf5d5825fe69bf8bd7edfd077027a52abd2c8eb 04-Oct-2011 Marc Blank <mblank@google.com> Handle possible NPE in MessageListItem

* I don't know how the timestamp can be zero for a message, but we
shouldn't crash, and it's late for adding new localizable text

Bug: 5410814
Change-Id: Idf1c8b0d4c0b7e0e2b2466643ea52e5244d1bb5f
ndroid/email/activity/MessageListItem.java
1c4b62a0edb459fc37cae239c968eaa599c82cef 04-Oct-2011 Ben Komalo <benkomalo@google.com> Merge "Always update adapter's cursor."
35d92429afcb4774c04726d489455f4606a48256 03-Oct-2011 Marc Blank <mblank@google.com> Merge "Enforce "auto-sync app data" setting for POP3/IMAP"
5aedd2586985a456386679fa6cabd3355b36eb78 03-Oct-2011 Ben Komalo <benkomalo@google.com> Always update adapter's cursor.

In cases where the account gets removed, we accidentally hold a stale
cursor. This leaves a ticking bomb, which generally explodes when the
list tries to save state.

Bug: 5367199
Change-Id: Ibcd0c281c9668778f7d1d2abba472ffff8b22879
ndroid/email/activity/MessageListFragment.java
faf9ecc992c34de53969335f9fb403d2b17f3163 03-Oct-2011 Marc Blank <mblank@google.com> Enforce "auto-sync app data" setting for POP3/IMAP

* We were using the deprecated ConnectivityManager for this; we should now be
using the setting in ContentResolver
* Also, remove broadcast receiver code that is no longer relevant

Bug: 5405352
Change-Id: I985a95071aea92d235a2708925f775b817ba2328
ndroid/email/EmailConnectivityManager.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/MailService.java
d75ac0d3579bf215d51d8333e9154e4c392dd2a9 03-Oct-2011 Ben Komalo <benkomalo@google.com> Don't touch views in the background.

Bug: 5404366
Change-Id: I8aca89c032db41aaf95d3a94dc8047fbacbd47a9
ndroid/email/activity/setup/AccountSetupNames.java
b19a76c4525feca3f65483dc8c12b0299d4b36aa 23-Sep-2011 Ben Komalo <benkomalo@google.com> Don't show move to dialog until data is ready.

The data is usually really quick, but it's enough to cause it to flicker
if we set it with an empty adapter first.

Bug: 5087874
Change-Id: I2fc37751edcaa8ffeee144b85417b48e94b4ba4f
ndroid/email/activity/MoveMessageToDialog.java
0dc7886f474cd2ed38c76064a60b14a84a7cc67d 29-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "Make draft loading happen on serial executor"
fb83cef9ade8b4295bffff44be5b2e4af5a30eff 29-Sep-2011 Ben Komalo <benkomalo@google.com> Hide attachment progress bar on complete.

Also fix up styles to (mostly) match mocks and be consistent
with Gmail

Bug: 5205957
Change-Id: Iea7e9706464a8050255a7be78fca471cb7f9f6cf
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
8f56f41a0774c0b52ad36b75656caad9696e2774 28-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "Prefill account names."
b3a72b51dd500dbffb0cabc853970d0bf4807d66 27-Sep-2011 Ben Komalo <benkomalo@google.com> Prefill account names.

- default to e-mail address for account description
- try to use the phone's profile info for the user name

Bug: 5369190
Change-Id: I01cb567f31999bce79426eee58de8fbbc09e344d
ndroid/email/activity/setup/AccountSetupNames.java
c82c1caf0138dbcef044ee41d24791f2ebeeb88a 28-Sep-2011 Marc Blank <mblank@google.com> Include external storage in remote wipe

* Apparently, this is required via Microsoft specifications, though
there had been an earlier decision not to do this

Bug: 5384246
Change-Id: I05b6c2d21d3b295ad696f26a7a13cba6f1974e83
ndroid/email/SecurityPolicy.java
5fc0aa79f64dc6bbbc549a27b8801dc6fb28d7fc 27-Sep-2011 Ben Komalo <benkomalo@google.com> Make draft loading happen on serial executor

This fixes an issue where it loads drafts too quickly on orientation
change (and a previous save has not completed). The save was explicitly
put on the serial executor for this reason, but the load task was
missed. whoops.

Bug: 5361711
Change-Id: Ic764e15deb7cd8b88fa4f87e7cbdf435d7d79c80
ndroid/email/activity/MessageCompose.java
112f39692cbb1624e719f161752651df85a9c9ba 27-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "Fix "always show pictures""
3432bdb757c4195fb4726c8b401f2261e78d75a7 27-Sep-2011 Ben Komalo <benkomalo@google.com> Fix focus behavior in setup screens.

- properly put actionNext on most fields
- make sure actionDone doesn't do funky things with focus so that a
non-editable field gets focus. we may want to consider not making this
focusable in the future.

Bug: 5367827
Change-Id: I4e7bb13801d96a4f1e6fd02a2d43713200738b18
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
5bcb32a0d3bf700fc73749fbb1333ce9abb55eeb 27-Sep-2011 Ben Komalo <benkomalo@google.com> Fix "always show pictures"

- stopped using the confusing checkmark
- consolidated tablet/phone view - removed some needless views

Bug: 5224399
Change-Id: I944459881f04bf1103db98bb15a597bdfcc07cd9
ndroid/email/activity/MessageViewFragmentBase.java
92922ea4a4a6226aca0f464542a1b98cde144169 26-Sep-2011 Mindy Pereira <mindyp@google.com> Provide an empty constructor for orientation changes.

Fixes bug:5369868 Email crash while changing orientation when there is a security exception pop-up

Change-Id: I8fc530c994d5015cb76039d2f309d98ed2c3761f
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
b9b6ce1d36c33e5663c33db191d5dded27df0d5f 23-Sep-2011 Marc Blank <mblank@google.com> Don't show -1 as a search result count

* We'll show zero in this case

Bug: 5361745
Change-Id: Id969fa9895520382de11a47a302792d3431e451c
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
0c56eedae5ead0bb470480230dc7072900174849 22-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "Try to avoid cases when we flicker "No messages""
075817ff689b7dd12b137bd625f5807df1a29d5a 22-Sep-2011 Ben Komalo <benkomalo@google.com> Try to avoid cases when we flicker "No messages"

Bug: 5205196
Change-Id: Ide4b9ebc02c294ee3c031cc0b69ecba32877e2eb
ndroid/email/activity/MessageListFragment.java
8506afff2848d1e9b8c36dc9e1012ceedcc2f921 21-Sep-2011 Ben Komalo <benkomalo@google.com> Avoid building/rebuilding the action tabs.

Doing this on a tab callback confuses the action bar rendering.

Bug: 5288508
Change-Id: Ifbba2c2a30f5def04ec36ea2395c0d6da2bdf00d
ndroid/email/activity/MessageCompose.java
2fa301710fca241fa92242fbede9c8d637905c61 21-Sep-2011 Marc Blank <mblank@google.com> Fix oopsie on startup with no accounts

Bug: 5208939
Change-Id: Ia001dcacdb1dd014bdc480432d1eb7cbf7f56454
ndroid/email/activity/Welcome.java
d6bd622299abf9c393f4119d9c171e1c0d277c34 20-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent flicker in opening Email."
002a1802cad235ffa8f7152e0d0a5a2ebad14f63 16-Sep-2011 Ben Komalo <benkomalo@google.com> Prevent flicker in opening Email.

Welcome had some assumptions that some things had to be done
asynchronously, such as checking inbox status.
This can now be done on the UI thread and so transition into Email can
be done immediately in onCreate, except if there's reconciliating to
be done

Bug: 4599569
Change-Id: Iaaac21e73c985c60e1b7974fb0429948b35968e4
ndroid/email/activity/Welcome.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/service/MailService.java
51dc9593bb8a708f269834b8a4be955aee06ac1e 16-Sep-2011 Ben Komalo <benkomalo@google.com> UI improvements to cert selection

Bug: 5286334
Change-Id: I2c6184740364ae60f9df81119c11479e142f63c3
ndroid/email/view/CertificateSelector.java
3415be2078f3a0ac8a7c8e7d439f95cb91d9f0bd 16-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "Minor cleanups to message list item rendering."
ba0008b669146f808f5e250bf0c140fc3a638049 16-Sep-2011 Ben Komalo <benkomalo@google.com> Minor cleanups to message list item rendering.

- cached font colors
- cached date layouts
- remove unneeded text size sets
- change layout flow to be using standard layout mechanisms

Bug: 5186135
Change-Id: I9c6a659ef50b9e37a51e2463fe2bdf01974291b7
ndroid/email/activity/MessageListItem.java
a49da871916edf525edf366ec754b1db60ba4796 15-Sep-2011 Marc Blank <mblank@google.com> Handle internal push states when showing sync interval

* We turn them into "push", which is the external representation
of those states (ping and push/hold)

Bug: 5327559
Change-Id: I843f37e4619f1c33cdafbf8a3a6a39abb8e8834c
ndroid/email/activity/setup/MailboxSettings.java
7683a431173d242e55afced34175e1178764e757 15-Sep-2011 Ben Komalo <benkomalo@google.com> Prevent NPE in check settings fragment.

Bug: 5324512
Change-Id: I9366eb33c5acfe079c023ee4bc8c2026cde46ae9
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
5602ba92a03f6c9f99cfb20685439d4a16707d62 15-Sep-2011 Marc Blank <mblank@google.com> Merge "Allow multiple wildcards in providers.xml; add hotmail domains"
1b65e834c3d3281de9e0eb74e04def6ded8baa14 15-Sep-2011 Marc Blank <mblank@google.com> Allow multiple wildcards in providers.xml; add hotmail domains

* Change handling of the providers.xml file to allow asterisk
as a placeholder for an individual domain name part
(the previous behavior was a very greedy wildcard)
* Add hotmail aliases using the new scheme
* Update unit tests

Bug: 5318329
Change-Id: I73a0dfcb956830b18c5460a1b3ddfc58459d08c9
ndroid/email/activity/setup/AccountSettingsUtils.java
bfbf0dd853182bd5d644a88363414a4287616781 14-Sep-2011 Michael Chan <mchan@android.com> Add setting for ReplyAll

Also show/hide the right icon and item in overflow menu depending on setting

Bug: 5298445
Change-Id: I950025cab0aeb57d18769b137eeca418d581c5f9
ndroid/email/Preferences.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/setup/GeneralPreferences.java
2c57e7036decceb3767ccc3714e9e9e417217b49 14-Sep-2011 Ben Komalo <benkomalo@google.com> Fix upgrade code.

In HC MR2 we introduced a column for a parentKey, but AFAICT, did not
use it. It was populated with a null value. The first upgrade code in
ICS assumed it was '0' which failed to upgrade it properly.

This prevents IMAP accounts from being broken when upgrading from GB ->
ICS.

Bug: 5252620
Change-Id: I000253b7c02ac1706710bdb21a820293f09cbea5
ndroid/email/mail/store/ImapStore.java
ndroid/email/provider/EmailProvider.java
715ee4ec4c5a7893b89c28b8569a7a109a5be970 13-Sep-2011 Ben Komalo <benkomalo@google.com> Wire a custom error code for cert errors

This addesses UX's #1 concern about the UX flow for servers that require
certs - users don't know what to do after an error, so they want to kick
them into the certificate selection flow.

Bug: 5280071
Change-Id: I566707b9e680b3ef0b4c0cc8a07a8ad2c825ecaa
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
afdec1caf1216342ac5d811eeb321f408ccc42aa 12-Sep-2011 Ben Komalo <benkomalo@google.com> Tweak message header actions.

Once again, I missed an asset in the drop, since there is actually a
sepcialized one for the message view.

Also, use styles to fill out the entire height to the header to make the
touch targets bigger, as consistent with Gmail.

Bug: 5290357
Change-Id: I6754b3ef986dbf57c7c68bc595cf54cc9d76123a
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
891da84a254d55c68df21998fbce9c1772eb6172 01-Sep-2011 Ben Komalo <benkomalo@google.com> Misc visual fixes to Email

- dropped in bigger assets for mailbox triangle
- dropped in bigger assets for checkbox for xhdpi
- dropped in proper star asset for message list
- fixed some padding issues for message list item
- remove the color label from "Combined view" in the account drop down

Bug: 5248125
Change-Id: Ic15d98013f2afb42bf55c327654009ef8baa1b78
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageListItem.java
cbaaa85aba8d75da9dfcaf7f6385fb68f056d500 01-Sep-2011 Ben Komalo <benkomalo@google.com> Merge "increase MessageListItem touchslop"
2076fa7a3b088ed220d9fa0607a457d2829afb8c 31-Aug-2011 Ben Komalo <benkomalo@google.com> increase MessageListItem touchslop

Bug: 5237832
Change-Id: Ic651cb23b25041195a226a301b9111c5e8d831ec
ndroid/email/activity/MessageListItem.java
c3249d8f34388ec7f640b36b740119821fd6f322 31-Aug-2011 Ben Komalo <benkomalo@google.com> Ensure we can pan around in two directions.

This introduces a ScrollView that doesn't "lock" scrolling in one
direction, which makes it really difficult to view messages on a phone.

Bug: 5039459
Change-Id: I75e6824952c843140844873bec77af55b194f776
ndroid/email/view/NonLockingScrollView.java
b7d137bfb6b59b1a4da4b14eb6022ce0df7cf637 31-Aug-2011 Ben Komalo <benkomalo@google.com> Refresh account list in settings.

Since account deletion is async, the deleted account still shows up for
a split second. We can do something smarter about this later, but not
for ICS, and not worth it for such a rare event

Bug: 5116203
Change-Id: I82cced09b7a098e4a1a960f2d8ad75c1979b0649
ndroid/email/activity/setup/AccountSettings.java
f97ec4d1e8b9c19033db06c16e2854773f90753c 30-Aug-2011 Ben Komalo <benkomalo@google.com> Hide search icon in search mode.

This is a kludge - the real solution is to use the proper action modes
in the framework. That's too large to do this late.

Bug: 5232787
Change-Id: I76b68b250c384bdabf51e8831f833afd65c0c73b
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
8466f79a06433bf3d05a770578c72b2b60e1bd7c 26-Aug-2011 Ben Komalo <benkomalo@google.com> Asset drop.

- this syncs up the UX repo with the developer repo so that the assets
now match. We should be able to do wholesale drops/diffs from now on.
- lots of changes to widget so that it is (mostly) up to spec now, and
matches the preview

Bug: 5225385
Bug: 5205578
Bug: 4320895
Change-Id: I8ccbadcfc17cdb406599497edc91165809f55d68
ndroid/email/FolderProperties.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/widget/EmailWidget.java
e86d8af163ada4d0b3f7c5cb0b32cfeb12da473c 29-Aug-2011 Marc Blank <mblank@google.com> Password history changes do NOT require user intervention

* A change in history requirement is not intended to force a new
password immediately; we just tell the DPM what the new
requirement is...
* This is one cause of the below-referenced bug

Bug: 5221119
Change-Id: I890b42d4eab4fbd9d34665fbea138f179d5d3215
ndroid/email/SecurityPolicy.java
9bcdd58a09d844a7551de49fc968fcf2f95b251f 27-Aug-2011 Marc Blank <mblank@google.com> Merge "Be careful before setting account's delete policy"
81a5ba47c67c75e92772bf8adb04a5361fc79b91 27-Aug-2011 Marc Blank <mblank@google.com> Be careful before setting account's delete policy

* We were using the getSelectedItem() from the deletion spinner to
set the account's deletion policy, even if that spinner was
invisible (which it would be for IMAP).
* The result of this is indeterminate; sigh
* The fix is to make sure the spinner is visible before using its
value

Bug: 5216422
Change-Id: I7e44b5e8127f5277693f7e962899e8642be55239
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ccb247cf2d7111c2080414741a7531905ce280f3 24-Aug-2011 Nick Pelly <npelly@google.com> Update for NDEF push API change.

Change-Id: I2a51c8c39cd23f90bc35133b2f50b01a82fe1ce4
ndroid/email/activity/NfcHandler.java
ndroid/email/activity/UIControllerBase.java
b8dd117002a97f37260518d85d73634b71c55bce 25-Aug-2011 Ben Komalo <benkomalo@google.com> Remove needless clearView()

- this is leftover from a time where we re-used a single WebView for
multiple messages. The current architecture does not rely on that, so
the clearView() is actually not useful. Worse - it's causing issues
because the operation in the WebView is asynchronous, so a clearView and
a load of the content in quick succession causes a race condition,
causing items not to load

Bug: 5205296
Change-Id: I5ee6697bdf53a033ba1c7f21170820259bf830d1
ndroid/email/activity/MessageViewFragmentBase.java
32bed4bb8e23d7322ab338773d135845f392d3cf 24-Aug-2011 Ben Komalo <benkomalo@google.com> Fix unit tests.

- make attachment download service injectable
- fix assertions for account manager account checks
- update message compose ID's so they're consistent on tablet/phone

Bug: 5198343
Change-Id: I9976f5b9e5590dd61fb0a62937d3f9203fefe236
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
4520d35e7c4122c731b82ae9db3e6aeec2a4cd1d 23-Aug-2011 Ben Komalo <benkomalo@google.com> Slight reordering and add settings to compose menu

Bug: 5189476
Change-Id: I91fc0a718859fb55c79157236268dd6976ac0427
ndroid/email/activity/MessageCompose.java
ce582527bbdce6e7a5c255123e9f2b743467919e 22-Aug-2011 Marc Blank <mblank@google.com> Fix dont-allow-camera in Email DPM

* We weren't checking for it in determining whether our policies
were active; because of this, we never actually SET the policy
in the DPM

Bug: 5193399
Change-Id: I276901be21be681f66891f5374ec58cf1ea7b4be
ndroid/email/SecurityPolicy.java
89dd731a90ad5b616f77671caabe2941a0f01697 19-Aug-2011 Mindy Pereira <mindyp@google.com> Update attachment ui to look like Gmail attachment ui; fix from padding.

Fixes Bug:5184434 Compose view doesn't match pixel perfects
Change-Id: I7217eb4a63beedfd0bc00dffe9e0f29a5af6214c
ndroid/email/activity/MessageCompose.java
a3e8adac9585cde68d3a97ffeafcbb9ace22327a 18-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Add in missing return statement"
28a48b6001bb4f41376cab1a912d2b08ebd4cf33 18-Aug-2011 Marc Blank <mblank@google.com> Merge "Support IMAP search in UTF-8, in addition to US-ASCII"
d766e72450a4f04ae0af56fafab55360f77a066b 18-Aug-2011 Ben Komalo <benkomalo@google.com> Add in missing return statement

This caused an unintended fallthrough

Bug: 5183930
Change-Id: Iff2100be13a242bfc576c1cb737d8777f4b8065a
ndroid/email/activity/MessageViewFragment.java
2ae341bfa1e8e05528946f070470ddad14b91355 18-Aug-2011 Ben Komalo <benkomalo@google.com> Fix messagelistitem logic.

We had two separate "height" values in XML that weren't consistent - one
was used for the coordinates and one was used for the actual item i nthe
adapter. This made things off slightly when the values didn't match
(i.e. on tablet wide mode).

Also fixed an issue with paperclip icon not aligning with date on wide
mode

Bug: 5184169
Change-Id: I1d80bb9c685fdd8216fcaef26bf6ad715eb74c4c
ndroid/email/activity/MessageListItemCoordinates.java
899e481fd11053a8496d58ca45432c59c094af9a 18-Aug-2011 Ben Komalo <benkomalo@google.com> Fix up action bar items.

- vertically centers mailboxes
- fixes subject lines from extending beyond 2 lines and getting cut off

Bug: 5183775
Change-Id: I8f6367edeafdfcf361cafa7e542f4028e955f7f1
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
f13fee5d78e8975e05a7379eb7972282242c68b7 18-Aug-2011 Ben Komalo <benkomalo@google.com> Drop in notification for multiple new mails

Bug: 5058000
Change-Id: Ic852004f8f154943742cf40ccfb6063a736d4cae
ndroid/email/NotificationController.java
20bf1f632f47c1ba408d23d87b7d9dc3fc5ba5ec 17-Aug-2011 Marc Blank <mblank@google.com> Support IMAP search in UTF-8, in addition to US-ASCII

* The existing IMAP search code is well-known to be primitive and
largely broken. In particular, it fails with any non-ASCII
character and with a variety of symbols (e.g. quotes, slashes,
etc.) Basically, it's an accident waiting to happen, returning
empty data sets even when the query might reasonably be expected
(or known) to return valid data.
* The current CL uses the IMAP literal string format to represent
the query text; this string can be sent either in ascii or in
UTF-8, and since it is sent as an octet (byte) count followed by
8-bit data, it also solves any quoting issues that might come
up. So, we kill two birds with one stone.
* The bug in question was punted to a subsequent MR; however, I
think it would be a mistake to ship the code without this
CL, which has been tested against the three common IMAP servers
that we aim to support.

Bug: 4690713
Change-Id: Iaa542bfc56737871f3cbc9c83f0e768415a7f2b6
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
8b54f09c7b365abab7c069224ecd6eb5b518a964 17-Aug-2011 Ben Komalo <benkomalo@google.com> Prevent NPE when opening starred on tablets

The MessageListFragment doesn't guarantee to return a non-null Mailbox -
it can be null for virtual mailboxes. We weren't checking this properly.

Bug: 5171577
Change-Id: I272f6a71633680d3424b049d730500fb5f04935e
ndroid/email/activity/UIControllerBase.java
5ef235193b7241a4cf96b1231e7d604644186e9f 17-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Minimal changes to make invite UI less broken"
3ae361182a4bd7061ea4a31773cec11cd3b74d87 16-Aug-2011 Marc Blank <mblank@google.com> Fix SMTP validation with TLS/accept certs

* Typo in the code. Oopsie!

Bug: 5163119
Change-Id: Ic5aab21b79a0ae30d45a760f7c52cf65b150ccb9
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
340ff45ba0f812bbb02ec9112e0b5268834bb0b3 16-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Fix crash in account selector adaptor"
7a3b64d56e3c3c37d02b50051b8a57f067856c2e 16-Aug-2011 Ben Komalo <benkomalo@google.com> Fix crash in account selector adaptor

Removal of the accounts header broke code that assumed the list of
accounts started at index 1. Change code so that it doesn't rely on that
assumption.

Bug: 5171557
Change-Id: Idde445cac914c4a742c54e291d808b991e612c5f
ndroid/email/activity/AccountSelectorAdapter.java
5e88869393727790a1b7c070873fbdf3b3477771 16-Aug-2011 Mindy Pereira <mindyp@google.com> Merge "We must have unique id's in order for the state to be saved automatically by the widget."
ac9975e745a3cbd0617d73e3c20361547c4eadc9 16-Aug-2011 Mindy Pereira <mindyp@google.com> We must have unique id's in order for the state to be saved automatically by the widget.

Also turned off extract mode for subject/ body as we already
did this in gmail at request of ux.
Fixes b/5161118 TO field drops all entry chips on rotation

Change-Id: Iada93bbf7ee457801340167aa1086b03b87b4268
ndroid/email/activity/MessageCompose.java
22cc33158d1336fe39b44046bc584c0f1c4838f5 15-Aug-2011 Ben Komalo <benkomalo@google.com> Use proper style for account spinner

- also removes the "Accounts" header as requested by UX
- also tightens up width on tablets a little.

Bug: 5160847
Change-Id: Ie8da1f9d2ec0e53421a435897fc9bb50991a20b6
ndroid/email/activity/AccountSelectorAdapter.java
285b6bb303e7aa16db2b7eb49299ed26a83f6c23 15-Aug-2011 Ben Komalo <benkomalo@google.com> Minimal changes to make invite UI less broken

- tweaked padding for 7" portrait tablets (required copying tablet
layout to two spots so that the 10" portrait tablets still work
normally)
- removed checkboxes on phones and toyed with fonts

Bug: 5165210
Bug: 5156282
Change-Id: Idd3a1c53dc32fefc14854b08a0a9eaebeb5d2f44
ndroid/email/activity/MessageViewFragment.java
4256bdfce7d81ac20eff1e8890c3541fa234fe72 13-Aug-2011 Ben Komalo <benkomalo@google.com> Suppress toast when adding attachment.

The "message saved as draft" toast is distracting when the user is going
to pick an attachment. Stop it from happening.

Bug: 5156507
Change-Id: I3c02ec9c0a17c9d5ea3d02377cfc6d6cd8870a49
ndroid/email/activity/MessageCompose.java
4b75ac992d349105b71864be156a46d19fc049bb 13-Aug-2011 Ben Komalo <benkomalo@google.com> Update visuals for new fonts.

- tighten up action bar spinner
- fix up message list senders/padding

Bug: 5159050
Change-Id: I00033d994a23f7fbb81cd72f53b9d66faa7570f9
ndroid/email/activity/ActionBarController.java
526fadbaa0f677a95866f516cbec875fdf1a1376 12-Aug-2011 Ben Komalo <benkomalo@google.com> Fix build

Change-Id: I366dad8d13dac5a157758a59d9d89552cd8d8084
ndroid/email/activity/ContactStatusLoader.java
6f96c779cf572b1680c2cbd68ae9858ca78f101e 11-Aug-2011 Ben Komalo <benkomalo@google.com> Hide presence icon when unknown.

- the "offline" icon isn't much use for a lot of our (non-gmail) users
anyways and it takes precious real estate in the header

Bug: 5147565
Change-Id: Iea3df0c1c3756ff749e50ce46a7437488dc169e7
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MessageViewFragmentBase.java
7c98d359907227608b02aea83cabb01af3e66069 12-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent infinite resizes in webview"
bd0d2a899ed32035ba2bf659e4390ffecc16cbaf 12-Aug-2011 Ben Komalo <benkomalo@google.com> Prevent infinite resizes in webview

Bug: 2349275
Change-Id: Iea502beafcc232105486dfdd5a2d93229313bc45
ndroid/email/view/RigidWebView.java
c165092ea2840cecdcfb1d3f8d330a5cfdc9b7a6 12-Aug-2011 Mindy Pereira <mindyp@google.com> Merge "Update styling of chips fields."
ce39730da0d1956b037abbc95ac54dbdb8a971da 11-Aug-2011 Mindy Pereira <mindyp@google.com> Update styling of chips fields.

Fixes b/5122133 replace recipient background with new multiline background

Change-Id: Icbdb1e885526ccbe1bbbb5e332db8532988a749e
ndroid/email/activity/MessageCompose.java
90a3f1e08bcd85f873aa2f6d90bedb08c4df2782 11-Aug-2011 Ben Komalo <benkomalo@google.com> Ensure message actions aren't available for EML

Bug: 5150912
Change-Id: I189eeed903d1af9b9da42b27acb91dd3e836c357
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
c18843d746a21e2fe81a3499d9b54c12f5982e6b 11-Aug-2011 Ben Komalo <benkomalo@google.com> Prevent EML messages from reloading indefinitely

- openMessageSync for EML files touches the provider since it copies
things into the Message table from temporary attachment data. Therefore,
acting on a reload of an EML message will trigger the observer, and do
the same thing.
- still unsure when or how this regressed, but I can't see the previous
behavior being correct regardless

Bug: 5150886
Change-Id: Icfcea7beb95b0fbb026184d6fdecc93c810569ef
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
b9e8c2def1a2992535882e90967e7fee0b173552 11-Aug-2011 Marc Blank <mblank@google.com> Merge "Remove STOPSHIPs in Email/Emailcommon"
a9f1631fb83200a59e40e23ed366f810d08b6f52 11-Aug-2011 Marc Blank <mblank@google.com> Remove STOPSHIPs in Email/Emailcommon

Bug: 5142183
Change-Id: I1f6e31bfd2e7c32bdd7886e54b02fd4640a96e6f
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/service/AttachmentDownloadService.java
6f50b7c3f06206be778fd073748a0ff4b87dabc5 11-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Fix issue where subject stays bolded when read."
217dc144bd967f21850cefc6e1a84e9d35a67f85 11-Aug-2011 Ben Komalo <benkomalo@google.com> Fix issue where subject stays bolded when read.

Bug: 5145057
Change-Id: I8ac88b219b2a2b84faf2707805b57eca5c960c80
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
d3ced7cce9c576dc3a1c7a82ac021f3b2436ac68 11-Aug-2011 Ben Komalo <benkomalo@google.com> Show helpful messages when no accounts configured

Bug: 5145213
Change-Id: I350d59e8afc72d1bad64cf7cf3d44750e8365a99
ndroid/email/Email.java
ndroid/email/widget/WidgetConfiguration.java
c3d9dba1096ea11e7c988a85cc994730e1e9403e 10-Aug-2011 Marc Blank <mblank@google.com> Merge "Fix SMTP validation code"
7751b42f82731ca1ca828643d0720994583f8ca8 10-Aug-2011 Marc Blank <mblank@google.com> Fix SMTP validation code

* Caching Senders isn't a great idea; during validation, it causes
the bug referenced below. It's a small optimization anyway, so
we'll just get rid of the cache.
* Also, remove unused code

Bug: 5144603
Change-Id: I539284dfa6d457fffd5cb011b8e1db5881249636
ndroid/email/mail/Sender.java
3f1a171f0bb8044f838868f39d0731632076e106 10-Aug-2011 Ben Komalo <benkomalo@google.com> Prevent NPE when arg cache is not init

Bug: 5146630
Change-Id: I5d90f4c915f1cbb437be88849e179efd29a4b9a9
ndroid/email/activity/MessageListFragment.java
2468b54db5bd505a253aa03e9a0734073087aa52 10-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Fix search styling."
75c86362e00c96cfa7c47e170dd0ea99cae462e3 10-Aug-2011 Mindy Pereira <mindyp@google.com> Merge "Add single chip copy."
4693fecab2806ec6134a7eead7f5311f3831cfc3 10-Aug-2011 Mindy Pereira <mindyp@google.com> Add single chip copy.

Fixes b/5143564 implement single chip copy

Change-Id: Ibcf058d7a1e8c18258a3117e9968d24a8723953f
ndroid/email/RecipientAdapter.java
56593af65ad25a69f81fb471d346c7519b58fbc4 10-Aug-2011 Jorge Lugo <jlugo@google.com> Pre-populate contentDescription for MessageListItems

Always populate the contentDesription rather than only
when dispatchPopulateAccessibilityEvent() is called. Makes
life easier for testing.

Bug: 5129286
Change-Id: Ide897b81ff30708b9d637cebbf8eb63f06084a74
ndroid/email/activity/MessageListItem.java
757c73634d60744b6039f73dab07394067aea03f 09-Aug-2011 Jorge Lugo <jlugo@google.com> Merge "Allow pre-populating of content descriptions when testing"
70a3f210418d060c4e1616f2692c728564cae9e4 09-Aug-2011 Jorge Lugo <jlugo@google.com> Allow pre-populating of content descriptions when testing

Creates isTesting flag in MessageListItem. When set to true,
populates the contentDescription of each message on initialization
rather than on touch.

Bug: 5129286
Change-Id: Ia0df93bf7399859a750a3fa01e5429436b9daf16
ndroid/email/activity/MessageListItem.java
03bc225d08570f3a09197171b0691bc0d4914de1 09-Aug-2011 Ben Komalo <benkomalo@google.com> Show color chips in account spinner.

Bug: 5011742
Change-Id: I6aa3d24b83ee1378bf30fb8466a52c6787d27277
ndroid/email/activity/AccountSelectorAdapter.java
2c4a6855bad7e2e92f0d02789b22dda0ed4386c7 09-Aug-2011 Ben Komalo <benkomalo@google.com> Make isInboxList check robust to combined views.

rookie mistake :(

Bug: 5141774
Change-Id: Iafc4907a4717143ccf8251a1fb452e1ff00aa5ff
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerOnePane.java
e91ff527ed5c076a10b6be077210bc4f22409792 04-Aug-2011 Ben Komalo <benkomalo@google.com> Update backstack model.

This makes "Inbox" the top level with the mailbox list one level under.
All "up"/"back" navigation is now identical and will take you upwards
towards the inbox before falling off to the launcher.

This uses a kludge and the "backstack" of the activity is not actually
represented now by the mPreviousFragment variable; it just uses tricker
in the onBackPressed()/shouldPopFromBackStack() calls to do the right
thing.

Bug: 5111629
Change-Id: Ide88efc78fe4f40d89b5ab83c480318e81902554
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerOnePane.java
ed494cd6bb071efd1bf290b98c977debc7d15022 09-Aug-2011 Ben Komalo <benkomalo@google.com> Fix search styling.

This eliminates the excessive padding on the left and makes the hint
text behave according to the new spec (since it uses the new action view
expanded mode).

A later CL will actually change the item to use the action view
facilities of the framework (so we don't have to manage our own custom
views).

Bug: 5109953
Change-Id: Ia3e4a1e64e65b3b8bb3e708b31636f4186acfd46
ndroid/email/activity/ActionBarController.java
547cae3c8efbce05b24dd2333b7f0c3909a9ebd3 09-Aug-2011 Ben Komalo <benkomalo@google.com> Move reply/replyall/forward spinner to actionbar.

Bug: 5126487
Change-Id: I56cd8861d6d616d1c4590f06c6f949cd84e5a42b
ndroid/email/activity/MessageCompose.java
3fdf92c977f50a90ba481c7a2a8a86f60ef9ccd2 09-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Move IntentUtils to emailcommon."
cf8a36531f4c41c8cf646623e8c63040718e17d6 04-Aug-2011 Jorge Lugo <jlugo@google.com> Remove done button from edit quick responses

Removes done button from edit quick resposnses fragment and
centers the "create new" button.

Bug: 5111173
Change-Id: Ia847725e5d3bdc67426f76dd386f2263befe4189
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
0e6a521747970d5427f10c25cdc070d2341dc93a 08-Aug-2011 Ben Komalo <benkomalo@google.com> Move IntentUtils to emailcommon.

This is needed so Exchange can fire up Email activities.
No change other than the move.

Bug: 5122497
Change-Id: I6ee3f61654745fafd444314ecf75eb8ae6bbd01d
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/IntentUtilities.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
e9dad11e1abc7df13324131c348628f04205a0e1 08-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Avoid NPE when subject/snippet are null."
86ed3c07a8cc53591db7de40475c476c3ec6d349 08-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Compose UI fixes"
dce6aafe4edc5668cdcb2d60d097c84e078adc54 08-Aug-2011 Ben Komalo <benkomalo@google.com> Avoid NPE when subject/snippet are null.

There are cases when subject and snippet re null. If the MessageListItem
is not being recycled (i.e. it's the first time), this can be detected
as "no change from the previous state (of being empty)", which doesn't
initialize mText.

Bug: 5129307
Change-Id: I6df910fb365b7e8c1dd298f787d21fbb438830fd
ndroid/email/activity/MessageListItem.java
03cb4a2135fce98109290e35093f73941c0dc10d 08-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Hide sync options and search icon when appropriate"
37a74697164b3e74fb10e0bf51bed7c064b275bc 06-Aug-2011 Ben Komalo <benkomalo@google.com> Hide sync options and search icon when appropriate

- hide sync options for mailboxes that aren't actually syncable
- hide search icon for any mailboxes that don't have any server
counterparts

Bug: 5086134
Change-Id: I60d5e5d1225a946464c5ea273c7d4b9299f433e5
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
b86da6b913364cfd076e25c10af53e1b55d2429b 05-Aug-2011 Ben Komalo <benkomalo@google.com> Compose UI fixes

- don't show error message if there are chips

Bug: 5126958
Change-Id: I65a22555260b00ded1df49668cde09b03d7f7d90
ndroid/email/activity/ChipsAddressTextView.java
ndroid/email/activity/MessageCompose.java
5b4a214240460cce547676b5e6d233184e91faf6 08-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Fix SSL certificate selection for exchange."
994343b14bfba216969a9d9e86b53312686f7832 05-Aug-2011 Ben Komalo <benkomalo@google.com> Fix SSL certificate selection for exchange.

- Since the Email and Exchange processes do not share UID, we need to
ensure the call to the KeyChain to request the certificate happens in
the Exchange process
- Misc UI fixes so it's not so ugly

Bug: 5117682
Change-Id: If80698850902e0178eb0998493b4cf4b89e2a15c
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/view/CertificateSelector.java
330b1273af3e3efdd6a858eb4e936b5862d97956 05-Aug-2011 Ben Komalo <benkomalo@google.com> Fix show pictures to not look broken.

- this still needs an asset for the "checkmark" button when showing
"always show pictures" prompt - using a checkbox on state as a
placeholder but it's probably not the best thing for it

Bug: 5037485
Change-Id: Iaa1d0f865bf0c01fde0b0cb37ea1c395345ed582
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
a08f654a1a44fb87b2afbef721ec931c1faed302 05-Aug-2011 Marc Blank <mblank@google.com> Merge "Catch case where provider reports returning null in error"
577e604df009df025ae3a5c5fa151c47f7877a43 05-Aug-2011 Marc Blank <mblank@google.com> Catch case where provider reports returning null in error

* Missed this one

Change-Id: I080bd3b910827336fcfde818564067db5b4ec3cc
ndroid/email/provider/EmailProvider.java
20b511ff6812837e7dc11db3f9ce398959307c09 02-Aug-2011 Marc Blank <mblank@google.com> Handle GB->ICS upgrade of POP3 accounts properly

* Heh.
* We were using the login from the HostAuth in creating the Account
Manager account, but it should be the email address from the
Account itself; in IMAP (and usually in POP3) these are the same
* But not for juno.com!
* Updated unit test coming in another CL (tests are broken in a
strange way, and the bug is FAST-blocker)

Bug: 5110013
Change-Id: Id11799e8b30a0420804f00c2d2f265e44e39c4c0
ndroid/email/provider/EmailProvider.java
6be8cceaddb93f5f9467854c8d11fa518e95c52b 04-Aug-2011 Ben Komalo <benkomalo@google.com> Update sync settings UI to specs

- minor text changes
- use light holo theme
- slight order changes

Bug: 5110452
Change-Id: Icf558ee495860dc97048765d3b8d09d31161dd32
ndroid/email/activity/setup/MailboxSettings.java
4418596f9bcc1ca47faa7637861f759920f4482a 03-Aug-2011 Marc Blank <mblank@google.com> Merge "More whack-a-mole in AttachmentDownloadService"
c74874c4afed8471cb54e8185bba180a3be2d886 03-Aug-2011 Marc Blank <mblank@google.com> Merge "Fix NPE in NfcHandler"
433b0ed9fef3e424563df70f22164508c970e4d5 03-Aug-2011 Marc Blank <mblank@google.com> More whack-a-mole in AttachmentDownloadService

Bug: 5115008
Change-Id: I6e5236e08331cfd6a9a11868d97bf5caaf68f6fe
ndroid/email/service/AttachmentDownloadService.java
2208f5dce9749b3e7a98bd3bcd445503b0c35c00 03-Aug-2011 Marc Blank <mblank@google.com> Fix NPE in NfcHandler

Bug: 5115848
Change-Id: I8e581aa77363bc1f33eb3267be5c924fba772aae
ndroid/email/activity/NfcHandler.java
5497cae94ce548c2743b9a708126aad324b1bfff 03-Aug-2011 Ben Komalo <benkomalo@google.com> Fix issues with state restoration in messagelist

- immediate issue was the the mIsFirstLoad flag was on the Loader
instead of the list - since the Loader is retained on rotation, we
didn't the initial list setup after rotation leaving the list in an
infinite "loading" state
- second issue was that list scroll state was being handled poorly - it
was always saved and restored needlessly. However, if two subsequent
loads happened prior to a layout, saving the list state actually saved
bad values (the restored state only seems to take effect after layout)
- third issue was the footer mode was being handled poorly as well - it
was always updated, which required re-setting the adapter every time,
which reset the scroll position. This was why we were always trying to
save/restore scroll position.

Overall this should speed up the list loading and data updates in the
list by a bunch.

Bug: 5110000
Change-Id: Id2f6db928c095ae10ee55b40e7e9241d70e0bebe
ndroid/email/activity/MessageListFragment.java
0a12a6636c86133b7ec3a5aaa148e2d1c3b75d82 03-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Minor visual fixes in message list"
2313f48bdc34409a1d17bd841d440d8215eb9528 02-Aug-2011 Ben Komalo <benkomalo@google.com> Minor visual fixes in message list

- changed activated font to white
- ensure activated bg is set even for wide (as it shows for a split
second when you select a message right before the slide animation)
- attempt to make the animation not so abrupt

Bug: 5110992
Change-Id: Ie05e0a6a09afb97155b26d28672d4a2fb79cc563
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/ThreePaneLayout.java
263d0ec707fa8eede6eeaaf54caed889d2663f2e 02-Aug-2011 Ben Komalo <benkomalo@google.com> Fix account spinner width.

- make it take up different size on phones and tablets (also landscape
phone/portrait phone)
- move unread count outside of the spinner area

Bug: 5108972
Bug: 5111250
Change-Id: I2c16bbb52ce53bbf1c8fe08fd78f1a4b4afd4ccf
ndroid/email/activity/ActionBarController.java
171d7303c8860b915efef028adb8f53c4aabb3c2 02-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Update message list item redlines."
383279a1c5e0cba982645a5ed06e06534d12159e 29-Jul-2011 Ben Komalo <benkomalo@google.com> Update message list item redlines.

- reduces number of "modes" to just two: normal and wide
- consolidate the normal/narrow modes for phone and tablet (as per spec)
with the only diff on the tablet being side paddings
- fix issue with "white arrow" visual being shown in phone when tapping
on a message
- make touch computations be resilient to padding values instead of
assuming that the check/star icons are right at the left/right

Bug: 5103823

Change-Id: I23f967454f7744d9c59256625e302e54a353994a
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
36aef9fb7434bb9fa01dc28038358a4d411a4f00 02-Aug-2011 Marc Blank <mblank@google.com> Add logging to v21->v22 upgrade; small cleanup

Change-Id: I6659998a3ad2490c923061aab5328469c3222e25
ndroid/email/provider/AccountBackupRestore.java
ndroid/email/provider/EmailProvider.java
c1312ff65fd1a71104fcd04657e40ef5e8af30ad 02-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Save IMAP prefix."
bcd1339610ed47cc8ac971f50acf6c7b2d993b8f 01-Aug-2011 Ben Komalo <benkomalo@google.com> Merge "Minor changes to actionbar for message view"
b6e2bd85a46142f675bf48a7e29ad6c4f1dcf68e 01-Aug-2011 Marc Blank <mblank@google.com> Merge "Make "security required" notification ongoing"
3baefc2da0c5ef6d386ac6ff77f270215cd788d3 01-Aug-2011 Ben Komalo <benkomalo@google.com> Minor changes to actionbar for message view

- hides the unread count and account name
- makes the subject two lines

Bug: 5103483
Change-Id: Ied537a0c7d8142ecebe49638a814010790433299
ndroid/email/activity/ActionBarController.java
5125c06cef67447a0ef5881d8fbfd6b73e1dfd0a 01-Aug-2011 Ben Komalo <benkomalo@google.com> Save IMAP prefix.

Bug: 4517078
Change-Id: I4f4a1e490abc78088ec8ded4e4627e5da1ac3fd2
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
27a04fecfb267e3498d7e0d621443176cd6e1474 30-Jul-2011 Marc Blank <mblank@google.com> Fix EmailProvider database upgrades

* Two of the upgrades (v21->v22 and v25->v26) need to be fixed so
that they don't reference columns that might not exist.
* Oops

Bug: 4439595
Change-Id: I4a8c556be22bb85fb78807416cd1d6b81c6ef118
ndroid/email/provider/EmailProvider.java
8bdfee9eec8ffc82f95604874518d2258bb77430 29-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Update assets"
d9e8dcae2f863fcb4a5fc91a167e8cf261151163 28-Jul-2011 Ben Komalo <benkomalo@google.com> Update assets

- updated checkboxes (new ones for sw600dp and phone)
ones for phone)
- updated stars (new ones for sw600dp and phone)
- added existing cc/bcc icon to menu item
- updated reply/replyall/forward actions to dark themed items (renames
involved)
- update message list backgrounds (new ones for hdpi,xhdpi, renamed
everything so that there is no message_ or conversation_
suffixes, also added missing states for some of the selectors)

Change-Id: I1b4f49f206b846566870f5b430e3c6386e621a0c
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageViewFragment.java
1f825aa5382c8a3ab958e46b43ce31b9c0f4675f 28-Jul-2011 Marc Blank <mblank@google.com> Merge "Catch NPE in AttachmentDownloadService"
d9b2a8f237492951f71abeb8f2ce359311862f21 28-Jul-2011 Marc Blank <mblank@google.com> Make "security required" notification ongoing

* While investigating the referenced bug, it was discovered that
canceling the "security required" notification (with "X", rather
than the "cancel" option in the dialog) causes the notification
to be unavailable until a reboot
* This puts the account needing a security update in the position
of being unsyncable, and might explain the referenced bug (we
have no confirmation of that step; on the other hand, the tester
can't now reproduce the problem, so an unusual action like this
is to be expected)
* The fix consists of making this particular notification "ongoing",
which prevents the user from dismissing it; arguably, this should
always have been the case anyway...
* Consider this fix for backport into LTE and MR2 branches

Bug: 5072343
Change-Id: Ia7419236cf9389380d1e079b1a9a6f425015c487
ndroid/email/NotificationController.java
0306da14e33d5ba0a169be82925e797a9f03e4db 28-Jul-2011 Marc Blank <mblank@google.com> Correct recently added EmailProvider logging

Change-Id: Ica61b7bcbe455448a1a261c83defa840ab1abf3e
ndroid/email/provider/EmailProvider.java
f64fd6fe71af9595ba9ab5b3ed9448cf966dd6c4 28-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Search delay fixes."
7390b187767b559f693666156b8ca5c7c25bcfe4 28-Jul-2011 Marc Blank <mblank@google.com> Log return of null from query()

* This shouldn't happen, but ... log it just in case

Change-Id: I8b8df3fec84c9dd14ebb222ee665b0712f63f213
ndroid/email/provider/EmailProvider.java
41c63a05eb04e5e1c6e12676768fd6e40dcbe913 28-Jul-2011 Marc Blank <mblank@google.com> Catch NPE in AttachmentDownloadService

%$!@#*&%

Bug: 5055519
Change-Id: Ie155c8d0f9931b51613f7d77e4545531bc148964
ndroid/email/service/AttachmentDownloadService.java
391b9d4abd935cf19e530972544946889b932fb6 27-Jul-2011 Ben Komalo <benkomalo@google.com> Search delay fixes.

- adds a loading state to search so the user isn't left with a blank
screen for several seconds
- adds a timeout so that a warning message is shown for results that
take over 10 seconds
- use default loading/no message views in ListFragment so we don't have
to manager our own stuff

Bug: 5014107
Bug: 5037618
Change-Id: I8b03fa0967055989156c7777901affc777c4fae7
ndroid/email/activity/MessageListFragment.java
1340b2f82b42e9d6afc7ff7ed4468aefcc8d5bc9 26-Jul-2011 Ben Komalo <benkomalo@google.com> Hide irrelevant options in mailboxlist.

Bug: 5080327
Change-Id: Ief9544b9d8a70a16b90f268bca1342b697fc6962
ndroid/email/activity/UIControllerOnePane.java
c34e2dcb3d7a16495aa687e8f1ca83d40732b029 26-Jul-2011 Martijn Coenen <maco@google.com> Merge "NFC zero-click sharing for Email."
1278df63dedaed22cfdd235766a87fc2e63a8544 26-Jul-2011 Marc Blank <mblank@google.com> Merge "Ignore watchdog alarms for stopped service"
cb2f0a8bb9ff6728a111b1f790c12555ac7086fb 26-Jul-2011 Marc Blank <mblank@google.com> Ignore watchdog alarms for stopped service

Bug: 5055519
Change-Id: I35352364f3f2842932ad40e47d70646bb6d42349
ndroid/email/service/AttachmentDownloadService.java
e5b15cd3c8450c935ce43ca9be83a23bcdd565a2 01-Jul-2011 Martijn Coenen <maco@google.com> NFC zero-click sharing for Email.

This shares the e-mail address of the currently shown account
over P2P NFC links. Note that the currently set account must
be updated actively, because the callback to create the message
comes from one of the NFC threads, which don't have permissions
to retrieve the account and the correspondig e-mail address.

Change-Id: I12e48a3787d469179e7ca074429106ed24e3a212
ndroid/email/activity/NfcHandler.java
ndroid/email/activity/UIControllerBase.java
1f02d123d27e88ae29621bd03b520f63dafcb516 26-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fix mailbox finding and unit tests."
cb1d65c47825dc7a45c7954cd93669296b35305e 26-Jul-2011 Ben Komalo <benkomalo@google.com> Fix mailbox finding and unit tests.

We seemed to not properly fallback to querying the database if the cache
did not contain a mailbox of a specific type. We may want to consider
caching mailboxes related to PIM data, but for now this is a quick fix.

Also fixes unit tests.

Bug: 5019661
Change-Id: Idcac0a6f15aa7f174890ae586f478fbb8f6e05b7
ndroid/email/Controller.java
79198b913f6cf0bc8ad391594d010bffeaa691e4 25-Jul-2011 Mindy Pereira <mindyp@google.com> chips: Use view instead of string.

This allows us to get the correctly styled more view.

Change-Id: Ifebea40eb2b0a27a5aba772c628cf95d22445e38
ndroid/email/RecipientAdapter.java
50f4fbf2f6e698da105aa13fbf7ee827c76498ed 25-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Add in settings menu in Welcome."
74acf8d9de946f010bc3f2aa71ee2c35653996ec 25-Jul-2011 Ben Komalo <benkomalo@google.com> Add in settings menu in Welcome.

This will avoid cases where the user is permanently stuck, if we fail to
error out when a failed sync occurs or for any reason.

Bug: 5032763
Change-Id: Ib82a62add767d13dc844a90e5ea4147d3ada59dd
ndroid/email/activity/Welcome.java
ec44a479409981cd740e35903f82cc8e8d772b06 25-Jul-2011 Mindy Pereira <mindyp@google.com> chips: the seperator methods are no longer needed.

Check this in after:
https://android-git.corp.google.com/g/#change,123745

Change-Id: I3228251debfd4a81cd2dc16f05636d64533f9c6d
ndroid/email/RecipientAdapter.java
30183e536ea20a30550e5fbf04af75fb88f35178 23-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Always show from field in compose"
72a24f12a2a0a48528cf0f826397e2348fe8ace2 23-Jul-2011 Ben Komalo <benkomalo@google.com> Misc settings UX fixes.

Bug: 5068602
Change-Id: I02acf3690e98ce747ddb4d3a745ac2fa59948c70
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
2903be7f3e05b3d2f7d690db5f85d3a6c80ba522 23-Jul-2011 Ben Komalo <benkomalo@google.com> Always show from field in compose

This info used to be shown in the top right of the status bar in GB but
that is no longer there. So before this change there was no way to tell
who you were sending as.

Bug: 5069124
Change-Id: I10d687a5fd221e65ecfc71b61cccf306492e27b8
ndroid/email/activity/MessageCompose.java
48a3a1c51c11e3a752d7178e5c12c6caec842526 22-Jul-2011 Ben Komalo <benkomalo@google.com> Ignore notifications for unloaded messages

Seems like POP envelopes could get into the database and tickle the
NotificationController even before we got the full subject/sender. Just
ignore those things until the basic info is loaded.

Bug: 5061271
Change-Id: Iadfbff8a1615d2644880f5cae3727768f4f9549a
ndroid/email/NotificationController.java
ccb70fcad9e75a2dd3f41a488dc2795e77bad17f 22-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fix notification issues."
23a4b15e08bfe57be3242790d1a92db8dd4b9980 22-Jul-2011 Ben Komalo <benkomalo@google.com> Fix notification issues.

- use title as ticker text
- also properly play notification sounds on new messages. Before, if you
left a notification unread, and a new message comes in, no sound would
be played. Since fixing that, it introduces another issue where on
initial sync, tons of new messages come in (and the sync could take > 1
min). We throttle them with a 15 second interval. The notification is
always updated to reflect the most up to date information, but sounds
will never be played closer than 15 seconds together.

Bug: 5020191
Bug: 5067059
Change-Id: I5ca474fd3b210ee856035bd78bd72931da80fe40
ndroid/email/NotificationController.java
a10d4a8e4532f879cf1ab3163ece2c41457d9e13 22-Jul-2011 Ben Komalo <benkomalo@google.com> Prevent crash when composing a message on tablets.

We were hiding the cc/bcc menu option, but on tablets that is a visible
button on the UI and not in the menu. whoops.

Bug: 5067057
Change-Id: I10ecaf115b589b9200529f6ea7703428456b8f0f
ndroid/email/activity/MessageCompose.java
6a902861e91c7ccd3a74187a49e34477c2350e6d 22-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Don't touch the cursor in the background"
b30d635dd019db8d8b69621b888ea5e0a4164fe5 22-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Guard against null items in NotificationController"
a926c32aa202efa1b44618e2bdcd7019c412314b 22-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Improved shortcut name"
7496b5ba2b08db3a23e8205cd437474372a8dafc 22-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Display message when no quick respones available"
5fb6c5d4de550d083acd7977cd108579ef0445f4 22-Jul-2011 Ben Komalo <benkomalo@google.com> Don't touch the cursor in the background

This prevents accessing a potentially closed cursor when doing batch
operations that will inevitable cause the the list to be reloaded (and
cursor to be invalidated) as the first of the messages are
touched

Bug: 5051730
Change-Id: I90328ee02eafe6ad238d8c57e88a3d96259f6547
ndroid/email/activity/MessageListFragment.java
4ca1ca862202100f89b7ce24509ab7e310bf7191 01-Jul-2011 Jorge Lugo <jlugo@google.com> Display message when no quick respones available

When editing quick responses, displays an appropriate
message letting users know that there are no quick responses.
Additionally, the MessageCompose activity will only show "insert quick
responses" when at least one exists.

Bug: 4948180
Change-Id: I1191bd54d6e64f990b6d6830f0837579d7a6918c
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
79fab5ae623ea75ba526e2673fe6749066b177e4 21-Jul-2011 Jorge Lugo <jlugo@google.com> Improved shortcut name

Shortcut name is now the name of folder when it's a non-inbox
folder; otherwise it's the account name. Previously was
always account name.

Bug: 4903490
Change-Id: I15b4024d28db6a48464e423db887bdca99132423
ndroid/email/activity/ShortcutPicker.java
af5826cc7a25c26200af192207a14284e41f3b01 22-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Optimizations to startup."
80b817714f692ee22163dfcbc730bb09fdce8aed 22-Jul-2011 Ben Komalo <benkomalo@google.com> Optimizations to startup.

- don't inflate search views - inflate them on demand
- kill some unneeded containers

Bug: 4996847
Change-Id: I7747e194e7c0939ad6416f351096639b283f4899
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/MessageListFragment.java
9867d8a160fc0705209e738bb7abb905f18f516b 21-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent touching closed cursor"
87d8ab4bb42c67a7a273c1ae76d94bf60cb3132a 21-Jul-2011 Ben Komalo <benkomalo@google.com> Prevent touching closed cursor

Bug: 4595568
Change-Id: Ic3087dc5f194aa879a3fea9d45fe77a1e285bde0
ndroid/email/activity/MailboxFragmentAdapter.java
5479f061abed6998a358d5e421194b24d350f195 21-Jul-2011 Ben Komalo <benkomalo@google.com> Remove cc/bcc option from menu when used.

Bug: 5055403
Change-Id: I3a349ddf7b5b186bb6daccd7151b8b352cab0050
ndroid/email/activity/MessageCompose.java
eb9dcfaf18fcc8c1bf0a51238fc6e13873e8334e 21-Jul-2011 Ben Komalo <benkomalo@google.com> Guard against null items in NotificationController

If the account is in the process of being deleted, large parts of its
data may be being removed in parallel with notification processing. We
never handled this very well.

Bug: 5058333
Change-Id: Ic588b68438a9c5829e7e3fd5c8d52e21a037b9f4
ndroid/email/NotificationController.java
9d0bb2e3a07144517e6449aa9fcdc6c79ea99be5 21-Jul-2011 Ben Komalo <benkomalo@google.com> Hide attachment size info if unknown.

Bug: 5011871
Change-Id: Ide56b79c036b16a66720228660f3eed76a9c9ba2
ndroid/email/activity/MessageCompose.java
8d8814ed35bbb724fbcad02a9944e3655059e311 21-Jul-2011 Ben Komalo <benkomalo@google.com> Consider attachments for empty messages

Since we thought the message was empty, tapping on back doesn't save the
draft.

Bug: 5057044
Change-Id: I99d903430b0e0a40dc23eb805cf24961e9ca2301
ndroid/email/activity/MessageCompose.java
3f0ac78eab12a0634a3eedd10c3b7c3230e39311 21-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Remove "Move" action on POP."
81a153463bd9d2e4f71a0985a102548b16a88ec0 20-Jul-2011 Ben Komalo <benkomalo@google.com> Remove "Move" action on POP.

Bug: 5010614
Change-Id: If0a94840e9dc104566ba39d2e3240883dab5bba0
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MoveMessageToDialog.java
7688300055a4ea84cd95768145f773d7c3259948 20-Jul-2011 Ben Komalo <benkomalo@google.com> Fix sync window settings for EAS setup on phones

- the container is the one that should be visible/gone - individual
fields should just be visible
- also do drive by javadoc fixes

Bug: 5052310
Change-Id: I45c4b6b7f94b2b62ac94eeff0ab97bf34c9e117a
ndroid/email/provider/AccountReconciler.java
ndroid/email/service/MailService.java
6496562610bec202c605ec377a254344d520cdd3 20-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent search on POP"
5aa3d71209130bc3189440523d51dc4615446bbc 20-Jul-2011 Ben Komalo <benkomalo@google.com> Prevent search on POP

We were hiding the search icon from the actionbar but didn't take into
account the use of a hardware button.

Bug: 5051691
Change-Id: I2e0bfd1d0bb4faa3238e567c02189894db5f6c44
ndroid/email/activity/UIControllerBase.java
1ecfb5311b0315edf86a450398a8712dbfd86772 20-Jul-2011 Ben Komalo <benkomalo@google.com> Remove illegal references to IsolatedContext

This fixes a crash on account deletion, leaving around bad accounts that
were in limbo
Also remove a test for an unsupported operation

Bug: 5051951
Change-Id: Ieebc7f769075614ae1a656cf123d8ce0313e611d
ndroid/email/Controller.java
e12c0522f84b4cd9080c85f5f53dd9d07ae57336 20-Jul-2011 Marc Blank <mblank@google.com> Merge "Remove NotificationService; use Account columns for data storage"
aca94265813e72e692eace527f43eb4c02b09c76 20-Jul-2011 Marc Blank <mblank@google.com> Remove NotificationService; use Account columns for data storage

Bug: 5023662
Change-Id: I84df3b474dd6320327851003af985144cc16348e
ndroid/email/Email.java
ndroid/email/NotificationController.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/NotificationService.java
c01ce156e8447ba707f802b01a7625375ff8b230 20-Jul-2011 Ben Komalo <benkomalo@google.com> Minor change to keep same account if possible.

On second thought, it's probably best to stick with the same account if
I can't find a particular folder. This at least is less jarring if the
user has multiple accounts.

Change-Id: Ifd5d631b220e260399681008ac17203f5451c8ff
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
1ef8ec61c9e4d717c6d4dff6136f85f84c387856 20-Jul-2011 Ben Komalo <benkomalo@google.com> Misc STOPSHIP cleanups.

Apply the same logic to mailboxnotfound for two pane.
also remove some obsolete callbacks.

Change-Id: I942c2b557fce2601a0e46878cfe4d5ce2cc83850
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
0413edd6261f3879894840ff017c3c933ddb586d 20-Jul-2011 Ben Komalo <benkomalo@google.com> Remove STOPSHIP

- ensure that the commitAllowingStateLoss is actually not dangerous - we
only had one case I could see where we were actually doing a transaction
from a loader callback and I fixed that just now to not do any
transactions.

Change-Id: I21e11138f70eb2ce953a5ba54119ca46555f465d
ndroid/email/activity/UIControllerOnePane.java
6edddbf714dd83bcc2bcc4560293caa31091cd45 20-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Misc attachment code cleanups"
dfff72f731fe0704cc0b6f17e086edd72219e7ca 20-Jul-2011 Ben Komalo <benkomalo@google.com> Misc attachment code cleanups

Change-Id: I612b3ed1280d4d057834d3d3e67c8ac17c2bafb6
ndroid/email/activity/MessageViewFragmentBase.java
c6df1d605fb3e235df6d4a21ae00632c9d6e3cc2 19-Jul-2011 Marc Blank <mblank@google.com> Prevent NPE's in AccountSecurity

* This CL fixes the referenced bug, but it does NOT explain how
mAccount; best guess is that the process was killed and then
restarted when the result from DPM was available.
* Assuming this is the case, we remove the background task loading
mAccount, avoiding a possible race.
* Also, it's not clear why clearNotifications didn't use the
account id argument; what if there's more than one account that
uses security? Filing a bug about this.

Bug: 5048912
Change-Id: I734834337ab6e409d77624e7c7370350de76becb
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
d1f03736e60340e6792c05ffa3ff085735b49e2c 19-Jul-2011 Marc Blank <mblank@google.com> Merge "Clean up account reconciliation"
4e4aba9ebc43c6a83190f3a883fa05bb7d5100b3 19-Jul-2011 Marc Blank <mblank@google.com> Clean up account reconciliation

* Move AccountReconciler to the Email app (from EmailCommon)
* Ensure that Controller.deleteAccountSync() performs ALL actions
needed to clean up after an account deletion (delete attachment
files, reset policies, refresh the UI, etc.)
* Add reconcileAccounts() API to AccountService
* Remove accountDeleted() and restoreAccountsIfNeede() from the
AccountService API
* Remove unused callback

Bug: 4883073
Bug: 4767084

Change-Id: I43ffaf009db1a6f306bb0f2a74fb4dd3b2c4b966
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/provider/AccountReconciler.java
ndroid/email/service/AccountService.java
ndroid/email/service/MailService.java
5ce13dba1f85c515247078f36f8d250b22024c33 19-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Preference panel screen titles don't change on rotate"
18811dfb457eff8ba8b5436bd2641a4215480cdf 19-Jul-2011 Ben Komalo <benkomalo@google.com> Add touch slop to message list items

Bug: 5016987
Change-Id: Iddeb9a7bc244d3215a418f0897778b9ddcb3e955
ndroid/email/activity/MessageListItem.java
776997e62ec1a20d741e78d8e646b6fc38901f4c 19-Jul-2011 Ben Komalo <benkomalo@google.com> Update message compose to phone spec

- move cc/attachment to overflow menu
- misc layout fixes

Bug: 5011868
Change-Id: If17a36c9e7f13115828a957163af5969b6f8f93e
ndroid/email/activity/MessageCompose.java
ae594dc0ca4748a97ee8ae05c5f5c828121934e8 16-Jul-2011 Jorge Lugo <jlugo@google.com> Preference panel screen titles don't change on rotate

Incoming settings, outgoing settings, exchange settings, and
edit quick response preference panel titles no longer
change to "Account settings" when screen is rotate.

Bug: 5011355
Change-Id: Ibaf68bc836a61777de929623bff2bf2dd4ae0c3b
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ecf8672df290ca996a5126532b72f8f22920c277 18-Jul-2011 Marc Blank <mblank@google.com> Merge "Fix NPE in onStartCommand"
b31b798b4675a632c837415a89597589c3aa0074 18-Jul-2011 Marc Blank <mblank@google.com> Merge "Don't allow actions on empty sets"
b8f672465a87362ccc6d8db2a94773a695cdac7d 18-Jul-2011 Marc Blank <mblank@google.com> Merge "Remove unnecessary EmailAsyncTask"
90a48115517c49a954eaa1b79b72a23b4486107a 18-Jul-2011 Marc Blank <mblank@google.com> Fix NPE in onStartCommand

Bug: 5041436
Change-Id: Ib7462e5c8cb040b7526d9a655c5ab3f41cd159b8
ndroid/email/service/AttachmentDownloadService.java
21cbdd88e1c285044773f10d9784c1718ce4d584 18-Jul-2011 Marc Blank <mblank@google.com> Merge "Start/stop AttachmentDownloadService as needed"
b2a8c2ce4c617d59cb4876951cb952fc97e8382b 15-Jul-2011 Marc Blank <mblank@google.com> Start/stop AttachmentDownloadService as needed

Bug: 5033646
Change-Id: Ic0e75b28d0d8d5665c3f3ca864a9532fee05df8c
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
e71a19a52313a0fb615700e52a336b65f3c305da 15-Jul-2011 Ben Komalo <benkomalo@google.com> Build default mailboxes for POP3

Bug: 4580535
Change-Id: Ic800eed387d3e9e64e95cce691d13d98b4a48045
ndroid/email/Controller.java
ndroid/email/mail/store/Pop3Store.java
2126caf0765e0fe078a356ac8ad96b741d65d715 18-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fix NPE in MailboxListFragment"
48f4df09115d8dfbdd459df130dd6328c6b6c1ae 18-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fixup settings entry points."
3c4061ae61fd2ea713d94e9fd1233b961b57ad84 18-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Filter out inbox from recent mailboxes"
1d0609d386cbaeb986cd14bbd849940052dba39b 18-Jul-2011 Marc Blank <mblank@google.com> Don't allow actions on empty sets

* Not sure how this could have happened, except possibly for some
race condition
* Let's make sure it's impossible

Bug: 5032454
Change-Id: Ibd4de22dc5298fbaaf224cf4286f63bdc50aa7b9
ndroid/email/activity/MessageListFragment.java
9f05f72ab3c92fd539dc6353a8fa1e59f5f09e4a 18-Jul-2011 Ben Komalo <benkomalo@google.com> Fixup settings entry points.

- include settings in menu in message view
- remove "show all mailboxes" from message view
- rename "Account Settings" to "Settings"

Bug: 5039294
Change-Id: Ic2dcbe8fe6e2bd10cc5d790a74c49a7159b59cab
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerOnePane.java
2be03be9b39a328b81d3e79af932a6f142b28ddf 18-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Remove temp code that was causing an NPE"
64a6a1f488e49397c969baa181c398973a1f7283 18-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Show proper quick contact mode."
6b4a20730f104df284c1b0226b53565a7f3db3da 18-Jul-2011 Ben Komalo <benkomalo@google.com> Show proper quick contact mode.

- doesn't repeat the name
- shows status and right icons instead

Bug: 5039507
Change-Id: Id86d84a8ed54032f283454c83212ae962e8fc179
ndroid/email/activity/MessageViewFragmentBase.java
0932da35f5696f99cbba9abf8d98818576b784fb 18-Jul-2011 Ben Komalo <benkomalo@google.com> Filter out inbox from recent mailboxes

Bug: 5039553
Change-Id: I9b58e9331028250f9bc3027429d2a6ec418186d6
ndroid/email/activity/RecentMailboxManager.java
afbba1bcbb63559e8c6a3090494c7830311021e3 18-Jul-2011 Ben Komalo <benkomalo@google.com> Fix NPE in MailboxListFragment

Bug: 5037646
Change-Id: I74420d68398446f602ebe858760d9aaf5f88c107
ndroid/email/activity/MailboxFragmentAdapter.java
3793ec24632dca2815723a12af96342e2dd99fe4 18-Jul-2011 Marc Blank <mblank@google.com> Merge "Handle message sets in a single EmailAsyncTask"
e2d28a06077ac0c394f1989b97a9f8d0019daa01 18-Jul-2011 Marc Blank <mblank@google.com> Clear "security needed" notification when releasing holds

* This fixes the issues with erroneous notifications remaining
active

Bug: 5039388
Change-Id: Ib1cd506e732e34f6368036a131d79270b22d4a4b
ndroid/email/activity/setup/AccountSecurity.java
14ea7d7bbce6397b34e205c1ed14b26c91083de7 18-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fix possible NPE for messages with no subjects"
f29221efc921b91ffbe89a790277d4ef56389749 17-Jul-2011 Marc Blank <mblank@google.com> Remove unnecessary EmailAsyncTask

Change-Id: Ifb13f2f57016191f7ef409aa656bf9cb840f42c9
ndroid/email/activity/EmailActivity.java
b81a31b29b22b1b11e8ad636638d2b8213e9f199 17-Jul-2011 Marc Blank <mblank@google.com> Handle message sets in a single EmailAsyncTask

* This prevents the possibility of RejectedExecutionException when
selecting large numbers of items

Change-Id: I8f9ba287d69021fdb99b4a8a30cc79755f669b97
ndroid/email/Controller.java
ndroid/email/activity/MessageListFragment.java
7f876c0375fd65d8796a96f137481a4c28593617 16-Jul-2011 Ben Komalo <benkomalo@google.com> Fix possible NPE for messages with no subjects

Bug: 5038097
Change-Id: I0952158017c0d512998f423ecd38722a5b6b8afc
ndroid/email/activity/MessageListItem.java
eb642812bf5a6baf42a0f8c022e44115d565ee84 16-Jul-2011 Marc Blank <mblank@google.com> Merge "Clear account incomplete flag properly; handle unusual flow"
2845d72af03b26804fb305202646a9ede234e38e 16-Jul-2011 Ben Komalo <benkomalo@google.com> Remove temp code that was causing an NPE

- since listContext can be null, this code was not safe.
we also filter out the search mailbox too, so it's no longer needed.
- don't ask to highlight a mailbox if doing a search
- remove a call in MailboxListFragment that was unconditionally telling
callbacks that something was selected when we started loading - this was
technically lying and if the item isn't in the list that was selected,
nothing should be called (as in the case of search). This was just an
optimization anyways and that callback is invoked later when the mailbox
list load completes.

Bug: 5037629
Change-Id: Id31c6795af9e64fa8682b67de9ab90540ee660df
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerTwoPane.java
0796b8aa61d6782a425e68cd77763ea1e701e592 15-Jul-2011 Ben Komalo <benkomalo@google.com> Don't save empty drafts.

Note: all unicode sending unit tests are broken due to chip issues. I've
filed a separate bug on that.

Bug: 5012204
Change-Id: I17392f65e5bd8349780b79d9cbe10492d8e7a7d9
ndroid/email/activity/MessageCompose.java
8df9af0df3ea8d987b06364f388cd5de57c7bea9 15-Jul-2011 Marc Blank <mblank@google.com> Clear account incomplete flag properly; handle unusual flow

* We waited to clear the incomplete flag until security was agreed
to, but this can lead to accounts left incomplete; we now clear
the flag as soon as the AccountManager account is created (by
convention, this is when the EmailProvider account is complete)
* Also, allow onDone() to be called more than once with a saved
account, leaving cleanly, rather than throwing a runtime
exception

Bug: 5016792
Change-Id: Ib5fc44ac045a1dd9bd5d63f922c037ed637d5341
ndroid/email/activity/setup/AccountSetupOptions.java
1086830bae3d16026136fc40e926eb26e47e449e 16-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Improve accessibility for stars and settings"
fad737803113c13a32aca0346b54da0790ce49d9 16-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Don't save empty quick responses; show keyboard on phone"
cbfbe1db2d9cae835ae1cf64f92057998c574c66 15-Jul-2011 Ben Komalo <benkomalo@google.com> Toggle selection on list item on long press

Bug: 5020642
Change-Id: I31498122a4fe41cc81e5dbad5550a5e6620924c4
ndroid/email/activity/MessageListFragment.java
8e779e627a2185320ab168fdce09477a73bf5f22 23-Jun-2011 Jorge Lugo <jlugo@google.com> Accessibility improvements

TalkBack functions properly with MessageList items, as well as
"reply," "reply-all," and "forward" buttons while viewing messages.
It is now also possible to switch accounts using only a dpad
or trackball. Finally, EditText fields in account setup also work
with TalkBack now.

Checkmarks don't work with Talkback, but this I have confirmed and
reported it as frameworks bug.

Change-Id: I7f72682a517eef4fa122241c675026fe7997ac64
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
5e52339306c80b0b78f9869d752e14ee9269556b 15-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Update message header actions for phones."
91f1d451a661a2806d943dd33ecc46c8a376cbcd 15-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Put "show all folders" in action bar"
1917bcbc17b8fd262fb8e78d8906359d5b3cf8b9 15-Jul-2011 Ben Komalo <benkomalo@google.com> Put "show all folders" in action bar

Change-Id: I4af74342b3b1eae3a94ebf6616280ebf47d14e5f
ndroid/email/activity/UIControllerOnePane.java
08f068c9cef4370c8ca6e21d5e7d3aaca1f22f25 15-Jul-2011 Ben Komalo <benkomalo@google.com> Update message header actions for phones.

- This creates a "more" icon in portrait and shows all three actions
(reply/replyall/forward) in landscape.
- also makes the star visible by default (hiding it in EML view)

Change-Id: Iefff7c0717cfda4dc91218b0d490775294c96103
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
68ce7f3d6000a104f8e81d8ae92f85911453cb01 15-Jul-2011 Marc Blank <mblank@google.com> Merge "Send proper parameter to startSync (via EmailService)"
7920f5809cdd21744ce628c9520539bd6b1d91e9 14-Jul-2011 Jorge Lugo <jlugo@google.com> Don't save empty quick responses; show keyboard on phone

While creating or editing a quick response, disables the save
button when the edit text is empty. Also, now shows the keyboard
on the phone as soon as the dialog box pops up to edit/create
a quick response.

Bug: 5011277
Change-Id: I9926d07cae0e527a7c08a4cc556a9569a91d2f33
ndroid/email/activity/setup/EditQuickResponseDialog.java
b507ece493d109be14948bf995ac46ad3f5edcdf 14-Jul-2011 Ben Komalo <benkomalo@google.com> Remove stale STOPSHIPs

Change-Id: I2364e1dbf25b9df20ef9fa9014e19cbbab278a3b
ndroid/email/activity/UIControllerTwoPane.java
83b0f4434c85a88bd5c28214b652bc5fbac5dae2 14-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fixup recent mailboxes."
d6ad9b8c0315e7718d1713cec1a81b5a82d768ac 14-Jul-2011 Ben Komalo <benkomalo@google.com> Fixup recent mailboxes.

The default recent list should be pre-populated and fall off the list as
normal. The previous implementation showed a default list if there were
no touched mailboxes, but then the default list disappeared as soon as
there was one touched.

Bug: 5020673
Change-Id: Ifad607a9d36feff837ab42d039ce9209f223f345
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/RecentMailboxManager.java
7667632eb24653ef208261651298996f5fdf6911 08-Jul-2011 Jorge Lugo <jlugo@google.com> Improve accessibility for stars and settings

Adding and removing a star triggers the appropriate accessibility
In incoming/outgoing settings, added EditText contentDescriptions.

Change-Id: Ibab461f1425b3ebf3579ebc1d0b36d1a9a5efdb2
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
21913ced328b341cc11de7e49eb07433bb460b4c 14-Jul-2011 Marc Blank <mblank@google.com> Send proper parameter to startSync (via EmailService)

Bug: 5014063
Change-Id: If236a02e92adef06f2a9ca3779d08778915ed6e9
ndroid/email/activity/UIControllerTwoPane.java
b9d835a2bbbc6612c5b640b089f094ab665367a8 14-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Don't display warning message on edit incoming settings"
cf194df05c31045ec734ace84ce2b739639bf12e 24-Jun-2011 Jorge Lugo <jlugo@google.com> Don't display warning message on edit incoming settings

On phones, opening "incoming settings" no longer immediately displays
the warning message associated with editing the username field. It now
only displays when the username is focused by the user.

Bug: 4282856
Change-Id: Ic0a74fa91a0f9cff66565372872e182a0eaec779
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
53dddf3c5522e03117a3fdd7820bc0d1f7fe1634 14-Jul-2011 Marc Blank <mblank@google.com> Fix loss of client updates in IMAP when no connectivity

Bug: 5014965
Change-Id: Id5c6696ea1add598f180e739398ab14f60e382a3
ndroid/email/mail/store/ImapFolder.java
f8dbd95695648c758ccb84235a2fab74ed80b56a 14-Jul-2011 Jorge Lugo <jlugo@google.com> Don't show To/Cc/Bcc hint text on tablet

Since tablet already has to/cc/bcc labels, don't show the hint
text -- only do so when labels don't exist.

Bug: 5019806
Change-Id: I039de06e2576688e654fb0504a027cd9b9b67def
ndroid/email/activity/MessageCompose.java
abec4e631ce7de385a707538d2797f4ea8790eff 14-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Prevent account flip flopping from compose"
47e854868274d2a6f1bc08699957a70126c6f75f 14-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Remove dead code"
4de538be2d17545fb63e781412b8565f0d0d97d4 13-Jul-2011 Ben Komalo <benkomalo@google.com> Prevent account flip flopping from compose

There were two issues:
- the default account ID from the provider wasn't consistent: it was
using a snapshot from the cached data but that simply returns a Map, and
the values aren't guaranteed to be sorted (and indeed I saw that the
order was different on consecutive calls!)
- hitting app up from Compose always just kicked you out to the inbox
for the default account, but it probably should have used the account of
the compose screen, since it can be specified in the Intent

Bug: 5012008
Change-Id: Ic9a753b261e047790453bc1a9417bc0c6d2f87f9
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailProvider.java
2a33dde4d16f0468890a4852f5e4017a973a2342 13-Jul-2011 Marc Blank <mblank@google.com> Delete PIM data, etc. on device admin disable

* We were deleting secured accounts when device admin is disabled,
but we were not deleting associated data, which means that
contacts, calendar, and attachment data were left on device

Bug: 5021062
Change-Id: Iabeec2dcd6ef4f52dc52e43d62803e61f7881c0d
ndroid/email/Controller.java
3cfb3d50774eaaca9759b671ef6c963e5023c155 13-Jul-2011 Ben Komalo <benkomalo@google.com> Remove dead code

Change-Id: I66bec3975b3f028081071b9bbd26206ec369da26
ndroid/email/data/NoAutoRequeryCursorLoader.java
ndroid/email/mail/NoSuchProviderException.java
4c0e5c0d0a74b1bf2712ec4a75cabd76c0ea0059 13-Jul-2011 Marc Blank <mblank@google.com> Remove unneeded (and harmful) test in MessagesAdapter

* This fixes the case in which messages are being loaded upon
initial sync, but do NOT appear in the message list (at least
until leaving and re-entering the app/mailbox)
* The problem was that MessagesAdapter was checking the state
of the HOLDS_MAIL flag, which might not have been set at the
time the Inbox was created; it turns out that the check is
not necessary, so we remove it here

Bug: 5008696
Change-Id: I009ddf7d82d938758b99c855dfd0271596c5248a
ndroid/email/activity/MessagesAdapter.java
6fc054daa6061041022d6bb50a8160d3f7f17d74 12-Jul-2011 Marc Blank <mblank@google.com> Merge "Add support for TrafficStats; use with IMAP/POP3"
4e32489c5532d746aac591b96d2c0c8336f718d8 12-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Support SMTP servers not requiring auth"
190b2fb8a1be1d72475e2a60d0f00422712ee094 07-Jul-2011 Marc Blank <mblank@google.com> Add support for TrafficStats; use with IMAP/POP3

* All IMAP/POP3 functionality uses TrafficStats except for
attachment loading (subsequenc CL)

Bug: 4988322

Change-Id: I91d826e0f7151a2101b642c868ab8c37e9660332
ndroid/email/MessagingController.java
b4983afcec6460fbdb4b0817a8888268797bb079 12-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Reflect changes in chips library"
c456c257aac9ac48c92633f0654fb05ca47dd86f 11-Jul-2011 Ben Komalo <benkomalo@google.com> Fix missing imports from bad eclipse settings

Change-Id: Iebc2faa4cb8b125a5ee8071119daa771c66b54b2
ndroid/email/activity/MessageCompose.java
9753d2fde1b549ba109a198b6c768280833cd6d0 10-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Reflect changes in chips library

Must be with Iad5b8444f4b1949666d93ad43a34de057aba560e

Bug: 4996797
Change-Id: I5f83103628c14dd5079515c46c42a6f43d4f194c
ndroid/email/RecipientAdapter.java
7a29fb97b1aa031fab8d71933edf01881dd589df 11-Jul-2011 Ben Komalo <benkomalo@google.com> Misc compose bug fixes.

- empty subjects should still be prepended with "Re:" and "Fwd:" when
replied/forwarded
- the compose body was being vertically centered

Bug: 5008785
Change-Id: I28e4fac8457c4fd18c764daa35d9deea1646474b
ndroid/email/activity/MessageCompose.java
b03d8088f690e3afa4a32207bf6d758b2bb2dc44 11-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Filter out Search mailbox from recents."
cf7cd933dba6845b365c4bed28ae53580fefbef0 11-Jul-2011 Ben Komalo <benkomalo@google.com> Filter out Search mailbox from recents.

Bug: 5015109
Change-Id: I4e4982bbedc388529eb2f3a9c06ecac47a0a85f0
ndroid/email/activity/RecentMailboxManager.java
e05f511a4ea9ae28841b385987531d8be1d2d87f 11-Jul-2011 Ben Komalo <benkomalo@google.com> Add entry in settings to clear trusted senders

Bug: 5011682
Change-Id: I09a557e4bb0ce3e17f796bcc5693e405f23e8c7e
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
396a425d799334c0242ba2d29e4b5715e0360f7e 11-Jul-2011 Ben Komalo <benkomalo@google.com> Make search icon appear again.

The CL I just checked in to reduce the invalidateOptionsMenu calls
removes the search icon because it expects the message list to be ready.
Instead of just invalidating the menu a bunch more, just make it so that
the icon is always shown, but we can't actually search if the message
list isn't ready. The time between the icon being shown and the list
being ready should be miniscule.

Change-Id: I5dfe9363cc904833253cf1fceeeb2af2ec389217
ndroid/email/activity/UIControllerBase.java
490708b0796a1942afe967d6f32f5e6db8824c81 11-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent wasteful calls to invalidateOptionsMenu"
b0a14e4f1adf96b72e68370b6f3146306167e0a5 11-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "SmtpSender: Send EHLO that adheres to RFC2821"
025d29fd4b9dd8351fe2e0428a585cf327ddaca4 11-Jul-2011 Ben Komalo <benkomalo@google.com> Fix some missed account setup flags.

There were two places where account flags were being set on setup: one
was in manual setup when the user selected the account type
(pop/imap/eas), and another was when it was automatically determined
from XML. The two paths were inconsistent and one was setting bits like
SUPPORTS_SEARCH but the other wasn't.

This fixes being able to search in IMAP

Bug: 5011932
Change-Id: I50eada7485aaef4e2a85d25fa7eb9ac7ab03093a
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
6f31573f00d85bb1d24536c917d72ed80156fd6c 11-Jul-2011 Ben Komalo <benkomalo@google.com> Support SMTP servers not requiring auth

We were unconditionally setting auth credentials even if the checkbox to
require credentials was unchecked. This prevented setup for certain
outgoing servers

Bug: 4291105
Change-Id: I27f94f02b85b097d2c6dbb896254367e8a15415b
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
cac58e590c418159fe4c0f5e5a48d3b3ef0b72eb 10-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fix notification Intent."
e9188307f27eb0b088ad1d3e4cd0eb0d4b514b39 10-Jul-2011 Ben Komalo <benkomalo@google.com> Fix notification Intent.

This changes it so that the message list is shown if there are multiple
unseen messages.

Bug: 5011855
Change-Id: I14cbcfaa32cc5e2b4cb718449c62b8f39b290d4d
ndroid/email/NotificationController.java
7dd70efb5c9c25b5f7ecb166924a1fbe0a0277d9 10-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Per-mailbox settings"
1ddc2ca4a7e59189099d273bd1d364838dd7ce35 02-Jul-2011 Makoto Onuki <omakoto@google.com> Per-mailbox settings

- Use PreferenceActivity, in the old style, meaning without PreferenceFragment.
- If setting Inbox, change the account settings instead of mailbox settings.
- Use the DialogWhenLarge theme, meaning it's a full-screen avitity on the
phone and a dialog on the tablet.
- Also fixed the bug that we the menu items that are made invisible by
UIControllerBase may be made re-visible by the 1-pane controller.

TODO The menu item shouldn't be shown for non-syncable mailboxes.

Change-Id: I02b2faf6f593e1e2eb370217c27801aa58ca7e6c
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/setup/MailboxSettings.java
986a0d91dad246b6c9273bef1641538133abee98 10-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Fix bug 4982804 / nested fragment transaction"
2ac164f609faea134b8fa1d6c0ebc90ccda91166 01-Jul-2011 Makoto Onuki <omakoto@google.com> Fix bug 4982804 / nested fragment transaction

Post MessageOrderManager callbacks instead of calling them directly
to break the loop.

Change-Id: I033121f7bdbadf6edd7a0fab87b960b737da820e
ndroid/email/activity/MessageOrderManager.java
3db100da4606f51703421647368508124b13d28b 10-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Make nested folders selectable again"
a3ce177fa42bad62d4082f469b72b90b0aab037f 09-Jul-2011 Makoto Onuki <omakoto@google.com> Make nested folders selectable again

Bug 5009065

Change-Id: I58bcb748848592414ec2334951e57693ac24cd39
ndroid/email/activity/MailboxFragmentAdapter.java
46cdd47e83cdeeda83d885f127662209a5ea7267 07-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Use the proper server ID for the message."
9ec3bcb3b61c28430974edb80dbb50032a9ee136 07-Jul-2011 Ben Komalo <benkomalo@google.com> Use the proper server ID for the message.

This was accidentally using the server ID of the folder when being
fetched.

Bug: 5002236
Change-Id: Id0df5fb1d18afd8e0cd05157e8033f08dcf084fe
ndroid/email/MessagingController.java
50a092c3d6155fcd704990450640cf159072b1a2 24-Jun-2011 Marc Blank <mblank@google.com> Add IMAP support for the "replied" state in messages

* Handle replied in new messages and updates
* Code added for upsyncing replied state, but the CL for
setting this state isn't yet submitted

Change-Id: I6f3ff56475d70f686f96ed6a84fae3468f42b1c8
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/mail/store/ImapFolder.java
7891106a7d6b4c406792a8a9144e5148e6bf5ddb 06-Jul-2011 Ben Komalo <benkomalo@google.com> Write reply/forward flags on Controller.sendMessage

- also fix some mixups with the actual icon states

Bug: 4947145
Change-Id: Iec1bbfc46ac956a6bf050e4fb162b94ea3c6b316
ndroid/email/Controller.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListItem.java
33d6307d4b6bc085308763207470c5f82eaf372c 05-Jul-2011 Ben Komalo <benkomalo@google.com> Prevent wasteful calls to invalidateOptionsMenu

The app is spending a lot of time in startup inflating XML. I suspect a
lot of it is due to the refreshActionBar() calls.

On a normal startup with NO refresh, the action bar was rebuilt 6 times.
If a refresh happens, the refresh callbacks get called in rapid
succession (20+ successive calls is not uncommon), which seemed really
wasteful.

Change-Id: I05feb56ba7fafb109d820328f591526945ca0a5f
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
d8ab562d0dd44660e2e2404d00db756748dba6d8 05-Jul-2011 Ben Komalo <benkomalo@google.com> Reduce startup time via Welcome.

In the common case, we don't need the "waiting for sync..." message, so
avoid inflation in those cases and just inflate on demand.

Also do a quick drive-by fix for the error message being pushed in way
too much on phones

Change-Id: Ie7a8472194659a52069d1ee21e0a0cb9b6fc91ba
ndroid/email/activity/Welcome.java
ea11bfd6fcc73cffc1f2ef314133513e5291e6db 23-Jun-2011 Jon Starling <jstarling@star.net.uk> SmtpSender: Send EHLO that adheres to RFC2821

Adhere to RFC2821 Sec. 4.1.3 Address Literals should be enclosed by brackets and
prefixed with 'IPv6:' if the sender is an IPv6 host

Original author: Jon Starling

Bug: 4207470
Change-Id: Id327930001188186713e38d1ce8ecc1dad8cfbc0
ndroid/email/mail/transport/SmtpSender.java
e76962b1b9c66ecc3fd49cd4c956f234365bfe5c 01-Jul-2011 Ben Komalo <benkomalo@google.com> Revert "Enable SD card encryption policy when emulated"

This is a manual cherry-pick of c379ebe3722b5d21201246a714eeea99d8679b96
This reverts commit 7fd14be80447de15bd5360321fa80e34f60fa251

The introduction of proper SD cards breaks the invariant that "external"
storage can be encrypted. Unfortunately, this means that accounts with
that policy bit set will have to be removed for now.

Accounts with the security policy set will be forced to go through
security provisioning on the next sync, using the regular mechanisms of
showing a notification with "Security update required", and then having
it fail. :(

Bug: 4466311
Change-Id: I68119b14f8d198779c2073296e228bc6772136ee
ndroid/email/SecurityPolicy.java
0268581de23dea476b55d212a6f42676e6aab37e 05-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Be explicit about disabling drag n drop in search"
96e084e67a38cba86f592d733525de659f96dd78 02-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Work around for bug 4674712"
1b4b6cf560a5ce9968a103b7c25cb402cdb7d396 02-Jul-2011 Ben Komalo <benkomalo@google.com> Be explicit about disabling drag n drop in search

It was accidentally happening because search doesn't show the mailbox
list, but explicit > implicit.

Change-Id: Ifb8354dbb366f4c8328bef31d4e251166ae6876a
ndroid/email/activity/ThreePaneLayout.java
ndroid/email/activity/UIControllerTwoPane.java
ec9e903ce236a6afbd9bd329371b3d23c9ac22f2 02-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Fix some stale TODO's"
fdd99f5486d15d4cf5bd634ed81559d0181facc6 02-Jul-2011 Ben Komalo <benkomalo@google.com> Merge "Remove some stale stopships and TODO's"
8b72c7eb8defbf32fde6f650dc855bdf06e801a2 02-Jul-2011 Makoto Onuki <omakoto@google.com> Work around for bug 4674712

Seems like we're getting onItemClick() on header rows, which are
supposed to be disabled.

Change-Id: I03b108c508f46368cc420049eed67438af7a7735
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
130bf263da5b69ccc6f6054cc02a833d9993a7e8 02-Jul-2011 Ben Komalo <benkomalo@google.com> Remove some stale stopships and TODO's

Change-Id: I3221b3c35c5ffb464756f9de288bf36f560cf8fb
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MessageCompose.java
4abf58237ac3b812df318f1d79ab41bcfb57c80a 02-Jul-2011 Ben Komalo <benkomalo@google.com> Fix some stale TODO's

- also bail search mode if we can't find an account. it probably doesn't
matter _that_ much since the UIController will also bail, but just in
case...

Change-Id: I0b601186362e048de83b53617e529bbada1e8db5
ndroid/email/activity/ActionBarController.java
7d243000d4f9241e7c3428d7f3eef9096697505f 02-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Added "replied to" and "forwarded" icons in message list"
e2f6f18396f27d2fee1149d6a3896721297bf7f3 25-Jun-2011 Jorge Lugo <jlugo@google.com> Added "replied to" and "forwarded" icons in message list

When a message has been replied to or forwarded by the user in
Exchange or IMAP, it now displays the appropriate symbol in the
message list view. (Right now it's just a test image based on the
reply/forward/replyall images until the assets come in.)

Bug: 4313491
Change-Id: I525e55179d62b6ab08df37cb9bfe9fdd9fefb908
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
ndroid/email/activity/MessagesAdapter.java
6a712721b1fd80123029c0037961cd31b0a0cf11 01-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Fix all NoSuchMethodErrors"
745b33b8ff55e9a9c4871f07f9d97db893f784b2 01-Jul-2011 Makoto Onuki <omakoto@google.com> Fix all NoSuchMethodErrors

Change-Id: I05adf2b99c819d6aa2d3b52c52a8c655d9307337
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/Pop3Store.java
7107d8e821b73504c0610647a3ee4ae7a501ad28 01-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Use parallel executor"
bc2eaadde987044027b57d241e635de014bdb8ba 01-Jul-2011 Makoto Onuki <omakoto@google.com> Use parallel executor

We should eventually replace all with EmailAsyncTask, but it's the safest thing
we can do now to avoid regression.

Change-Id: I78bfc4fb2be1dcfadeb7f90092ec7adb35c1d393
ndroid/email/RefreshManager.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupNames.java
1600adab970cdf4e5a9418417bb93b0b06e30926 01-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Fix bug 4978035 Precondition failure: Not combined mailbox"
a6212c88e0fb5906cb4065c775c1f4c0b83b7ca4 30-Jun-2011 Makoto Onuki <omakoto@google.com> Fix bug 4978035 Precondition failure: Not combined mailbox

Also added test.

(For some reason the message count doesn't get set properly on tests...
I'll investigate it when I get around to it...)

Change-Id: I83f3b6f2079da06b2d4973419d2296e6492de1d3
ndroid/email/FolderProperties.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxFragmentAdapter.java
45bfb104643de6a1bdb4767432f174f71a1ff38f 01-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "Fix bug 4901592 Do not drill-in to inbox by default"
983fd116b133dcfb5888f4f00975c7e1dc05f7df 01-Jul-2011 Marc Blank <mblank@google.com> Merge "Delete orphaned mailboxes/messages/policies at provider startup"
2bdf7ee0f0f4a2b11b5f7c0f8b193080600fefd8 01-Jul-2011 Marc Blank <mblank@google.com> Delete orphaned mailboxes/messages/policies at provider startup

Bug: 4972132

Change-Id: Icc756a9e28b77de052261903089b040d229e7b5d
ndroid/email/provider/EmailProvider.java
c01db92acf0b6bb8b5b3fc09aa3d329a91990049 01-Jul-2011 Jorge Lugo <jlugo@google.com> Merge "Widget logo opens up mailbox"
9630e31bac9232528ab9a25d7fcc96fda647f165 01-Jul-2011 Makoto Onuki <omakoto@google.com> Fix bug 4901592 Do not drill-in to inbox by default

If the initial mailbox has child mailboxes, we should show the drilled-in
view by default, EXCEPT if the initial mailbox is inbox, in which case
we want to show the root view.

(And we drill-in if the user taps Inbox.)

Bug 4901592

Change-Id: Idc1462030cf8d971dd4dcbba647ac3a64cab6819
ndroid/email/activity/MailboxListFragment.java
6fc2585327025d4e1ef7a488a7a075284c71773d 01-Jul-2011 Ben Komalo <benkomalo@google.com> Fix account settings crash.

The check settings fragment could potentially take a while to finish,
and may finish after the activity has shut down. Ensure that the
callbacks don't go through if that happens (usually means the user
backed out before it finished)
Bug: 4689161

Change-Id: Ie8e052f03a8f8f2884c0fe1e334a91c02444f96c
ndroid/email/activity/setup/AccountServerBaseFragment.java
1f59271769e372c509d87e3a3adb47be196fb6f6 24-Jun-2011 Jorge Lugo <jlugo@google.com> Widget logo opens up mailbox

Pressing the email widget's logo will open up the account's inbox.
Also, composing a new email open the compose window for that
account instead of an arbitrary account as before.

Bug: 3366819
Change-Id: I03c0d6973f5428b2044e755f41fcc6f4da225afa
ndroid/email/widget/EmailWidget.java
09e7fffb2ae97d8707cdb7f1ad1911bbb224fc2c 30-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Fix b/4905749 using workaround"
85cfc9c0bdaea35177db2440c00aa41029db95c8 30-Jun-2011 Ben Komalo <benkomalo@google.com> Fix b/4905749 using workaround

We suspect the underlying bug is b/4981556 but it is a framework issue
which needs time to fix. Some fragment state is not restored properly
when going through orientation change, so navigation shortly after that
will always crash.

Change-Id: Id6b8714c2aeac5f6bf09e82aea5459bb19d0054d
ndroid/email/activity/UIControllerBase.java
3aa7fd74f8233c5d9f3a03238908b903fd7c5f21 30-Jun-2011 Makoto Onuki <omakoto@google.com> Fix bug 4978032 Can't get out of "starred" mailbox

Even with CL the account spinner on the starred mailbox looks still a bit
weird because the spinner turns into the combined mode even if you select
the starred mailbox from a normail account's mailbox list, but at least
you'll be able to get out of the starred mailbox.

Change-Id: I26a256be39f070acece67f4a308a8525a6be1d3b
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
698aa92e6fe4d711466d8b242d6ff7dd5df1176c 30-Jun-2011 Ben Komalo <benkomalo@google.com> Fix actionbar for message view

- shows the title of the message in the action bar (visuals not final -
need to extend the width and hide the account name)
- ensures that tapping up/back from a message view from a search result
list doesn't exit search
- ensures that tapping "app up" from a collapsible tablet view doesn't
exist the search unless the left pane is uncollapsed

Change-Id: I2b21a430d12148cf72237060c05312c7a23e2b3b
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/ThreePaneLayout.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
8de5bda81594182757c1aa94a65cfb8c7b360b34 30-Jun-2011 Makoto Onuki <omakoto@google.com> Close cursor properly.

Also, don't issue separate query()s for each recent mailbox.

Bug 4977956

Change-Id: I3ccd437a7efd5c3599c4a1952ba091a7b3b815bf
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/RecentMailboxManager.java
5fbc5025f085517caf810c877009ac3f3239236b 30-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Remove opener IDs from message view fragment."
6da2b981dac09a3337ef345df466e121da2f0245 30-Jun-2011 Marc Blank <mblank@google.com> Merge "Oops; fix NPE"
569785b4f9dd804dd3239f9e307b0fa79a5f1871 30-Jun-2011 Marc Blank <mblank@google.com> Oops; fix NPE

Bug: 4977755

Change-Id: I117eb3a061628ee572f37123631c3da301b5e50b
ndroid/email/mail/Store.java
918860b8e0825830879b3675ae7d7aca02aa0826 29-Jun-2011 Makoto Onuki <omakoto@google.com> Remove opener IDs from message view fragment.

There are needed for the back navigation when a message
is opened from a deep link, but now that we always have a list context
they're not necessary.

Change-Id: Iba2d0b2f31f4539f6e872970b514574347e248c5
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
87fce70d0f0ef607ee3127ed186785883ac75340 30-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Newer/older + auto-advance for one-pane"
22d1a794cd9636634bb31689f53603c0ae64c522 29-Jun-2011 Makoto Onuki <omakoto@google.com> Newer/older + auto-advance for one-pane

- Moved MessageOrderManager code from 2-pabe to the base class.
- Most of the code is shared between 1-pane and 2-pane.

- Also fixed the bug where we re-created MessageOrderManager every time
the user taps newer/older, which was the reson the newer/older button
temporarily got disabled when you tapped them.
Before this CL we stopped MOM in uninstallMessageViewFragment, but now that
we don't reuse fragments this means we stops MOM when we remove the current
message view, and re-created a new one when a new message view is created.
Now we stop MOM when the right pane gets hidden (2pane) or when showing
the mailbox/message list (1pane).

- Also removed a now unused callback onMessageShown() from MessageViewFragment.
We used to update MOM on this event, but now we do this in
installMessageViweFramgment().

Bug 4575586

Change-Id: Idc4aba184f318e0c086afc29dcbe42364e2b51b3
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
17f7ffae4c4712e94a8d57a2a1471475811d7f4e 30-Jun-2011 Marc Blank <mblank@google.com> Merge "More Store cleanup"
4b39d7ccff82f54f6ac53075de70ac8ded9f4ca1 29-Jun-2011 Makoto Onuki <omakoto@google.com> Fix for "Unknown uri: .../mailbox/-4

It was caused by the fact that we show the combined starred mailbox
on each account's mailbox list.

Beacuse of this, when you open the starred mailbox on non-combined view,
we pass a normal account ID + the combined starred mailbox ID to the
AccountsLoader, which then thinks that because the account ID is not
ACCOUNT_ID_COMBINED_VIEW the mailbox ID must be of a regular mailbox,
issues a query to get mailbox info, and crashes because the mailbox
is virtual.

- Also fixed the issue that we don't show message count on the account
spinner for combined mailboxes.

bug 4971181

Change-Id: Iaa13b362505b8babc7f7ea8a03ddf5494736dc2d
ndroid/email/FolderProperties.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxFragmentAdapter.java
0b8e04c84def3a06ef45126b48efc485fa0a7628 29-Jun-2011 Marc Blank <mblank@google.com> More Store cleanup

Change-Id: I8f542175b4468c7a320322a57bfdaf19a7320165
ndroid/email/Controller.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
aa46bc39190624e354c8bf9c96b83eeffea343a7 29-Jun-2011 Marc Blank <mblank@google.com> Merge "Remove redundant and unused constants"
6fea021e3dbe71aaa93512aba699d1bfda3d520d 29-Jun-2011 Marc Blank <mblank@google.com> Remove redundant and unused constants

Change-Id: Ie8658f86737880e3127a0a2c3b7f0557dde98b29
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/EmailBroadcastProcessorService.java
29c89ad17a0983ddc4eb2b4922c93a53aff2d735 29-Jun-2011 Ben Komalo <benkomalo@google.com> Just mark search mailbox as not visible

This way we don't have to explicitly filter it in all the different
places we do selections on mailboxes.

Note that I didn't create an upgrade path for this. The only people with
search mailboxes are probably developers right now, and worst case for
people who experimented, they will just get the search mailbox visible

Change-Id: I9a0bf6df9985418d467a7348ed99a36521641b89
ndroid/email/Controller.java
ndroid/email/activity/MailboxFragmentAdapter.java
659f60f73428eb7f7b393689d1a74bfddd9a0cc2 29-Jun-2011 Ben Komalo <benkomalo@google.com> Wire through logic for searched mailbox

- update hint based on the mailbox being searched
- ensure that we use the original searched mailbox as the mailbox to
search for subsequent search (i.e. a search while we're viewing search
results) and not the search mailbox

Change-Id: Ic8663272173ce386dcd13fdf0369e918fb895be8
ndroid/email/FolderProperties.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
244d306ebb0addbc5d87008af9412b76c80e861e 29-Jun-2011 Marc Blank <mblank@google.com> Remove more useless code

* Strike another blow for sanity!

Change-Id: Id95b441f9577abda66f04113793d6b1c60500ebe
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
77160c8c08df90c8e9992596197e3438e46d41e5 29-Jun-2011 Marc Blank <mblank@google.com> Merge "Don't cache ImapFolders"
2720a818d5de169734434b114adfdf824a485f55 29-Jun-2011 Marc Blank <mblank@google.com> Don't cache ImapFolders

* ImapFolder is currently very unsafe for use by multiple threads,
causing, among other things, the referenced bug
* Since ImapFolder is very lightweight, there's no particularly good
reason to be caching them anyway
* Rename isOpenForTest to isOpen

Bug: 4972084
Change-Id: I2bf17b9cfc8549a222e991f3e59abfd00a4d3afd
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ea8034affadcf645202d03eac3965d4a86fced58 29-Jun-2011 Marc Blank <mblank@google.com> Merge "Clean up Store implementation"
35b0e95ca795e17b6dc8dd98c7ab847d65d9aa0c 29-Jun-2011 Marc Blank <mblank@google.com> Clean up Store implementation

* Remove unused argument from newInstance/constructor
* Create ServiceStore class, the superclass of ExchangeStore (and,
eventually, all Stores, until they can go away completely)

Change-Id: Ic5237236c5349ecf006538c58b63c1efe8e4ea61
ndroid/email/MessagingController.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/ServiceStore.java
b859a3b61e8a491b53255b31bffa12cd312288a1 29-Jun-2011 Ben Komalo <benkomalo@google.com> Filter search mailboxes so they're not visible

Change-Id: I99edcb19ce9e320676dff55f219370730e74239b
ndroid/email/activity/MailboxFragmentAdapter.java
488308b35406888a1c7fb7d4e5fc8a48a5c801be 29-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Fix the "onPostExecute executed even when cancelled" issue"
5d811ecf18602b7880dbe5fcb652d3c342b7f02b 29-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Re-enable hw acceleration and fix webview cleanup"
50d934360d51392ac2aa6f11de4d6e1446cf78c9 29-Jun-2011 Makoto Onuki <omakoto@google.com> Fix the "onPostExecute executed even when cancelled" issue

Renamed onPostExecute to onSuccess and made sure it won't called
if a task is cancelled in time.

Also removed isCancelled(). To implement it right we should make sure
that onPostExecute() isn't finished when setting mCancelled, but it's a bit
of a pain to implement right, and we don't really have to use it.

Change-Id: I3a0baf504506ffc4952a5553f7098a8415842fa3
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
a6e15b13eff7fd8ac11092d4dba87943997a0de1 25-Jun-2011 Ben Komalo <benkomalo@google.com> Re-enable hw acceleration and fix webview cleanup

Bug: 4886133
Change-Id: Ib59e560a6e1ef3eecc15ff0073a3c0f34688835a
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MessageViewFragmentBase.java
4a893e60b468e0b67db522c047fa7fab057cfd6f 29-Jun-2011 Makoto Onuki <omakoto@google.com> Switch to EmailAsyncTask

Also remove the isCancelled test in onPostExecute, where it should
never return true.

Change-Id: Ica2b07db22d73769c2ead5f232f4890bd3bb87da
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerTwoPane.java
6cf76d94c8895e9ae557efaef75e1227252b5b9a 29-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Fix one-pane navigation/UI bugs"
1f6acaf39678b69a2d7a72e75ff5929d73ca9c77 29-Jun-2011 Ben Komalo <benkomalo@google.com> Hide footer when we hit the end of a search

Change-Id: Iec082a9f9560819c034f91706229b1efb7303ba2
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
6b256f1fa10b858ae2bea827b65c8608592e4ba3 29-Jun-2011 Ben Komalo <benkomalo@google.com> Wire through results count in search header.

Change-Id: I817236d9c3294acb25b62724cc8c99d47df7f354
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
ecd9c93cfaad7c64201777fa5d62e3a5b6665720 28-Jun-2011 Makoto Onuki <omakoto@google.com> Fix one-pane navigation/UI bugs

- Back from the starred mailbox now works.
- Combined view now has the "show all folders" in the spinner.
- Null-out the list context when opening the mailbox list.
- Properly restore the list context when popping from the back stack.
- Disable the account spinner dropdown on the mailbox list.
- Hide the little triangle thing at the right bottom corner of the spinner
when it's not selectable.

Bug 4836064
Bug 4689313

Change-Id: I41d1b6c7024953407b260f5b4b63fbc366e538ca
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
06421df25d8c6641c4f4cf5099c5097290ffdea7 28-Jun-2011 Marc Blank <mblank@google.com> Merge "Return total number of results from IMAP search"
5a9c95f94eaaed326d3116b539b7005ab4f3f8c7 28-Jun-2011 Marc Blank <mblank@google.com> Return total number of results from IMAP search

Change-Id: I44eb83042774294aa5aaa8f45a46b82dd78b0141
ndroid/email/Controller.java
ndroid/email/MessagingController.java
2213a79c36fe9c4e54dcc375dc56d5be22e136b9 28-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent monkey crash on attachment load."
c0a9fa9c68a92bb8971b3506ba390ea20f424213 28-Jun-2011 Marc Blank <mblank@google.com> Fix NPE

Bug: 4969186
Change-Id: I27fbdf7a496ee73caf36a90bf56b91c90133b3b7
ndroid/email/provider/EmailProvider.java
efbb408dbbd9ce31c68a53e3e5ffa189214b0a38 28-Jun-2011 Ben Komalo <benkomalo@google.com> Prevent monkey crash on attachment load.

Bug: 4969655
Change-Id: Ie1cbeaab4b9335aa4b0c2c972647072df21fccec
ndroid/email/activity/MessageViewFragmentBase.java
5d7ff8577d7efd938390ddc5d5476717203d0a55 28-Jun-2011 Marc Blank <mblank@google.com> Synchronize access to mailbox type map

Bug: 4967543
Change-Id: I71380d0d2d5664cf92a9b698bfdad516eeb5c80f
ndroid/email/provider/EmailProvider.java
8935f6d39ebbd7089eb7e7c67476ceb81226b459 28-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Show a search results header."
9b4f11a4ed73b8c6575eb9a32e279d39d87d3ba6 28-Jun-2011 Ben Komalo <benkomalo@google.com> Show a search results header.

The count will be wired in and shown in here.

Change-Id: I2f496dcd86d748ee1c17c8e819b65c61c098a8ba
ndroid/email/activity/MessageListFragment.java
257c037bb5de26688edfeea7c1beecb91b47b109 28-Jun-2011 Makoto Onuki <omakoto@google.com> Use DelayedOperations in ABC

Change-Id: Iadb4def22176cf28bc3a0b78f95b1c7cc9f52f69
ndroid/email/activity/ActionBarController.java
f8acc296281342ef3036c1978f67474adac499a5 28-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Introduce a SearchCursorLoader"
37c8a70d644ffc91a880f67a80a8558b4c53d5c3 28-Jun-2011 Ben Komalo <benkomalo@google.com> Introduce a SearchCursorLoader

This loader will abstract away the waiting for the controller to cleanup
the existing contents of the search mailbox

After some additional, to-be-done plumbing, I'd like
Controller.searchMessages to return some results info (like # of results
at the least) so that the SearchCursor returned can relay that
information to the client (which can then do a lot more interesting
things at that point).

Change-Id: Ifcba0ddf7170c56dac9f3b44128988a5aa4ca887
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
bc1fa230319bbc4b0facda5ef2eb651779ce71d1 27-Jun-2011 Marc Blank <mblank@google.com> Merge "Clean up/simplify ExchangeUtils/ExchangeStore"
d538d4bce1ab618ae36b5b88988392d2e9959458 27-Jun-2011 Makoto Onuki <omakoto@google.com> 2pane: Show/hide fragments *before* animation starts

To fix "IllegalStateException: Can not perform this action after
onSaveInstanceState".

Bug 4522010

Change-Id: I640fab0d51b02467f2f91d0d33091e1daac356fd
ndroid/email/activity/ThreePaneLayout.java
569083fab37f8179cf140c40dfa7222fab7c7258 27-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "New account spinner"
4689cb7100a8b1cfa188499a9910912d15b3dad3 27-Jun-2011 Makoto Onuki <omakoto@google.com> New account spinner

- Don't use the action bar spinner.
Instead use a custom view to show the current account.
(It's not a spinner; now we show the dropdown list by ourselves,
which gives us more detailed control.)

- Also show the current mailbox name/unread count with the account name.

- Removed the mailbox info loader in ABC.
Instead, now the AccountSelectorAdapter loader loads the current
account/mailbox name, and the unread count as extras.

- Now ABC.Callback.onMailboxSelected passed an account ID as well
as a mailbox ID.

- There's new code paths that can cause the "fragment transaction in
onLoadFinished" exception. We need to fix this properly, but
for now we just use commitAllowingStateLoss().

Bug 4948352

Change-Id: I73bb8b7530f8328ca1c86382ac0a54086ad061d7
ndroid/email/FolderProperties.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
66a47b8dac5e97e37c30b928bc5a227d74baada9 27-Jun-2011 Marc Blank <mblank@google.com> Clean up/simplify ExchangeUtils/ExchangeStore

* Rename ExchangeUtils to EmailServiceUtils
* Create calls for Exchange to use (eventually remove these)
* Get rid of lots of nonsense in ExchangeStore

Change-Id: Ic538cfe1de57eca24088ee1f590264283d12f511
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/AccountService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailServiceUtils.java
9e4a4149c89d7f6fd0d7d35f16b3e26b2a092720 27-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Persist trusted sender set to preferences"
b1f3c2d73fe51b9aebc064a3bd8f55aaa5407bc6 27-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Improved "show pictures" support."
ca22a51a9c41e39304422dda009128272ed0ad97 27-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Replace details dialog with expando subheader"
04795828d97727a4514487adc58f330aa950485e 26-Jun-2011 Ben Komalo <benkomalo@google.com> Persist trusted sender set to preferences

This makes it so that "always show pictures" from a sender works

Change-Id: I6e6c6d8dc78746d0828428b6c6256c4fff3eb111
ndroid/email/Preferences.java
ndroid/email/activity/MessageViewFragmentBase.java
66282fb6ffa2af159d0e2f878439074ac5ee3067 13-Jun-2011 Ben Komalo <benkomalo@google.com> Improved "show pictures" support.

This is the UI part for remembering to show images based on senders.
It does not persist anything yet.

Change-Id: Iec40d9d1ace3661dabca2eed31ea6d0893be71e0
ndroid/email/activity/MessageViewFragmentBase.java
312b2fb561a65a6fff469e5d186fac14eb31e4fc 24-Jun-2011 Brian Carlstrom <bdc@google.com> Replace KeyChainActivity placeholder UI with more polished dialog (4 of 5)

frameworks/base

Extended KeyChain.chooserPrivateKeyAlias to allow caller to supply
preferred choice to be selected in chooser. This allows Email
settings to highlight the current choice when allowing user to
change settings.
keystore/java/android/security/KeyChain.java
api/current.txt

Implemented KeyChain functionality to pass host and port
information to KeyChainActivity for display.
keystore/java/android/security/KeyChain.java

KeyChain now sends a PendingIntent as part of the Intent it sends
to the KeyChainActivity which can be used to identify the caller
in reliable way.
keystore/java/android/security/KeyChain.java

Moved .pfx/.p12/.cer/.crt constants to Credentials for reuse.
Added Credentials.install variant with no value for use from KeyChainActivity
keystore/java/android/security/Credentials.java

packages/apps/CertInstaller
Source of extension constants now in Credentials
src/com/android/certinstaller/CertFile.java

packages/apps/Browser
Have browser supply host and port information to KeyChain.choosePrivateKeyAlias
Tracking KeyChain.choosePrivateKeyAlias API change
src/com/android/browser/Tab.java

packages/apps/Email
Tracking KeyChain.choosePrivateKeyAlias API change
src/com/android/email/view/CertificateSelector.java

packages/apps/KeyChain

KeyChain now depends on bouncycastle X509Name for formatting
X500Principals, since the 4 X500Principal formatting options could
not format emailAddress attributes in a human readable way and its
the most important attribute to display for client certificates in
most cases.
Android.mk

Changing the UI to a dialog, make the activity style transparent.
AndroidManifest.xml
res/values/styles.xml

Layout for chooser dialog
res/layout/cert_chooser.xml

Layout for list items in chooser
res/layout/cert_item.xml

New resources for dialog including comments for translators.
res/values/strings.xml

New dialog based KeyChainActivity. Now also shows requesting app
and requesting server. Now can preselect a specified alias. New
link directly to CertInstaller.

src/com/android/keychain/KeyChainActivity.java

Fix KeyChainTestActivity to work with TestKeyStore changes that
were causing network activity on the UI to look up the name of
localhost. Also track KeyChain.choosePrivateKeyAlias API change.

tests/src/com/android/keychain/tests/KeyChainTestActivity.java

Change-Id: I131f7708cede39669491a23ead3860907460d31f
ndroid/email/view/CertificateSelector.java
5cba9c10ac7428287a26c0f322ae4ee14ac9012c 26-Jun-2011 Ben Komalo <benkomalo@google.com> Replace details dialog with expando subheader

Change-Id: I7b0f63b7b5ce7172ac32b8c00891005b9f2e28ee
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessageViewMessageDetailsDialog.java
f9a9f5289769c88b437155ae84c05d3ada96e727 25-Jun-2011 Makoto Onuki <omakoto@google.com> Fix header text on mailbox list fragment

Bug 4946676

Change-Id: I829c8df4a4e268e8807a3ec686dca5afdd173713
ndroid/email/activity/MailboxFragmentAdapter.java
6390b06e3b97ebfc946f74eddeae9129f488ed6e 25-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Add debug log to investigate bug 4905749"
d8a2e33998a2959d28441e609e915f7e5ad07b7f 25-Jun-2011 Makoto Onuki <omakoto@google.com> Add debug log to investigate bug 4905749

Change-Id: I1cfe12b0150490ec08caa02332bcca88521ff5fd
ndroid/email/activity/UIControllerBase.java
329ca184e75d188c69d511628ecd7770e5764170 25-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Yet another action bar fix..."
94c002349f2ac653712c625d89c50153795fe23a 25-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Set list context through a central place."
12b793299633dcfb4e1851d52017907cc4768030 25-Jun-2011 Marc Blank <mblank@google.com> Merge "Clean up search handling in Controller"
bad39b2e00dcd9127f5e0aed96ab31cf0817be76 25-Jun-2011 Marc Blank <mblank@google.com> Clean up search handling in Controller

* Use same code for handling search mailbox for IMAP and EAS
* Allow "Load More" for EAS search mailbox

Change-Id: Id4a009c79a95302d627ff25f85e9c65bc461826f
ndroid/email/Controller.java
ndroid/email/activity/MessageListFragment.java
f4622a8ac78299dc16cb857c5270a2c48f3a7fc0 25-Jun-2011 Makoto Onuki <omakoto@google.com> Yet another action bar fix...

It's a temporary fix. Proper fix underway...

Change-Id: I225e04168f7fae6a3b411659a27e79b28022ac40
ndroid/email/activity/ActionBarController.java
78c450ab14bc040f84b65563456433b809f2db02 25-Jun-2011 Ben Komalo <benkomalo@google.com> Set list context through a central place.

Bug: 4946658
Change-Id: I3f283088697b282b98a1c4e15ddf1f9641991806
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerTwoPane.java
a8779053e585203ad0140c7b4189f4db4d6e4eb7 24-Jun-2011 Gilles Debunne <debunne@google.com> Merge "Changed unknown source setting link"
3c76df4f1f4f4f4e7c068d8f6ea0da17f009916c 24-Jun-2011 Makoto Onuki <omakoto@google.com> Workaround for bug 4946695

Proper fix on the way.

Change-Id: I22549d0e90b521d27271a8160fe8e43dae18defa
ndroid/email/activity/ActionBarController.java
9722c1bfeda694b1ff62c3add4bd1fc009187924 24-Jun-2011 Gilles Debunne <debunne@google.com> Changed unknown source setting link

This settings has been moved to Security.

Change-Id: Ifbb6edf28d258303bad5b39e0df34b9e8ea20d99
ndroid/email/activity/AttachmentInfoDialog.java
3db7f76fef8701fcce90c2cff63def30c9440251 24-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Update notification text according to design"
a05b6e1e92253333b790e4a69778983f1c7b0d2b 24-Jun-2011 Marc Blank <mblank@google.com> Merge "New search implementation for IMAP in MessagingController"
9a01353f14f718c5447d6a3dc25b413be0f175d9 23-Jun-2011 Marc Blank <mblank@google.com> New search implementation for IMAP in MessagingController

* Add protocolSearchInfo column to Message table; this can be used
to store information related to search results. For IMAP, we
store the serverId of the mailbox that the message lives in on
the server
* Add upgrade code for this column
* Change MessagingController to use the proper serverId for remote
operations, depending on whether the Message is a search result
or not
* Fix some smaller issues with earlier code

Change-Id: I0c7f1d89a4659b95701d02646c0e8426680e2f6a
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/provider/EmailProvider.java
6f93d2edca7e699503089def8935042cedbbcdf4 24-Jun-2011 Ben Komalo <benkomalo@google.com> Update notification text according to design

- "UNSEEN new messages" is the title for multiple new messages
- the small number in the right shows the unread count

Change-Id: I48f761b727ea8abc9277d737a08789fa63d10871
ndroid/email/NotificationController.java
1ce33fd93f2ba211c6762871551b17f416bf0a7c 24-Jun-2011 Makoto Onuki <omakoto@google.com> Revive the security hold check on the UI side.

Bug 4901767

Change-Id: Id8ccd3346f2d3008543df2107bab97ebe1a20fa6
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/Welcome.java
80d3875d306c60da83e547c573427627911f8a99 23-Jun-2011 Makoto Onuki <omakoto@google.com> Action bar: Use laoder to get current mailbox info

Before this CL, we had this crazy plumbing from MailboxListFragment
to ActionBarController to update the current mailbox name/message count.

This wouldn't work on 1-pane, so now ABC just gets the current mailbox id
from UIC and loads the name/count with its own loader.

Also...
- Fixed bug 4904450 and bug 4460470: Now we consistently use FolderProperties
to get proler display names and message counts.

- Renamed some confusing names in AccountSelectorAdapter

Change-Id: Ic7bea6da6d2859006fb8f9263024c7d5e62b1e7f
ndroid/email/FolderProperties.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
bf3e65b667621f7f7ff82ab2945ae7911624a07b 23-Jun-2011 Ben Komalo <benkomalo@google.com> Disable hw acceleration temporarily

Bug: 4886133
Change-Id: I0f9efc200712815610ddc9013acc7eec25631180
ndroid/email/activity/ActivityHelper.java
bcdcc0458f90588567a77fb0f3d29c1040857c0b 23-Jun-2011 Ben Komalo <benkomalo@google.com> Pass the entire list context to the listfragment

This allows us to read search properties and other things to determine
rendering state

Change-Id: If73269128a60e9992822774ebdba3d90a44d2d76
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
53300963ff0d2cefa94a7170bfb4a6418f5b5b17 23-Jun-2011 Ben Komalo <benkomalo@google.com> Save/restore message list context

This fixes opening messages after rotations. Oops.
Bug: 4905495

Change-Id: Ibb9984245f7a040b65d472ad4103da587c28c83b
ndroid/email/MessageListContext.java
ndroid/email/activity/UIControllerBase.java
ed839dce7764267339889349da48c2f74f5ccc41 23-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Fix some things with shortcuts/widgets."
e10215eaff7c06b44b95de87ea46030065ecbee5 23-Jun-2011 Ben Komalo <benkomalo@google.com> Fix some things with shortcuts/widgets.

- All mailboxes will be shown when selecting a shortcut for a normal
account.
- Combined unread won't show up in shortcuts for combined accounts
- only inbox is allowed for IMAP/POP widgets
- all mailboxes allowed for EAS widgets

Bug: 4725896
Change-Id: I5c77c2f5443e330ed451179761b1d9c8c0dd7619
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/widget/WidgetConfiguration.java
65cab2baa76fc26371db732769bb4f38c0d0a1af 23-Jun-2011 Marc Blank <mblank@google.com> Merge "Prevent NPE when creating account..."
d6efb08c4d6e2ba0e169ea02a170116ca7939498 23-Jun-2011 Jorge Lugo <jlugo@google.com> Merge "Quick response clean-up"
9863dac3ee1af2b5f81e77245410e21e5db5613f 23-Jun-2011 Marc Blank <mblank@google.com> Prevent NPE when creating account...

* Yet more whack-a-mole

Bug: 4544677
Change-Id: I35eb0850b3abb13ca82dc5b19bb5511d894b5722
ndroid/email/service/MailService.java
deb345acebce19996726262f7825c39a784b9fa8 23-Jun-2011 Marc Blank <mblank@google.com> Support FLAG_SUPPORTS_SEARCH for IMAP accounts

* Update existing database to add this flag for IMAP accounts
* Set flag when creating IMAP accounts
* Change temporary UI to use the flag exclusively

Change-Id: Idefccd3a74d2222fe8a0ba47116dee981a0ae1f5
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/provider/EmailProvider.java
bc42ab77068947ec5cf7caa9043ade70bc03dd34 23-Jun-2011 Jorge Lugo <jlugo@google.com> Quick response clean-up

Highlighting now appears when selecting a quick response. On "insert
quick response" dialog has exactly two lines of quick response shown.
Done also works properly now on the phone.

Known bug: text is not ellipsized. However, this is dependent
on bug 3389545 being fixed by frameworks team.

Change-Id: I7490e139267963d1508fa0573144a10c9190e11c
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
2de21278f8f4d937bbb792515afbc2aea665863b 23-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Search state improvements."
f5bbef0b160444ea1512f0769f8550ad91389b31 23-Jun-2011 Marc Blank <mblank@google.com> Merge "When looking for default account, check for empty cursors"
c09ca39cde44bcb18e9a4d9c7cc3c6f7ee4297eb 23-Jun-2011 Marc Blank <mblank@google.com> When looking for default account, check for empty cursors

* At present, we will cache empty cursors (i.e. where the query
result had zero rows)
* If a widget (or shortcut) references a deleted account, this will
create a cached entry for that account, and the defaultAccountId
code will try to retrieve the isDefault column from that (empty)
cursor
* To fix this, we simply skip over empty cursors when looking for
a default account
* We will also look into whether it makes sense to cache zero-
length cursors

Bug: 4883043
Change-Id: Id998506f77bd6cda6cb1f5d8ce65d689dde4d2c5
ndroid/email/provider/EmailProvider.java
b0b6eb56f716f3ac0c153b1d4a1b7b2bdfba4335 23-Jun-2011 Ben Komalo <benkomalo@google.com> Search state improvements.

- actually fires off a new instance of our Activity for search, instead
of killing the old one
- exiting search mode from a search result now works and pops the
activity stack
- doing a new search clears the input box as expected
- the search term is actually shown at the top in the results list

Change-Id: Ia6b92042e26a2e44b8cb45fe1d5b3bfb40cfd6da
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
383d6ead227b6a6dea724820050df05c5e3581b4 20-Jun-2011 Ben Komalo <benkomalo@google.com> Use new message list in controllers.

Change-Id: Iaf4bf90add855f556a2e61521618924e13f60347
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ef02676a1639193ce403bd58e7067ab95260e1aa 23-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Fix drag & drop"
d5dfd76cb90a3c73a4d4f82ddfc6b2c7cfcc95e1 23-Jun-2011 Makoto Onuki <omakoto@google.com> Fix drag & drop

There was an assumption that the list view would only contain MailboxListItem's.
Now it's not always the case with the headers like "recent folders".

Also killed the timer thing for the nested navigation during DnD.

Bug 4904006

Change-Id: I4ee756775d0115f3a39086758be69100c19163c9
ndroid/email/activity/MailboxListFragment.java
106e3ad16d2dd3a55f909fc2eb39259ae7d627c1 23-Jun-2011 Marc Blank <mblank@google.com> Merge "Fix problem with getDefaultAccountId() with no explicit default"
192f9b6396845bbf2070eff5a8078cddc346c351 23-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Improve 1-pane message visual"
846763bd68c791ad0266ae8c68c0c1577761b419 22-Jun-2011 Makoto Onuki <omakoto@google.com> Improve 1-pane message visual

Also fixed the text alignment in the tabs on the 2-pane message view.

We don't yet to have the full-spec for this, so it's still temporary.

Now we again wrap the webview in a scroll view, so we'll have the "message
keeps growing" issue again. I'll file a bug for this.

It's still temporary, so I didn't remove the scroll views for the
each section (e.g. the attachment tab). Also I had to make up some
colors/dimensions which were unspecified. Also I didn't always define
styles when I should. Let's clean up these things later when we
get more detailed spec.

Change-Id: Ibdb78543f5ec7300f92091d1f8b800ca5edc74b2
ndroid/email/activity/MessageViewFragmentBase.java
63537746479f4b65517bd217c1a5f76d697367eb 23-Jun-2011 Marc Blank <mblank@google.com> Fix problem with getDefaultAccountId() with no explicit default

* This wasn't working with the new code and the unit test wasn't
testing this case.
* Updated code in EmailProvider and added a test case

Change-Id: I75c23423c4f43e4201d446886d92a5312fa8a084
ndroid/email/provider/EmailProvider.java
67cd9eb0d9e22c1df49b054877aff3c92d476ba1 22-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Introduce MessageListContext."
18410ed346e9969054797c9dca2dce48074008c5 20-Jun-2011 Ben Komalo <benkomalo@google.com> Introduce MessageListContext.

This will encapsulate meta information about a message list. Notably the
mailbox it's showing OR the search parameters that were used to build
its contents.

Change-Id: Ibe078a700860e7b9426c865e843e899f82306a96
ndroid/email/MessageListContext.java
ndroid/email/activity/EmailActivity.java
a30861850945e96f756d70e05c3e3f7be2c108ed 22-Jun-2011 Ben Komalo <benkomalo@google.com> Pushes some search behavior to base controller

This enables search on one pane with the same caveats as on two pane

Change-Id: I80ab6ada0f718367fe6d584b18bc84d04a27bf7b
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
f3d07fb3e6ea7f40537c8bc45daae38d2d31853e 22-Jun-2011 Ben Komalo <benkomalo@google.com> Consolidate some menu item toggling.

- fixes search button being shown for pop accounts
- cleans up some duplicated code

Change-Id: I498f0140eb2f3ffa7d3ad7f0da0e1d357f80e9b9
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
41609adc237cbb970ae5239b464fd943b415fb43 22-Jun-2011 Marc Blank <mblank@google.com> Merge "Fix cursor-related errors:"
d12f78d6bac81590f97fc190723865ffe65e5d69 22-Jun-2011 Marc Blank <mblank@google.com> Fix cursor-related errors:

1) Have CachedCursor implement CrossProcessCursor; still need to
figure out how this ever worked
2) Close cursor used internally in findMailboxOfType

Bug: 4869024
Change-Id: Id20d37b7b83e133aa4d5fe9293a42ae217024f01
ndroid/email/provider/ContentCache.java
f1d9367909005883021a4aa48197fcf73d1c0a64 22-Jun-2011 Jorge Lugo <jlugo@google.com> Merge "Fix behavior if replying to own sent message"
69b50d46ecf4417839c0febbfe53d5b2ac198e8e 22-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Kill InboxFinder in the UI controller"
0404a331ad14f3473be5905f73956626896b05c8 22-Jun-2011 Marc Blank <mblank@google.com> Merge "Improve EmailContent caching..."
3873111033969c04e63d7beb2d0eb452680411bd 22-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Fix search bar sizing."
6e418aa41a17136be0dddb816d843428a0a1e722 19-Jun-2011 Marc Blank <mblank@google.com> Improve EmailContent caching...

* Guarantee that up to 16 Account (with HostAuths), and Policy rows
are always cached. Also, 6 commonly used Mailboxes per Account
(Inbox, Outbox, Drafts, Sent, Trash, and Search)
* Precache these rows when EmailProvider starts up
* Ensure that newly added, precachable rows are cached when created
* Clean up some inefficient/wrong caching code
* Fix a commonly called method in NotificationManager in which we
load a single Mailbox row using selection vs withAppendedId
* Confirm that we don't read from the database in typical use and
heavy message loading
* Add a special URI for finding mailbox by type (using the cache)
* Add special-case code for EmailContent.count(Account.CONTENT_URI)
which is used in a number of places (including on the UI thread)
and whose value is easily determined
* Add a special URI to get the default account id
* Confirm that all unit tests work

The goal here is to be able to load all Account, HostAuth, Policy,
and Mailbox objects (by id) without worrying about disk access.
There will still be a single disk read for uncommon Mailbox reads,
but this should be considered acceptable.

Change-Id: Ibc9aa7acc73185e360b0b6f3053b90a985e97210
TODO: Unit tests
ndroid/email/NotificationController.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/EmailProvider.java
1116194d9fcfb038faa8d606cbbf744b8377648a 22-Jun-2011 Ben Komalo <benkomalo@google.com> Fix search bar sizing.

On phones it was being pushed out beyond the width of the phone.
Make it so that it fits the whole width in phone portrait, and is fixed
size in landscape / tablets.

Change-Id: Ifc712002c4df38ceb4bd3577f0cbb48114b41115
ndroid/email/activity/ActionBarController.java
a817543efbb2e706c701c2776aaf750c3bd6e7ef 22-Jun-2011 Ben Komalo <benkomalo@google.com> Show lookback settings for onepane.

This doesn't fix the fact that it's temporary, but at least makes the
temporary UI functional

Change-Id: If8d3e3cabe15d2ff0970d418113738f8479cbb8c
ndroid/email/activity/UIControllerOnePane.java
f46a8f205380b26ff9c55fa4a74653196592db34 21-Jun-2011 Makoto Onuki <omakoto@google.com> Kill InboxFinder in the UI controller

Instead, in switchAccount, if the account doesn't have Inbox, we'll
redirect to Welcome and close EmailActivity.

(This will easily happen if you add a second account from the system settings,
launch the app and switch to the new account.)

Change-Id: Ia03d8e6697b58f6fcf10fd95fbcb5e310a5b5305
ndroid/email/activity/UIControllerBase.java
b8b560f3151eb121b130ba60d88f302acdc1edef 22-Jun-2011 Makoto Onuki <omakoto@google.com> Improve Welcome

- Show "Your email will appear shortly" during the initial sync
- Don't close self in onStop if it's because of configuration changes.

Change-Id: Ic60f25c58712c599c735b2bede1627d4e102eb6b
ndroid/email/activity/Welcome.java
67be1d5f6b413221ac8e261c7697865d9aa12892 21-Jun-2011 Jorge Lugo <jlugo@google.com> Fix behavior if replying to own sent message

If the address of the account is in the reply-to: field (or from: field
when reply-to: is empty), now populates the To: field with the same To:
field on reply.

Bug: 3504182
Change-Id: I17d7fe4be002b302decb8f0dae95f33d452b7adc
ndroid/email/activity/MessageCompose.java
c9af8b2dbf830135d154b6336b9bb54959ca2a54 21-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Wait for initial sync in Welcome."
95ad0f0e93d290b2c630a49a254e61f10b2783c8 21-Jun-2011 Makoto Onuki <omakoto@google.com> Wait for initial sync in Welcome.

Change-Id: I5052e8a3e3af5565184c391200b9ab63dff4b50b
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/Welcome.java
59f921a21cfd111f127a2c0eb74e1c5b3c72b173 21-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Some fixes to the action bar."
0fd968623d714ba7fca5286a61d9108a937f6115 21-Jun-2011 Marc Blank <mblank@google.com> Merge "Fix MailService unit tests"
cbc842c5c91f90517b6766e15aafc051b75af872 21-Jun-2011 Marc Blank <mblank@google.com> Fix MailService unit tests

* These broke when we split Email/Exchange
* We now use a test authenticator and a test account type, which
is actually far cleaner than dealing with actual accounts

Change-Id: Ib7c9f884eac484c33642a8036f47466ce641c567
ndroid/email/service/EasTestAuthenticatorService.java
f69bcd0123dff62ec916376470c6dd9a71e0d443 21-Jun-2011 Ben Komalo <benkomalo@google.com> Some fixes to the action bar.

This hides the main navigation controls when the search view is shown.
It also fixes issues with rotation when in search mode.

Change-Id: I5ffed8eb7549fc603fc4e4d1868d114be65112c3
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/UIControllerBase.java
d7d49548607a0de7c0d89ef95897fd140181f272 21-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Fix failing tests"
ce4cce05b2ee5ea2d9629c189a79f7f30778f534 21-Jun-2011 Makoto Onuki <omakoto@google.com> Fix failing tests

Fixed activity tests and and activity.setup tests.

Bug 4762098
Bug 4766087
Bug 4590590

Change-Id: Ifbd49f38c59854c65b6c48a1b03ca8153bfa558b
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
72fad84fc367fd3787a6fb82919469e0aa64587b 21-Jun-2011 Jorge Lugo <jlugo@google.com> Merge "Improved saving of drafts when back key is pressed"
369905c95d8b069205f30726edc54122e6bc388f 21-Jun-2011 Makoto Onuki <omakoto@google.com> Fix crashing tests

Some of the tests are still failing, but at least now we can go through till
the end.

- Fixed NPE in WelcomeTests (caused by the mock context not returning a proper
layout inflator.)
- Removed the rainy day test from MessageFileViewTest.
(Not setting a proper intent will result in the argument check in
MessageFileViewFragment)
- Removed unnecessary null check in EmailProvider.getDatabase()

Bug 4766072

Change-Id: I48b92cc91d0417cd9980c131fda8f63a9a6eb990
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/provider/EmailProvider.java
09a0e9b5dca78244e3cc365d99263e7c2402b25d 21-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Move restore account to EmailProvider."
9dad9ad973ccf8255228a41acc0ee78af989a651 21-Jun-2011 Makoto Onuki <omakoto@google.com> Move restore account to EmailProvider.

In order to reduce the UI initialization code, move
let EmailProvider restore accounts when it opens the DB.

Backup can be moved too, but I just leave it as a TODO.

Change-Id: Id5c1810904db6abaecbfecbaa8d2d53834ebf07b
ndroid/email/activity/Welcome.java
ndroid/email/provider/AccountBackupRestore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/MailService.java
ae95fbf4d0238ee5a6fcd5892d9a9105e8db9249 21-Jun-2011 Jorge Lugo <jlugo@google.com> Merge "Added quick responses."
2441dd5cbb9a8b3102e9abe065bfc13edb8a7fe3 20-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Cleanup and collapse some methods together."
5a3888f35b669ffb3cc785d7dfe4862879a3896c 01-Jun-2011 Jorge Lugo <jlugo@google.com> Added quick responses.

Added "Insert quick response" button to MessageCompose's action bar. Clicking
it opens dialog with available quick responses. Selecting one of the responses
will insert it into message body at the current cursor location. Also added
menu in account preferences to create, edit, and delete quick responses.

Change-Id: I85f3f6b36801cf112ec9d7c31135a917456173d7
ndroid/email/activity/InsertQuickResponseDialog.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsEditQuickResponsesFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/EditQuickResponseDialog.java
ndroid/email/provider/EmailProvider.java
d5fe04822406fc4dac12e8f90eeb214b7b285425 18-Jun-2011 Jorge Lugo <jlugo@google.com> Improved saving of drafts when back key is pressed

In MessageCompose, pressing reply, reply all, or forward and then selecting
back without writing or modifying any part of the message will no longer
increase the draft count. Additionally, entering the compose window and
immediately rotating the screen before pressing the back key no longer
increases the draft count either.

Bug: 4584605
Bug: 4501806
Change-Id: I74db3f05d696b23fa7d0d64ae87e06fade4c57ee
ndroid/email/activity/MessageCompose.java
a355a4abe2abb9d09c1d2cfb61d62c2006d19289 20-Jun-2011 Ben Komalo <benkomalo@google.com> Cleanup and collapse some methods together.

Change-Id: Ida38b63362c50052064d7a5342febfe9e4a9c89e
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
99401ebea71f4ff15fc017edd0ab98cad05bbcd6 18-Jun-2011 Ben Komalo <benkomalo@google.com> Remove a layer of callback in inbox finder.

I'm changing it so that inbox finding happens at an earlier stage so
that the UIController.open() methods can be simpler. Specifically: I
want them to just always accept a mailbox, and not have to deal with an
intermediate state where it's still looking for a mailbox.

Change-Id: I1c5be783859a3bee7e46007e778de13eb1685cbe
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
facd131fad65cf251e8939547672853f13a6b77e 18-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "some brain dead typing shortening"
36f89da544a2a960ede047051c0d7b114d6d7717 18-Jun-2011 Ben Komalo <benkomalo@google.com> some brain dead typing shortening

Change-Id: I9342e8da52b412fd844b98ff76e61a9e4f9c5af7
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ed1dc9ee72410e07de24bc4a072d066981611a48 17-Jun-2011 Marc Blank <mblank@google.com> Support "Load More" for IMAP search

Change-Id: I47e5fd1fab421026ee52af72ba56338c69e9b467
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ac11e3bb99aba883cbbdaccfc2524862a8989701 17-Jun-2011 Ben Komalo <benkomalo@google.com> Some re-arrangements in UI for search.

This moves the logic for performing the search closer to where it will
actually happen (i.e. on Intent resolution). A lot of this is still
temporary code. I will follow up with some larger changes to extend the
UIController API so it doesn't have to do hacks internally.

Change-Id: I1eb84d26ee3dcbfa0b68dbd37dcb0a6180452962
ndroid/email/MessagingController.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerTwoPane.java
f62fd3fd177a79579cde30e43a85eb9709eb348b 17-Jun-2011 Ben Komalo <benkomalo@google.com> ensure that search mailboxes don't have parents

This causes issues in the mailbox list when trying to auto navigate to a
search mailbox

Change-Id: Ie4e43f20ec662a7c9304dd906ba5a58560cba9f5
ndroid/email/Controller.java
0b346432043e5871ab683da53550f755f82df0b9 17-Jun-2011 Marc Blank <mblank@google.com> Merge "First implementation of IMAP search"
627bc6ed57ee06cc588e64ff959bfd7870b659b6 13-Jun-2011 Marc Blank <mblank@google.com> First implementation of IMAP search

* Broke up synchronizeMailboxGeneric into three pieces; it's still
horrible, but this at least stops my eyes from bleeding
* Remove unused method/tests from Folder interface

Change-Id: Ib4d979536be657137cf70ca535cf429d707be41b
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/Pop3Store.java
579d8d5da5a06e576f1586fe99358ffeab9acc5c 17-Jun-2011 Mindy Pereira <mindyp@google.com> Merge "Integrate chips into Email."
87763f0ae851c76d5e7cf672a6e3acf21705549c 16-Jun-2011 Mindy Pereira <mindyp@google.com> Integrate chips into Email.

Change-Id: Ice037a55a169037f725a667fad7714c7e9580b86
ndroid/email/EmailAddressAdapter.java
ndroid/email/RecipientAdapter.java
ndroid/email/activity/ChipsAddressTextView.java
ndroid/email/activity/MessageCompose.java
cb24e515b7983133133ca38bd3e3e6354daaab76 16-Jun-2011 Ben Komalo <benkomalo@google.com> Add one more error state to certificate process

When the KeyStore fails to give us back a certificate for any reason (it
was removed from the keystore perhaps), propagate the error back up.

Change-Id: I4f0ef783c1665589cc8ccb43d95da43a297a3e9a
ndroid/email/Controller.java
ndroid/email/MessagingExceptionStrings.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
8401dba4048dfc0c1e40e9cfca749878ec087831 17-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Handle upgrade from existing device admins"
aa0a3553974972561e089f2780fb7f6743b3303e 16-Jun-2011 Ben Komalo <benkomalo@google.com> Handle upgrade from existing device admins

This ensures old admins that can't control the camera doesn't try to do
so

Bug: 4686257
Change-Id: Ia2bb8bf2ccf9fb3d1d45ce1ba0affd2ccc9822a9
ndroid/email/SecurityPolicy.java
1579b7864acfec1a9436ae5631de2caf79330447 16-Jun-2011 Marc Blank <mblank@google.com> Merge "Fix Store caching"
c16d060bda3dfe534be92d07d82ebc9277a826d3 16-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Switch to synchronous transaction."
2a292e235cbe7ce33367ba549d4da6cb4764ffe9 16-Jun-2011 Makoto Onuki <omakoto@google.com> Switch to synchronous transaction.

Change-Id: I02639276e4cedd62d288433acb0dfaf34c7a4e76
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
f4dbbf10996e6bca926a5825bbc69e1e172c20c0 16-Jun-2011 Ben Komalo <benkomalo@google.com> Indicate to the user when a cert error happens.

This introduces an exception which needs to be thrown from a KeyManager
when it tries to establish a connection with a server requesting a
certificate.

Change-Id: I06dfad7789ed5d320b630e7e4380e15da42a48df
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
d09cff08882e553afce919865a2cc60b657d4659 06-May-2011 Ben Komalo <benkomalo@google.com> Make "don't allow camera" a supported policy.

This sends the bit to the DPM. Separate changes have been/will be made
to change the provision parser and support it in the DPM.

Bug: 4185316
Change-Id: I44872ceb095a28539b047a0641cc499c7186a9b3
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
f65bdbdaf5960951452b148f801c51feca864bfe 16-Jun-2011 Marc Blank <mblank@google.com> Fix Store caching

Bug: 4671090
Change-Id: I07413eb713c564f6dbcac45091357153cfe19a5d
ndroid/email/mail/Store.java
b40bdb17dfd9cf2972d42aab8b2d20c9c1291acb 15-Jun-2011 Ben Komalo <benkomalo@google.com> Merge "Introduce a cert selector in exchange settings UI."
48e977aab670741134bf1e2ae8f600c1beabf069 15-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Send email usage feedback to ContactsProvider"
82e0e1c4c5c3d526823cf3d8d69bf12c1d44a06a 15-Jun-2011 Ben Komalo <benkomalo@google.com> Show sync window prefs for EAS only.

Bug: 4651025
Change-Id: I1633a2a94e28466686e90df4ff0cdebaaa1a81df
ndroid/email/activity/setup/AccountSettingsFragment.java
3975a28918769e3f9bf43264ec167b0b4bed2f2c 02-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Send email usage feedback to ContactsProvider

This enables the provider to count the number of contacted
per email address basis, which should improve auto-complete
quality.

Bug: 4371572
Change-Id: I4f0e586d3edff5a460e33dc7d9f9680119a8d568
ndroid/email/activity/MessageCompose.java
e4ca576ab0ff1087645400aac134f66b27cb0eef 15-Jun-2011 Ben Komalo <benkomalo@google.com> Low-cost minimal fixes to make phone UI usable

This is a stopgap fix prior to getting designs in to at least make the
various message view components visible on screen so people can at least
use the app.

Note that this also removes reply all/forward, as per the design (the
idea is you can switch in the compose view, so we don't want to waste
real estate in the message view).

Bug: 4644072
Change-Id: I86f041678373a0fbc79a2e135a47cd1e5b1357c7
ndroid/email/activity/MessageViewFragment.java
7014f7d3299203bd83fa893ab2d850b129ec6dc7 14-Jun-2011 Ben Komalo <benkomalo@google.com> Introduce a cert selector in exchange settings UI.

This simply allows the user to select a certificate from the KeyChain to
use for credentials.

Text and UI not finalized.

Change-Id: Ib86abc3c2e899640218122caa12308dc9646dab6
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/view/CertificateSelector.java
6f8ed24c09e044ba3f7722e86b917fc7e5bb018a 15-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Add "search mode" to the action bar"
0f2763274922e15d4baba7e7228f5765034b9c0d 14-Jun-2011 Makoto Onuki <omakoto@google.com> Add "search mode" to the action bar

- Instead of the search dialog, show the search widget on the action bar.
- Launches a new activity for search, but still uses the temporary search code
- Search still works only on two-pane.

Change-Id: I1d36ad3416c7dff9579cf37e40e49e31c9d99219
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
22409fcffae4c6e551fb3e6ead4cdc92e33fded1 14-Jun-2011 Ben Komalo <benkomalo@google.com> Pass HostAuth when validating an account.

Since HostAuth is fully Parcelable, no sense passing the individual
fields.

Change-Id: I4d8fd2bbe7b47e8f1e2ff00c8c0cad8429eec159
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/mail/store/ExchangeStore.java
f5418f1f93b02e7fab9f15eb201800b65510998e 14-Jun-2011 Marc Blank <mblank@google.com> Move Account into its own top-level class

Change-Id: Ide7c991b7d4d418dbe17164421425bf898ba64ee
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/MessagingController.java
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/IntentUtilities.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/ExchangeSender.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/AccountBackupRestore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/EmailWidgetLoader.java
ndroid/email/widget/WidgetConfiguration.java
ndroid/email/widget/WidgetManager.java
69111b1e19456c4e861b031da3b3b7f26893d664 12-Jun-2011 Marc Blank <mblank@google.com> Fix broken account creation

* What the heck is mCacheLoginCredential for??

Bug: 4597765
Change-Id: Idcb6d323ba0e90f3fe6828f59fe36ec54e4cf40c
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
e1fe562e2603c4637f8bc6e17e46c062aed95299 10-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Don't include sourc mailbox in the move-to dialog"
0f747de9a71fecbcb24f5c9fca3d73f1683affe0 10-Jun-2011 Todd Kennedy <toddke@google.com> Don't include sourc mailbox in the move-to dialog

When moving messages using the move-to dialog, exclude the source folder from
the list of valid targets.

bug 4585929

Change-Id: Id02c05f38d1623f0c059d84e50ee1b51a1cdec1a
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
541e98a4e4769a5970d7cbed810fdf0a537928b2 10-Jun-2011 Marc Blank <mblank@google.com> Merge "Remove storeUri's except during auto-setup"
0ec545048a66e3af465a0f1c28d13435886dbfc1 09-Jun-2011 Todd Kennedy <toddke@google.com> Add recent header if there are zero recent items

For the one pane view, it's possible that an account has zero items in the
recent list (this is only possible for accounts that do not have neither
a "drafts" nor a "sent" folder). In such situations, we will still want to
have some header to distinguish between the accounts and the "show all
folders" item.

Change-Id: Ic5d6368b88ba4a28904c3b78a6489d06345a901e
ndroid/email/activity/AccountSelectorAdapter.java
85e4c101b014857fe40f87c3837b82564cfc5b6c 08-Jun-2011 Marc Blank <mblank@google.com> Remove storeUri's except during auto-setup

* Remove per-store limitations
* Use constants for VISIBLE_WINDOW, rather than having the
potential for differences between Stores

Change-Id: Idd5e0874bba6e3390e4f093bcb03f4b1bb399c11
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
e1e63d438797247bf9f97d59a40347dca3752edf 09-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Set proper default values for new mailboxes"
9d2dae67506983c64f72350a4fb5967cfd85b9a8 09-Jun-2011 Todd Kennedy <toddke@google.com> Set proper default values for new mailboxes

When creating mailboxes (specifically 'drafts' or 'sent'), we need to ensure
that its default values for flags & server key are set correctly. In most
cases this is "okay" because the mailbox will be created on the server and
the values for these fields will be reset. However, in cases where system
mailboxes cannot be created on the sever (for example, the 'drafts' folder
on any POP3 account or an IMAP gmail account), these default values do not
get updated and we are unable to view the contents of these mailboxes.

bug 4356871

Change-Id: I9e6a394145f471b555c5827d5114bca243dbc37c
ndroid/email/Controller.java
479fdf03aa575ad843e7192a98b098e511b230de 09-Jun-2011 Ben Komalo <benkomalo@google.com> Guard against invalid selections in spinner

This is a stop gap fix for b/4584196
There was a race condition in which the actionbar callback happened
prior to the fragments being ready, and so any callbacks on a mailbox
would explode (and the spinner mistakenly thought the header was a
mailbox)

Change-Id: Id0a24d252472faf97088175b5c413ef554dc3b76
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/UIControllerOnePane.java
b4f6404cd1a8e96d177995cad797e9f440fc979e 09-Jun-2011 Todd Kennedy <toddke@google.com> ignore state loss during fragment transaction

We don't need to worry about state loss here. If the fragment state is already
saved, the loader will re-fire when the fragment resumes and we'll proceed to
mailbox selection / account list as expected.

Also; only add the account selection fragment to the back stack if there is
more than one account.

bug 4558901

Change-Id: I38290fa378ac80ef5a5c8cf25c38b6e820715366
ndroid/email/activity/ShortcutPickerFragment.java
964c0caf74564c39f207afc67fa95c2d76ac7e90 09-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Don't display count for items with invalid IDs"
a26fe0f1507e754b8c1d31a587f84f043c9cee64 09-Jun-2011 Todd Kennedy <toddke@google.com> Don't display count for items with invalid IDs

Change-Id: Id82b0a96a718f27d51d205b066a282444d6bd939
ndroid/email/activity/AccountSelectorAdapter.java
3b91d0ce0f387d1fe96c46bc4aeb39b15e7712a0 09-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Use fragment transition animation for 1pane."
7986cf67375a14741d58f08ebdc2f2c38abe8b4f 09-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Fix where recent mailboxes are displayed"
519b4881231b1a7737c010e5f19073286e8b1dda 09-Jun-2011 Makoto Onuki <omakoto@google.com> Use fragment transition animation for 1pane.

Change-Id: I5f62abf87580876c75c8578da1d4a46cb92bce94
ndroid/email/activity/UIControllerOnePane.java
3e343286d7235e99101222b37ffa3c3c1262bbc5 08-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Back navigation on 1 pane"
e06e1224414c181e729f7952d80bb70d59fedc20 08-Jun-2011 Makoto Onuki <omakoto@google.com> Back navigation on 1 pane

- Allow going back from the message view to the message list with restoring
all the state on the message list. (batch selection and scroll position)

- Also make "back" work for the message list <-> mailbox list navigation,
but only 1 level at most.
(Only the system back key works for this; the action bar home icon will
not.)

- As discussed offline, it uses our custum "back stack" (which can hold
at most 1 fragment) using the new fragment APIs, attach and detach.

- Removed commitFragmentTransaction() from the base class, as now there's
nothing really in common between the two UI controllers in terms of how
they use the fragment transaction.

Change-Id: Id626ce99beb1f4dceb999dc04bf7d3e5d57a8198
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
85bd26e21069b6ee3188be034025c207f4686684 08-Jun-2011 Todd Kennedy <toddke@google.com> Fix where recent mailboxes are displayed

For the non two pane devices, we only show the recent mailbox list in the
account spinner (and not on the mailbox list fragment).
For two pane devices, we only show the recent mailbox list in the mailbox
list fragment (and not on the account spinner)

Change-Id: I1094626532ad6d6548ef441929d94546c97304a3
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/RecentMailboxManager.java
3161f1a3f21d7ae7eea5bfa00c12004150195e21 08-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Lock cache puts while running tests"
78849fd388041d8727325aa654de31dcb8088786 08-Jun-2011 Todd Kennedy <toddke@google.com> Lock cache puts while running tests

Change-Id: I04c88ee70f9d72252fd1c5114d560a28fcee1b56
ndroid/email/provider/ContentCache.java
313586c8eb4e23ceec068b82f3dc0be1c8a7045f 07-Jun-2011 Ben Komalo <benkomalo@google.com> Introduce client cert alias for HostAuth.

Some email servers require client certificates to be presented to
establish an SSL connection. While this certificate will be maintained
by the system key store, we need to store the "alias" of the certificate
stored in that system store.

Wiring up to use the actual alias will be done in future CL's. It is
currently unused.

Change-Id: I8d1290151342daea9ceb0df8a4088405b44faa81
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/provider/EmailProvider.java
4431a74be500081264c35fe7fff29b8c49342782 08-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Message list: Hide CAB when in back stack."
ab2dba417a277cfee4410f281307b635a2ff2e68 08-Jun-2011 Makoto Onuki <omakoto@google.com> Message list: Hide CAB when in back stack.

Because isViewCreated() is used by updateSelectionMode() which is called from
onDestroyView(), we can't use getView() to determine if the CAB should be
shown.

Change-Id: I8d868998031115800766000fb0128f1d1d3541cd
ndroid/email/activity/MessageListFragment.java
7305cf5c8e8332e720da758d3a81267cf8bb7d4b 08-Jun-2011 Todd Kennedy <toddke@google.com> update account spinner properly

Fixes two issues:
1. if a recent folder was selected from the spinner, the user could not
re-select it (even if they navigated to another mailbox using the mailbox
list) unless they manually selected another element in the spinner
2. the recent item "show all folders" did not set the associated account
position, so, when selecting that item, the spinner was not showing the
correct view.

Change-Id: I469f9f28aebd36a348534def28a4c476c0df366d
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
dc6928d798d61049a47f4babeaa5aab90c091cc1 08-Jun-2011 Todd Kennedy <toddke@google.com> Add recent mailboxes to the mailbox list

Change-Id: I84ee9d0da43ccac4d10e5122f57583c4b39cf65d
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
1b404f4fff39977e4f8edc9258c1bd1075da11c6 07-Jun-2011 Todd Kennedy <toddke@google.com> Collapse MailboxAdapter & MailboxFragmentAdapter

MFA was the only subclass of MA and the abstraction no longer made sense.
Collapse the two into a single adapter class.

Change-Id: I32c6f027bc37f3da08626f743c3f494e5f48c3f0
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MailboxesAdapter.java
96e44859cf280941c9eacbef6d1dc0d9538281c6 07-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Always add "recent" header for one pane view"
f329665e1081207a0327f1f93978f50eb20647d2 07-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Remove "Show all folders" menu item."
f1097ba7e9b3eb91cd1e2537f626e93544ecca17 07-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Revive message view specific menu options"
ed14960af5def97fa00a899f9cd19fadb55a49bc 07-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "New method to see whether 1-pane or 2-pane UI..."
c6bb2ab553c41ef357f548a35840043955b33088 07-Jun-2011 Makoto Onuki <omakoto@google.com> Revive message view specific menu options

Revive the delete, move, mark unread options

This was lost during the refactoring.

Bug 4483764

Change-Id: Ic8d79f926aac303b3ff7477019cd05c29d614627
ndroid/email/activity/MessageViewFragment.java
101f929b3cc7c0646ed38db2e0c4693e09c919d9 07-Jun-2011 Makoto Onuki <omakoto@google.com> Remove "Show all folders" menu item.

Now the account spinner has this.

Change-Id: I95e771e512f6c70ea9ddd8084c29a2f99b4cd758
ndroid/email/activity/UIControllerOnePane.java
347ae23b6932fe994b03909bf90854888c438517 07-Jun-2011 Makoto Onuki <omakoto@google.com> New method to see whether 1-pane or 2-pane UI...

should be used.

From now on, UiUtilities.useTwoPane() should be used to see which UI
should be used.

You can pass the DEBUG_PANE_MODE extra when launching Welcome
to force which UI mode to use. (See the comment inside Welcome.)

Change-Id: Iefa3737e4979eb55f7986a9033ff9c6266d32f52
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UiUtilities.java
ndroid/email/activity/Welcome.java
132307281dd22802c774234d4f6a9d8902a659b7 07-Jun-2011 Todd Kennedy <toddke@google.com> Always add "recent" header for one pane view

The one pane view will always have something in the recent list (either the
default recent list or the "all folders" item).

Change-Id: Ic264b59dc25504a8ce75bea6efae53a0d5dede87
ndroid/email/activity/AccountSelectorAdapter.java
da3d04ea31a8452d3e34003b699a02ea02e3632b 07-Jun-2011 Todd Kennedy <toddke@google.com> Add ability to create headers in the mailbox list

Change-Id: I9d1054056db7b6ac993570adcc4adc4cc6699e9c
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ab40c988216b32ed145c0cad45c25e9cf2509c85 06-Jun-2011 Makoto Onuki <omakoto@google.com> More work on fragment install/uninstall.

- Now we "uninstall" a fragment in Fragment.onDestroyView.
i.e. a fragment transaction is actually executed.
- Maintain our own "about to be removed" fragment list to avoid
double removal of a fragment.

Change-Id: I61328e0a09a7af00cbb0e6ba10a2d39c11b5c3dc
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/FragmentInstallable.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/UiUtilities.java
cb530b4e9139a8049cf639c28613630e9a9dbc48 07-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Use the CursorWithExtras pattern for the message list."
a09ac7d41704e7d39a40824b3869c537266c7666 07-Jun-2011 Todd Kennedy <toddke@google.com> Implement account spinner recent list for one pane

This adds the default recent list and 'show all folders' to the one pane UI.

Change-Id: I877f854ff4f9c7440cbd40f2a9ded8aba4002656
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/UIControllerOnePane.java
a757aaa055825bb3547ab35f49ccc5227340b4d9 07-Jun-2011 Todd Kennedy <toddke@google.com> Properly display spinner when necessary

Previously, we were deciding whether to show the spinner if the returned cursor
had more than 1 element. However, the cursor would _always_ have more than one
element because it contains a header in addition to the account information.

We now save away the number of accounts and the size of the recent list into the
cursor so we can use those counts to determine if the spinner should be shown.
Both of these counts are necessary as we want to show the spinner even if there
is only a single account as long as it has at least one recent mailbox.

Change-Id: If428c496a548a25f6b5cd7301ddb5c0d6876750c
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
e3924188409b631c9ed53cf0b8f1fb455c3ef67d 07-Jun-2011 Todd Kennedy <toddke@google.com> Add recent mailboxes to the account spinner

The ability to change mailboxes using the spinner is currently only implemented
for the two-pane UI. one-pane implementation will come in a future CL.

Change-Id: If72e9d9d607508553c918f5523e748e8a481ff84
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
63a206ea56ba549f3bca255a152b0ac476ec9cbe 07-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Manually restore list view state."
41878c2813d9948af5d333e2bf4d063c538d3c19 03-Jun-2011 Makoto Onuki <omakoto@google.com> Use the CursorWithExtras pattern for the message list.

This will make the message list a lot snappier.

We were using two different loaders for the message list; one is to load
the meta information and the other to load the actual message list.

Unify them using the CursorWithExtras pattern.

Change-Id: I02957bbca1b1fb74ca6eca14ad2535dfdbf03a5a
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/data/MailboxAccountLoader.java
345a61d0b97411e9c26d9ec7a79bc6cd1afebd1d 03-Jun-2011 Makoto Onuki <omakoto@google.com> Manually restore list view state.

Bug 4532222

Change-Id: I6f3394b7ffd55b32e1932e3e425cc0d0ae720e27
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
47806a2244223760b5552ce6ee21a31650d3b7fe 07-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Fix filtered query"
3a1e874a9cedf1a579c44d9342937777c8f21d18 06-Jun-2011 Todd Kennedy <toddke@google.com> Fix filtered query

we need to return 5, post filtered, results. previously, we were returning
5, pre filtered, results. Also add a test to catch this condition.

Change-Id: Id25f4bf79081c42a2012e0e51b36142120c83b20
ndroid/email/activity/RecentMailboxManager.java
d42b3222fb7dfb10f89f61ecbd46cc0156099013 06-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Make message list behave nicely when it's in back stack"
69461503fb5faa24c37c86cd54012fb2ec2308be 06-Jun-2011 Todd Kennedy <toddke@google.com> Add "Accounts" header to the AB spinner

Change-Id: I35e4b7295db16db803ede084cf65fa3f2115f770
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActionBarController.java
296d7d3614fec5f6ecfb3c9ca9fd4cd630482566 06-Jun-2011 Makoto Onuki <omakoto@google.com> Make message list behave nicely when it's in back stack

- Hide CAB when it has no views.
- Stop pending tasks and refresh callbacks when it's paused.

Change-Id: Idaae9061237ce9f923c002d659e8e12407e4bad1
ndroid/email/activity/MessageListFragment.java
f04c832f23b14aa26bf584eb9a82f9bc06279524 04-Jun-2011 Todd Kennedy <toddke@google.com> Add ability to track mailbox recency

Change-Id: I1bcc7928ea7065a5daa262b7cea7ee3e21981675
ndroid/email/activity/RecentMailboxManager.java
7d9d3a220a2aea7c76e3a202566f33d6c03d245a 04-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Add new column to table creation method"
2e112b2d12c85d47e85fc821e3cee74c295c6c52 04-Jun-2011 Todd Kennedy <toddke@google.com> Add new column to table creation method

Change-Id: I2c6fe80d06e54dbd10eba41f0a0aa758baffb1b0
ndroid/email/provider/EmailProvider.java
696fa78cb3bc772149b778018354f3a52ba3e97b 04-Jun-2011 Makoto Onuki <omakoto@google.com> Don't enable FragmentManager logging.

Change-Id: Ie02ece80df7832c609cffb64a4b0626c6b8a77b5
ndroid/email/activity/UIControllerTwoPane.java
cc881b744b6d8ca0f0792bf4adf2422218c88e0b 03-Jun-2011 Makoto Onuki <omakoto@google.com> Remove the hidden newer/older buttons from 1-pane.

We'll implement swipe and this view is not used on 1-pane anyway.

Change-Id: Ib1d9b44dd530159377f3e5f883188832de30482f
ndroid/email/activity/UIControllerOnePane.java
03b863d68e95169c95baac7cb50dce9bdeeedf95 03-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Implement 1-pane navigation."
3d9b8e76f0a396370a5c0be99a34bf7c24bd20dd 03-Jun-2011 Makoto Onuki <omakoto@google.com> Implement 1-pane navigation.

- Now that fragment useage is simplified (e.g. no new fragment
creation for nested mailbox navigation), most of the fragment
operation code for 2-pane is reuseable for 1-pane as well,
so moeved it to the base class.

- Temporarily added "Show all folders" as a menu option on 1-pane.

- Added "opener account id/mailbox id" to the message view fragment.
They are not used by the fragment itself, but they're used
by the UI controller for the back navigation. (And now the UI
controller doesn't maintain the current IDs by itself; rather
it gets them from the currently-active fragment.)

- Use async fragment transaction on 1-pane too, now that it always
gets the current state from the active fragment.

- Changed the timing when we install fragments from onAttachFragment
to fragments' onActivityCreated. So now all installed fragments are
created.

TODO Now that all installed fragments are guaranteed to be created,
remove all special trealment for the fragment argument accessor.
(They were meant be safe to call before onCreate, but it's not
necessary any more.)

Change-Id: I0ed100c3f0b460835b164c0dc908ea483a4e46ee
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/FragmentInstallable.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/UiUtilities.java
8f54b2f1356248800cf4516f1f52ea643ace1f7d 03-Jun-2011 Jorge Lugo <jlugo@google.com> Merge "Fixed reply-all bug"
15842c522ec50584fcf04e1ffa47025bfef01715 03-Jun-2011 Jorge Lugo <jlugo@google.com> Fixed reply-all bug

Upon hitting reply all, all email addresses except that of the source message sender
go in the CC: field. Previously they all went in the TO: field. Updated 3 tests
in MessageComposeTests.java (testReplyAllAddresses1(), testReplyAllAddresses2(), and
testReplyAllAddresses3()) to reflect this new behavior.

Bug: 4534058
Change-Id: I852daebdd8843a45f685eecc67f757c87925bb6c
ndroid/email/activity/MessageCompose.java
4c4b088a21dc4b438b1fd78096c09ab1d36706f4 03-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Add "lastTouchedTime" column to the mailbox table"
9dcb72e1ecca83178c3af07f105c2ec12526a52c 03-Jun-2011 Todd Kennedy <toddke@google.com> Add "lastTouchedTime" column to the mailbox table

The last touched time will track the last time a message within that mailbox
was read. This will be used for the recent list.

Change-Id: I97a5fda52fd09b416fc3278a11a87b807da05c9c
ndroid/email/provider/EmailProvider.java
aaf12a5e758cca0a4d187e6f4f63c6ae8ccd7c0c 03-Jun-2011 Marc Blank <mblank@google.com> Merge "Update searchMessages API"
75a754660e33c5e18cacffff193983ba22a7b9b0 02-Jun-2011 Marc Blank <mblank@google.com> Update searchMessages API

* Store various search parameters in a new parcelable class

Change-Id: Iadec6a803b1bf17d89cd401c3fca1cb0ad3340d4
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/EmailActivity.java
bc7cd16ec239a4df184a86b3d5ec1ba305b224b6 03-Jun-2011 Todd Kennedy <toddke@google.com> Fix NPE if message displayName is null

the spannable string builder assumes the given char sequence is non-null.
we now ensure that's always the case.

Change-Id: I12e7081e5348d797feab6ad17452b73a52feaf13
ndroid/email/widget/EmailWidget.java
cf772cc8ad38fe4eb929964c3839d7388dfd585c 02-Jun-2011 Todd Kennedy <toddke@google.com> update UX according to specs

Display the mailbox name as the widget title and the account name
as the secondary title.

Change-Id: Ibb36d4897e02b8cbc501eae9b27ee8381fe91e1a
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/EmailWidgetLoader.java
b9afe5760cfe16d3fdf51c499cf102bc7b700fc6 02-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Fix NPE accessing fragment arguments"
8121876feff20a84176826196d113e2d9aad3b4f 02-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Add proper wording for "all accounts" picker item"
f47255f6fcdcf94c55c580b1784af1cfa3f2f7e3 02-Jun-2011 Todd Kennedy <toddke@google.com> Fix NPE accessing fragment arguments

Change-Id: I417927568c2407f1d183f3d112d0761f57b5bb12
ndroid/email/activity/ShortcutPickerFragment.java
b19516e24836c9479c6ecfbf3d54d58cf64782ed 02-Jun-2011 Todd Kennedy <toddke@google.com> Add proper wording for "all accounts" picker item

Per discussion w/ UX.

Change-Id: Ida4a11828d2bb157c4bc0c66f84d877013f0e4d7
ndroid/email/activity/ShortcutPickerFragment.java
5dc07ad26c70c5011483781df6e37af409ab0094 02-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Rework on inbox lookup"
2f5ee8e2d1e106340eb2a21b1ada6db1987bd98f 02-Jun-2011 Todd Kennedy <toddke@google.com> filter mailbox list for the widget

The mailbox list for widget configuration should only include two mailboxes --
1. an account's full inbox (both read & unread) and 2. an account's unread
inbox (similar to #1, but, only contains unread messages)

This also applies for the combined account view.

Change-Id: I5640fd8572d385703db04ca613f5b1f35f3952da
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/widget/WidgetConfiguration.java
f015cc00ed9fbf8a992ff31ee0106abcc8cb4f9b 02-Jun-2011 Makoto Onuki <omakoto@google.com> Rework on inbox lookup

- Moved MailboxFinder logic to UIControllerBase so it can be reused for 1-pane.
- Make sure MailboxFinder runs only while the activity is resumed.
(we don't want to get callbacks when it's not, because we can't perform
fragment transactions.)
- Make sure MailboxFinder is restarted if the activity gets re-created
while it's still running.

Bug 4522010

Change-Id: I4486ecfa44dd700d28c424bc5eb7104d3043cf7d
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
47d6f782de58625ae60dde165125ea04748d11b5 02-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Switch to async fragment transaction for two-pane"
61b0605a0b34b4bab77273958b263a4bb9db6498 02-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Change on the mailbox list item background."
2912bed923f5626eba5af574c13f14a8fd1e0491 02-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Remove unused method."
3a8a1b451dc21eb0e1b05e04b1d4df8971187c84 02-Jun-2011 Makoto Onuki <omakoto@google.com> Change on the mailbox list item background.

- The drawable for the active drop target background was static, and
shared between items. But StateListDrawable has inernal state and
shouldn't be shared.

- Also make sure not to set the same background more than once.

For some reason, they will cause visal glitches when we switch to synchronous
fragment transaction.

Change-Id: I10fede2ad4e595f74d61768907b5b70fd5d4da21
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
7f4cf3c46b0dd1bc001c547807e83b7c280f074b 02-Jun-2011 Todd Kennedy <toddke@google.com> Hook account/mailbox picker to widget

now when adding a widget to the desktop, you can pick the account
and mailbox.

Change-Id: Id3d2c21b349af58459304ac5a068402d67f4d0f7
ndroid/email/Email.java
ndroid/email/provider/WidgetProvider.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/WidgetConfiguration.java
ndroid/email/widget/WidgetManager.java
c7024f73ec95d610ac88fd3d884c131c0499b490 02-Jun-2011 Makoto Onuki <omakoto@google.com> Switch to async fragment transaction for two-pane

One-pane will follow too, but not soon.

Change-Id: Ie018f728273e9fa4a7e6cf3116a2a2afebcaecc5
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
147e41d00aed3eac469567c4c7f50616ef3df994 02-Jun-2011 Makoto Onuki <omakoto@google.com> Remove unused method.

This should have been removed in I2c23651d.

Change-Id: I8dd90a0ba55e701225cdaf2e5b7c5fe92a417525
ndroid/email/activity/UIControllerBase.java
60abc35a72c89b103deb5a43ce59904535d1e1ea 02-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Loader query should use mailbox key"
0b4602b5d926d0cd1a913963497eec674cf1cea3 02-Jun-2011 Todd Kennedy <toddke@google.com> Loader query should use mailbox key

The loader query should be testing against the mailbox key and not the message
id.

Change-Id: Idcc31b4e84db55c8c6a95e1141740371e1390c81
ndroid/email/widget/EmailWidgetLoader.java
5c453db6397e123b3f296fe7e956fb67e37fa247 02-Jun-2011 Todd Kennedy <toddke@google.com> Merge "Save widget config to shared preferences"
fa1b3a8f37eada5efad690b7abd32ae248aa2f2b 01-Jun-2011 Todd Kennedy <toddke@google.com> Save widget config to shared preferences

The way the config activity communicates with the widget will be through
shared preferences. We now read / write shared preferences for widget
configuration. One step closer to the configuration activity...

Change-Id: I7c54259d84ad8d304a61652af5b3edff4c7d67db
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/EmailWidgetLoader.java
ndroid/email/widget/WidgetManager.java
3bfd5734b8f75b6ec0efbf4fb3e3cc0b77a85d8e 02-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "MailboxListFragment: In-place nested mailbox navigation"
844bf745044b4564f42a68f8b7d40105c4def294 01-Jun-2011 Makoto Onuki <omakoto@google.com> MailboxListFragment: In-place nested mailbox navigation

Now we reuse the same instance of the fragment for nested mailbox
navigation. (Don't use fragment transaction)

"CursorWithExtras" now only has the child count, so I removed the
bundle version and added a concrete class to MailboxFragmentAdapter.

With this CL the nested mailbox navigation on 1-pane should work, but
not back navigation. (Back press event isn't connected to the
fragment yet.)

Change-Id: I2c23651d9c8edb5fe062c68bbb9b462c8949ded4
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/Welcome.java
ndroid/email/data/CursorWithExtras.java
9634d2d88c7f9c9591c2c86aedea7e8cc6917010 01-Jun-2011 Marc Blank <mblank@google.com> Merge "Workaround bug 4520517"
e50a6fb48bfd6f3dbf06e6973afe71015db91d2c 01-Jun-2011 Makoto Onuki <omakoto@google.com> Workaround bug 4520517

To test bug 4490341

Change-Id: I93127a8ed1579184b0ae9c1fc0ce51bae7927f76
ndroid/email/activity/MessageCompose.java
44f5cd67c97da6a5c7e63a73b4dca7057b83cdbb 01-Jun-2011 Todd Kennedy <toddke@google.com> Remove widget views

The new widget UX allows for a single display mode for the widget. This can
be configured when the widget is added or at a later time during widget
re-configuration.

We don't have the configuration activity (yet). We first need to restructure
the widget to take a single account / mailbox combination. Hooking up the
configuration activity will occur in a future CL.

Change-Id: I38a5796c44938a6abd0d2bb50ac77241cc86a497
ndroid/email/provider/WidgetProvider.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/EmailWidgetLoader.java
ndroid/email/widget/WidgetManager.java
ndroid/email/widget/WidgetView.java
0f84ff2c082dc4ea774f53fe6877752a769ca258 27-May-2011 Todd Kennedy <toddke@google.com> Add meta options in the picker

With this CL, we have "All accounts" in the account list and "Inbox" & "Unread"
in the mailbox list. "All" + "Unread" doesn't play very well, so, we should
seriously consider whether it's worth the effort to support it right now.

Change-Id: Ia1c07c89a535a68ffe6f3ae5009b5b6591a9acdb
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/activity/Welcome.java
dc6f61a4c256d7b8c2d75005e16d8e9252b21237 27-May-2011 Todd Kennedy <toddke@google.com> Merge "Use standard widget call backs"
98108f2e0e472861fe72c7cc9b6cd602a94643c4 27-May-2011 Todd Kennedy <toddke@google.com> Use standard widget call backs

Instead of overriding onReceive() and processing messages ourselves, we should
be overriding the standard widget call back methods, onUpdate(), etc...

Also added a deleteWidgets() method in the widget manager to maintain beter
symetry between create & delete.

Change-Id: Idc84bf220a1e14776a080cfee0b28df39f9a1450
ndroid/email/provider/WidgetProvider.java
ndroid/email/widget/WidgetManager.java
88b5e296e02e8f7ac53122fe4d4577dbadd1d0f4 27-May-2011 Makoto Onuki <omakoto@google.com> Merge "MessageViewFragment: Preparing to use back stack."
7956e76e18a641a2354a09fc6cc8ee4332032a22 27-May-2011 Todd Kennedy <toddke@google.com> Merge "Make callbacks from shortcut picker"
ae8e612ed5eb00c228070f4f43359cc7eae99932 27-May-2011 Todd Kennedy <toddke@google.com> Make callbacks from shortcut picker

We need to move some of the calls from shortcut picker to the activity (such
as creating the actual shortcut and terminating the activity). This should
let us to reuse the picker fragment from the widget code.

Maybe other callbacks are needed, but, this is a first pass to get something
that "should" work.

Change-Id: I6467979951ad73b5817ba543683f62f831ac73a4
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
6d4456935683ab07088baa6aaea78b7a94e8addf 27-May-2011 Ben Komalo <benkomalo@google.com> Merge "Prevent NPE in MessageCompose."
6d4f0d8fa0e8e50532898e8ad67c2d245d5defd3 27-May-2011 Todd Kennedy <toddke@google.com> Merge "Make it clear that args are immutable"
90e08781ca8ce7f0911924d7c85619ca6b1634d1 26-May-2011 Todd Kennedy <toddke@google.com> Make it clear that args are immutable

Change-Id: I54657648fc7fcd145689a51acd8f3c27d3611a97
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
262d18971aeca5aabdc35ae85696907ff26a28b8 27-May-2011 Makoto Onuki <omakoto@google.com> Merge "MessageListFragment: Preparing to use back stack"
7cb2376aed7472166d1897a9ffda938864f3ab4b 26-May-2011 Makoto Onuki <omakoto@google.com> MessageListFragment: Preparing to use back stack

with some clean-ups.

Change-Id: Ifd0ce888c6387013bc51237528980605c929279c
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessagesAdapter.java
b59b9d04d5721e27d02c13f8a4d4c14707522479 26-May-2011 Todd Kennedy <toddke@google.com> Merge "Don't navigate to a shortcut mailbox"
3a505d8d9694b56d6c704547c51f32a9756410f8 26-May-2011 Makoto Onuki <omakoto@google.com> MessageViewFragment: Preparing to use back stack.

Do all the clean-up stuff in onDestroyView() rather than onDestroy(),
so that no callbacks (such as the controller callbacks and
AsyncTask.onPostExecute()s) will work when it doesn't have views.

Change-Id: Ic4aa771d28209ee7b56ac4d228488768ae998dd8
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ca6eca0466f9dc58317dd4334da2b951e23f06d7 25-May-2011 Todd Kennedy <toddke@google.com> Don't navigate to a shortcut mailbox

All shortcuts now have a mailbox associated with them. When launching
the app via shortcut, we want to show the messages within that mailbox, but,
we do not want to navigate into the mailbox; unless the mailbox has children.
Since we don't want to put too much informatin into the shortcut, we must
perform these checks at runtime. So, if ever we try to load a mailbox that
doesn't contain children, we load it's parent instead.

Change-Id: Idb5dbc7cd740b270a0068811abe685f963ca2c0b
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/data/CursorWithExtras.java
67fefe21b6220f9e08d4cdcb7a8cbcce4278f257 26-May-2011 Marc Blank <mblank@google.com> Remove change made to workaround DPM issue

Change-Id: I88a9663d513e13ecca5957c61e2e817a8bd847d5
ndroid/email/SecurityPolicy.java
fdfeb8d3c340c941d94d2721231bb1a5dc045540 26-May-2011 Ben Komalo <benkomalo@google.com> Prevent NPE in MessageCompose.

New actionBar code makes removeAllTabs() not safe when there are no
tabs.

Change-Id: I9ac09c71872c5f2aaad7b8e3cf5dbe0caac6f8ef
ndroid/email/activity/MessageCompose.java
4ade29d6b07b03c52218bc93b7bdd980c696f6d7 26-May-2011 Makoto Onuki <omakoto@google.com> Merge "MailboxListFragment: Preparing to use back stack"
d1b7d43df66b073207e0988b2066aa6183afaffe 26-May-2011 Makoto Onuki <omakoto@google.com> MailboxListFragment: Preparing to use back stack

- Added more lifecycle logs to understand fragment lifecycle better.
- Made sure all code work fine even in the state where a MailboxListFragment
is create but doesn't have views.
- Cleaned up list state resoration code.
Removed the setListAdapter call from onLoadFinished, which lets the
ListView restore the state by itself, in the case where we're re-loading
list for DB changes. We still need to do the restoration manually for
the orientation change case.

Change-Id: I96bff4ace6d48cc02113c2f5bd6a995260122334
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
102a001e96421601baa820c2a5434ad85fa3b161 26-May-2011 Ben Komalo <benkomalo@google.com> Merge "Step 1 in - Email support for 7" devices."
3096b4ae18f55c9ebf04d83c534da4d5e3370932 25-May-2011 Makoto Onuki <omakoto@google.com> Add Controller.deleteMessages(long[]) for batch delete

- Also removed the accoundId parameter, which wasn't used.
- Also cleaned up MailboxListFragment.onDrop.
(the restored Message was only used to get the account id, but
it's no longer needed.)

Bug 4384642

Change-Id: I8f6635011dae0529a82972617101e1c130090b76
ndroid/email/Controller.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListFragment.java
761390a04193fe41a0ee2292e2051cf1b640b81c 25-May-2011 Ben Komalo <benkomalo@google.com> Step 1 in - Email support for 7" devices.

This is a cherry-pick of 9f976e29a0406a51dd7e15778625060d3e5e7031 from
honeycomb-mr2. This is still using the old w600 qualifiers but the next
CL will cherry-pick the fix for that.

Change-Id: I40ab6717575cdfd02d5f7d05409f0355e96f2085
ndroid/email/activity/ThreePaneLayout.java
72b458395d88462a2c3ecdde391eb64f1f6e255a 25-May-2011 Makoto Onuki <omakoto@google.com> Merge "Rename some MessageViewFragmentBase callbacks."
28b48acab014687b67d1d4658c9b6304ad105ea3 25-May-2011 Marc Blank <mblank@google.com> resolved conflicts for merge of 7c270c50 to master

Change-Id: Id1694449a8a270429cf32b2ecd70da7afa3447a1
d7db0a5f6b6b3472f122e6f8009ef412527f4294 25-May-2011 Todd Kennedy <toddke@google.com> Merge "Auto-select if only one item in the list"
f3ff0ba91076ef1fb087fc30fe65d9504011c2b3 19-May-2011 Marc Blank <mblank@google.com> Create AccountManager acct for pop/imap on upgrade from GB

* Also, unit test for upgrade path

Bug: 4439595
Change-Id: I508a3d8ea70c1a894a412528314e42a39f3ae0e7
ndroid/email/provider/EmailProvider.java
e2d227ffeda71ef08a11c08c5b1a2345a03091c8 25-May-2011 Todd Kennedy <toddke@google.com> Auto-select if only one item in the list

If there is only one account and/or mailbox, automatically select it and
move onto the next step.

Change-Id: I716fbafb50ac6d59a17739a8d69c735d7733858b
ndroid/email/activity/ShortcutPickerFragment.java
5675ea88d3cc4ba9934d2a54fee008fd324d711f 24-May-2011 Todd Kennedy <toddke@google.com> Add a second fragment to select the mailbox

After choosing the account, we need to select a mailbox for the shortcut.
In order to replace the fragment, we cannot hardcode it in the XML. Instead,
we need to dynamically create it.

Also, restructure the fragment class and rely on the class to "do the right
thing"

Change-Id: I752ad5bbdf2484332ec2b73852cae74a5d2092fa
ndroid/email/Email.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/AccountShortcutPickerFragment.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/ShortcutPicker.java
ndroid/email/activity/ShortcutPickerFragment.java
ndroid/email/activity/Welcome.java
0b31917c0e1c9ee50f5c56b3a5b4cbfb7fd373f3 24-May-2011 Makoto Onuki <omakoto@google.com> Rename some MessageViewFragmentBase callbacks.

- Renamed some methods in MessageViewFragmentBase.Callback
- Removed unnecessary argument from a callback.
- Removed obsolete comment.

Change-Id: Ia5af222971bfe6b943c98208b539946f14f16aa8
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
87f9b376a8b4170dbc5633cc463f3d83a99e7e8b 24-May-2011 Todd Kennedy <toddke@google.com> Only use one line of text for the shortcut list

The list used to contain both the display name (whatever special name the user
chose during account creation) and the email address. The new mocks only use
the display name.

Change-Id: I97f4f16af9865207f26e67aed5d07340775ea37c
ndroid/email/activity/AccountShortcutPickerFragment.java
1e3c6d9788b1e62b92ae566ca59f41a07f88ed18 18-May-2011 Todd Kennedy <toddke@google.com> use a fragment for the shortcut picker

instead of using an activity (which will be hard to manage multiple screens in
the 'back' stack), use a fragment. we can easily manage multiple fragments with
a fragment transaction.

Change-Id: Ibf75dd45941a0c1c6b6b6add8de78146cdae7c65
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/AccountShortcutPickerFragment.java
4f5d4e29a8180b5c1e8cd80f5e3e9c4ed098049c 24-May-2011 Marc Blank <mblank@google.com> Always set policies in DPM before checking whether they are active

* Since DPM can erroneously report a password failure (specifically,
isActivePasswordSufficient() can return false when, in fact, the
active password is just fine)
* This is the proximate cause of the referenced bug; we just weren't
prepared to have the DPM mislead us...

Bug: 4464610
Change-Id: Ifcb85c0729e9a1884fbcf7b4180eb332bbfef1b5
ndroid/email/SecurityPolicy.java
ee97468feb73f0ed040485292687b764027d7d31 20-May-2011 Ben Komalo <benkomalo@google.com> Fix typo in settings.

This was causing a crash in settings when opening an incoming settings
fragment after initial setup.

Change-Id: Icedd24a3f5e8f378d6725a09c97525450ef74af7
ndroid/email/activity/setup/AccountSettings.java
c5bbf134ea876a45a3ea4d2f8d1fa009295b9631 20-May-2011 Makoto Onuki <omakoto@google.com> Merge "Show a toast for stale shortcuts."
b535e436f37fda4a18a939ab3afc134f9967ec8a 20-May-2011 Ben Komalo <benkomalo@google.com> Merge "Move HostAuth to top level class."
c1ca222b759ab5412ec732f6696f76e929f3cd01 20-May-2011 Makoto Onuki <omakoto@google.com> Show a toast for stale shortcuts.

Change-Id: Ibd7b9ae6a39169604136faafc1a7f87876ba55a1
ndroid/email/activity/Welcome.java
12b82d9374947c9268217f45befe8a74bd9b60d7 20-May-2011 Ben Komalo <benkomalo@google.com> Move HostAuth to top level class.

No other changes made.

Change-Id: I1c6497c98abc0f99443ea42d8aed6295b263c123
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/MailService.java
d531dc3058c52b1e3ee2ee53eb8d63d6177d9f91 19-May-2011 Makoto Onuki <omakoto@google.com> Fix opening Starred mailbox.

We need to pass around the account ID with onMailboxSelected too.
(It's kinda sad it wouldn't have happened if we had par-account starred
mailbox.)

Also made sure MailboxListItem.mMailboxId now really contains only a mailbox
ID. Before this chage, we stored an account ID to this for an account row
on the combined mailbox.

Bug 4452811

Change-Id: I732fd8eb18f787f4a700a45a40768f96e3bb8751
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
2ed7a86949b2b2a95017525145ad421b9e5d0e38 17-May-2011 Makoto Onuki <omakoto@google.com> Support pre-HC style account shortcuts

Account shortcuts used to point at MessageList directly with a
content://com.android.email.provider/account/ACCOUNT-UUID URI.

Hook these intents and open Welcome instead.

On Eclair and before, we stored an account-ID directly as an extra,
but this style is no longer supported.

Bug 4208879

Change-Id: I9fecb0723743377a6d7c7e84626e8613f2356492
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/Welcome.java
01bd33f318f03d5496b4d252e3a536856405f73c 19-May-2011 Makoto Onuki <omakoto@google.com> Change to Mailbox/MessageListFragment

- MailboxListFragment.Callback.onMailboxSelected is now split into
two different callbacks, one for regular selection and the
other for DnD for clarity.
- Added onDragStarted/Ended to MessageListFragment.Callback
- Changed Log to use this

Change-Id: I8861d3b43aa1b5b17c68c53605270e99733599f4
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
92c0d91578e026ff099f195b8f91fde22a5c8dad 19-May-2011 Makoto Onuki <omakoto@google.com> Merge "Clean up Two pane"
49de71e3d272b3070716f36ba574a620cdf62674 18-May-2011 Makoto Onuki <omakoto@google.com> Clean up Two pane

- Remove bunch of outdated TODOs
- Removed the stack for the back navigation for nested folders.
Instead, Back/Up will always just navigate to the parent mailbox.
- Two-pane UI controller no longer stores IDs by itself.
Now it always gets these from installed fragments.
- Added UIController.switchAccount(), which is the same as openAccount
except it's no-op if the account is already selected.
- Other small clean-ups.

Change-Id: Ie14bc4f4b6b2cf6afb69bc97967c25682d4c7c78
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
9f976e29a0406a51dd7e15778625060d3e5e7031 18-May-2011 Ben Komalo <benkomalo@google.com> DO NOT MERGE - Email support for 7" devices.

- use XLarge layout for Large as well in most cases.
- use XLarge portrait behavior for landscape and portrait for message
list collapsing
- some minor tweaks to account setup UI as the XLarge one didn't fit
on large devices with the padding it specified

Change-Id: I2a83e7239019b3feadcabe5fae61f0d13a628471
ndroid/email/activity/ThreePaneLayout.java
ndroid/email/activity/Welcome.java
ff726511459d88bcb7cbf88f6b15f52a3816f23a 18-May-2011 Todd Kennedy <toddke@google.com> Clean up shortcut picker

First some cleanup before adding new functionality.

Change-Id: I37339bb8967c2136c8361133d38c2f5ad30ae3e2
ndroid/email/activity/AccountShortcutPicker.java
3909570d262d19051d99072114d4849a4bf7f300 18-May-2011 Makoto Onuki <omakoto@google.com> Merge "Changes for NO_XXX"
b36ac017926f2557f4a476d0cefe49002d11233b 17-May-2011 Makoto Onuki <omakoto@google.com> Changes for NO_XXX

- Added Message.NO_MESSAGE
- Renamed PSEUDO_ACCOUNT_ID_NONE to NO_ACCOUNT
- Removed PARENT_KEY_NONE and use NO_MAILBOX instead
- For starters, cleaned up the UI controllers to use them.

Change-Id: I6cfd87ece2fced8e9f7c76d034c4d1dbf9e4db10
ndroid/email/NotificationController.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
18ad1651fa895dfbd79b65f2cadfe287956d789f 17-May-2011 Todd Kennedy <toddke@google.com> Merge "Fix display of POP3 mailbox"
e07ecb8864b2b77270a1fa4844d6614c93c7291b 17-May-2011 Todd Kennedy <toddke@google.com> Fix display of POP3 mailbox

When legacy support for mailboxes with a parent key of '0' was removed, the
parent key for POP3 mailboxes was not updated. This forces the parent key
for all POP3 mailboxes to be "no mailbox". If we ever want to support virtual
mailboxes for POP3 accounts, this will need to be adjusted.

Change-Id: I4ae0e386db4bcdaf559b87ca17cbe0d151dea75b
ndroid/email/mail/store/Pop3Store.java
a30316d0dfd1eb5a03894e54ba051253c3400eae 17-May-2011 Marc Blank <mblank@google.com> Merge "Workaround bug in DPM related to initialization of our admin"
6d9d71683a067b7f2293b60f70dc60e151aa151b 17-May-2011 Marc Blank <mblank@google.com> Workaround bug in DPM related to initialization of our admin

Bug: 4436285

Change-Id: If6f0ccaa9e1479fae0dbd1853a462eaf7948ccfc
ndroid/email/SecurityPolicy.java
7bf21c71653baa1a10d20d3acadd68240f1014d4 17-May-2011 Todd Kennedy <toddke@google.com> Merge "Fix bug where we fail to acknowledge an APPEND"
518fc490b29b58153dacfe89e481af20e6be8a06 17-May-2011 Todd Kennedy <toddke@google.com> Fix bug where we fail to acknowledge an APPEND

After appending a message to a mailbox (i.e. like appending to the 'sent'
mailbox after composing a new message), we would try to determine if the
append was successful by searching for the message. Most servers return an
APPENDUID response with the message's new UID. However, on those that don't
support APPENDUID, we need to perform a SEARCH for the message id. On one
set of these servers, the search would fail if the query string was
surrounded by parenthesis. However, another set of servers will fail if the
query string is not surroudned by parenthesis. So, we now try both ways.

Change-Id: I5a82ad241fb927e28aa5d05376568d5eac266a95
ndroid/email/mail/store/ImapFolder.java
b522a2c16684359b1cb4a685dd8ab7938a59624d 17-May-2011 Todd Kennedy <toddke@google.com> Merge "Fix Store re-using old data"
581e3c2333deec3d57d9a18a2ed6da26ae71c8a2 17-May-2011 Todd Kennedy <toddke@google.com> Fix Store re-using old data

The key for the Store cache was not adjusting properly for account
changes (such as port changes, etc...). As such, it was possible to
get an invalid store.

Now, there's problem with leaking Account objects if the store account
changes (see bug 4440839). This is "okay" for now since account changes
are fairly uncommon and Account objects are light. However, this should
be fixed at some point.

Change-Id: I4ddcbc3e2759b7b1374d0300706373678dedec94
ndroid/email/Controller.java
ndroid/email/mail/Store.java
54c91f00d7f967690a80b992062e75c40182d088 17-May-2011 Makoto Onuki <omakoto@google.com> Use IllegalArgumentException, not InvalidParameterException

Because IllegalArgumentException is the standard one.

Change-Id: Ib4d0bfa88a3d4218148a7cb248d9baa2124a72ba
ndroid/email/Controller.java
ndroid/email/RefreshManager.java
ndroid/email/Throttle.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/data/MailboxAccountLoader.java
7e1fa63d75993bdc96676954dddad075579e60a1 17-May-2011 Makoto Onuki <omakoto@google.com> Merge "Clean up fragments"
954f037d8f1e64ae88e02fe18ecf6b72b00f3daa 12-May-2011 Makoto Onuki <omakoto@google.com> Clean up fragments

Now that we don't reuse fragments and always use newInstance() to pass
arguments, there's a bunch of unnecessary things in them, such as
clearContent().

Also now MessageListFragment takes an account ID as an argument.

Bug 4346486

Change-Id: I7e05628c481ed56512c2281257239105d40ee1bc
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
171c3f2273223652b9999977d530a715420c0f64 16-May-2011 Todd Kennedy <toddke@google.com> Some more re-arrangement of code

No real code changes; just moving where code / constants live. Removed
one unused method of Store.

Change-Id: Ie7532381759a568cb23601e1071c8e199b6beb07
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ebece4dbdcdfee85a410a0d00c9b6739ee3e705e 16-May-2011 Todd Kennedy <toddke@google.com> Make ImapConnect a top-level class

Split out ImapConnection to its own class. This allows us to update ImapStore
without worrying about links between it and the connection.

Also, added a bit more safety to the classes in terms of correctly freeing
resources. Whenever the connection is closed, it now releases all resources.
Additionally, if the connection is ever put back in the pool, any response
data is released.

Change-Id: Ie3bda40d677707a0d6655f57175e58dece539e19
ndroid/email/mail/Transport.java
ndroid/email/mail/store/ImapConnection.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/transport/MailTransport.java
4c4e4c3515c3e3300e03f90e02a0c520dc2dff32 13-May-2011 Makoto Onuki <omakoto@google.com> Clean up the method to build message list selection.

- Moved the method to EmailCommon.
- Use *_SELECTION for magic mailboxes
(meaning we now use subqueries for magic mailbox selections, rather than
building the mailbox ID list by ourselves)

Change-Id: I3ebf6af62fd912fea6faea0f75e05fc61c87af3b
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/widget/WidgetView.java
53ea83ebf91f820692e8fa8e781f5cc982dd94db 14-May-2011 Ben Komalo <benkomalo@google.com> Move Mailbox to top level class.

No other changes made.

Change-Id: I3d8f3c521dc0d902be313b25252b4b6a4a96e7ee
ndroid/email/Controller.java
ndroid/email/FolderProperties.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/NotificationController.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/data/MailboxAccountLoader.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/email/widget/EmailWidget.java
373c3e1a5616932bf454e1670f37dfbac3ee3ba5 13-May-2011 Ben Komalo <benkomalo@google.com> Merge "Put account email as title on phone settings."
bfac9f2e8a13f6c719608a6948203bbef921c99f 13-May-2011 Makoto Onuki <omakoto@google.com> Move some of the log constants from Email to Logging

Change-Id: If9f4e4e3adcdef897a0d6a4e153bb446a8b24fdd
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/Preferences.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/EmailProvider.java
3955f6794f23c1380749d4470b5f2264d2109adc 13-May-2011 Ben Komalo <benkomalo@google.com> Put account email as title on phone settings.

This is kind of a convoluted issue; the framework automatically sets the
breadcrumbs on multi pane settings. However, on single pane, it doesn't
pass any of that breadcrumb info on, and just uses an Intent to start
another instance of the activity with a different Fragment.
Unfortunately, nothing in the default codepath sets the title to
correspond with the breadcrumbs (as it would have been in multipane)

Change-Id: I428642771538bdec3bdaba644f7816a1250ae929
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
8c9167027fe68e57c800c8265a78c3acb556c035 13-May-2011 Ben Komalo <benkomalo@google.com> Merge "Rename AccountSettingsXL -> AccountSettings"
f1554751c77c8f7aa99a8e2c5e91d8fa210e3d70 13-May-2011 Makoto Onuki <omakoto@google.com> Merge "Clean up fragment intallation."
1fba8254c54c7f27cf3d358453b889ad8825ac5d 13-May-2011 Makoto Onuki <omakoto@google.com> Clean up fragment intallation.

Change-Id: Ia9c9d713dc921783995a8a50cc8b256b8392c1a7
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
2866284a6d4ee4b368fcaf412c540b21d457e065 13-May-2011 Ben Komalo <benkomalo@google.com> Rename AccountSettingsXL -> AccountSettings

This activity already supports phone and tablet mode.
Only renames in this change - no other change.

Change-Id: Ieca17137af45e3860812091f69cd4d9b55ddf3ec
ndroid/email/NotificationController.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/service/EmailBroadcastProcessorService.java
577ddb7dd76f2f2e3d0493952d53f7ab966d10bc 13-May-2011 Todd Kennedy <toddke@google.com> Remove notifyNewMessages() service callback

Since the notification controller now operates exclusively using database
observers, there's no reason for the exchange service to call the
notifyNewMessages() service API.

Change-Id: Iaa7e2f5eae786162eab23b02b03ce6d1e8a738e9
ndroid/email/service/AccountService.java
ndroid/email/service/MailService.java
f4378923488abcb4422253cf2e7a9c9d244d1b96 13-May-2011 Todd Kennedy <toddke@google.com> Open message if only one message in notification

If there is only one unread&unseen message in the notification, clicking the
notification will automatically open the message view fragment. Otherwise,
the message list fragment will be opened.

Change-Id: I22778258836a36f289d71b99a6214ec82778f385
ndroid/email/NotificationController.java
76061eba142586ade8678036b179ffab2ee7a8c0 13-May-2011 Todd Kennedy <toddke@google.com> Remove SuppressWarning("unused") wherever possible

Change-Id: Ie799f02ab39a7d020af1fb98b6bac45fc0fd1298
ndroid/email/Email.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/ThreePaneLayout.java
a830547adf85ff5032ab0c0d68a96f65909b8012 13-May-2011 Marc Blank <mblank@google.com> Merge "Add messaging exception status for "attachment not found""
5701e0a555a5c263862156c1291aa13b06850425 12-May-2011 Todd Kennedy <toddke@google.com> Suspend notifications for currently shown account

We will suspend notifications whenever we display the message list for an
account (including "combined inbox"). As soon as the message list is paused,
notifications will be resumed.

Change-Id: I481a0f59ce68f89c32210d862d0267f3f334063b
ndroid/email/NotificationController.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/service/MailService.java
b221cbc785d7c868a69a144da31756c50c0e11b4 12-May-2011 Marc Blank <mblank@google.com> Add messaging exception status for "attachment not found"

* Adding this enables 4409976 to be fixed in a user-friendly manner

Bug: 4409976
Change-Id: I4f5ce890b6957c27a0f59656467dbe23b480a7e3
ndroid/email/Controller.java
ndroid/email/MessagingExceptionStrings.java
ffeb7de284b81a466a9f49ba380c045576cfc557 12-May-2011 Marc Blank <mblank@google.com> Merge "Fix a race condition in which an Attachment might be wrongly deleted"
2f6cbb021cd97e2450c29b72a27236ba4ef20823 12-May-2011 Marc Blank <mblank@google.com> Fix a race condition in which an Attachment might be wrongly deleted

* This is a serious bug dating back to the first Honeycomb release
* It was possible that a newly created Message could not yet be
committed to the database when the AttachmentDownloadService
tries to download one of that message's attachments.
* ADS, when it sees that the message (apparently) doesn't
exist, deletes the Attachment (it appears to be orphaned)
* The effect is that the user never sees one of the attachments
in a message.
* This bug has been reported externally
* The fix is simply to check for the message's existence before
deciding to delete it (this check will always work properly)

Bug: 4409692

Change-Id: I106ed2fe88d2435ad7a462fced5cb307c2559fd6
ndroid/email/service/AttachmentDownloadService.java
e7fb4ac9e3b098ece98d004403a89652f88bbe7a 12-May-2011 Todd Kennedy <toddke@google.com> Add account observer to NotificationController

The notification controller now observes changes to the account database and
adds or removes message observers as appropriate.

Change-Id: I1670fcfd6ce744030199b86708a6ada55b239a84
ndroid/email/NotificationController.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/provider/EmailProvider.java
94331c96d9397ec451ae3a0a9f825cc4aca2b9d1 11-May-2011 Makoto Onuki <omakoto@google.com> Remove phone activities and implement one-pane

The primary purpose of this CL is to remove phone activities, so the
one pane implementation is very much temporary and primitive, but it
should offer minimal operations.

Change-Id: If57f81db7c605c95664d49044a5cc082beda59c0
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/AccountFolderListItem.java
ndroid/email/activity/AccountsAdapter.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/Welcome.java
dfdc8b6da3cc074c97d53a597855aeaa3f039a68 11-May-2011 Todd Kennedy <toddke@google.com> Fix NPE in NotificationController

bug: 4409317
Change-Id: I7e515ba7c4fa7114e2bf9ecf6cb473cb3506ad1c
ndroid/email/NotificationController.java
bb7787bd3d3acbe560b1b8056443b47e18ff2dd3 11-May-2011 Todd Kennedy <toddke@google.com> Merge "Create a new notification service"
71bd208ddd6f8ba5a4ac928a4e121e7ad7c21495 11-May-2011 Todd Kennedy <toddke@google.com> Create a new notification service

We can remove the preferences stuff 'cuz the service "should be" longer
living. And, even if the service is terminated (either by the user or by
the system) we'll receive a new notification when the service comes back.
This is probably desired behaviour anyway.

Change-Id: I4850a9473401536e8fb20385b780d4736ce80a8e
ndroid/email/Email.java
ndroid/email/NotificationController.java
ndroid/email/Preferences.java
ndroid/email/service/MailService.java
ndroid/email/service/NotificationService.java
791665da6757768be8f9520c66e77c8cdff83664 11-May-2011 Marc Blank <mblank@google.com> Merge "Add plumbing for disallowing attachment download per policy"
9d9b481a85df540f8f338d28919802828a387efe 11-May-2011 Marc Blank <mblank@google.com> Add plumbing for disallowing attachment download per policy

Change-Id: I860dfb5c28933dcd4bf96c8e4bc890bff0f53c42
ndroid/email/AttachmentInfo.java
ndroid/email/activity/AttachmentInfoDialog.java
d31d64d330e1276ffdcd0fe9978b3303a38d4e95 11-May-2011 Todd Kennedy <toddke@google.com> Merge "Use observers to manage new message notifications"
5d08360a9bcb80ca8ce4b11b2664c8aba96f0c29 11-May-2011 Marc Blank <mblank@google.com> Merge "Complete rewrite of account backup/restore code"
83693a6acaffd219f65e04054bc04530e9cc132f 10-May-2011 Todd Kennedy <toddke@google.com> Use observers to manage new message notifications

We were sort of using observers to maintain the new message notifications.
However, other parts of the code would poke into the notification controller
to set things such as a list of newly added message IDs. Now, we rely
exclusively on db observers to manage notifications.

As a side effect of this, we now set the notification text correctly to be
the most recently _added_ message. This may be different than the most recently
sent message [since there may be a non-negligable delta between when the
message was sent and when it was received].

NOTE this still suffers from an outstanding bug where we continue to get
notifications when the Eamil UX is visible. That and monitoring changes to the
account table will be addressed in future CLs.

Change-Id: I4c68273716cc685574a1ca71e5d634f53fe0d882
ndroid/email/NotificationController.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/service/MailService.java
626ad1929d63b7dd0017373939a7cf6f91c98de9 10-May-2011 Ben Komalo <benkomalo@google.com> Support switching compose modes for the phone.

Not styled according to the UI quite yet, but functional

Bug: 3117253
Change-Id: I707e0254d142a54cd6e396fce63ebb00ba66048e
ndroid/email/activity/MessageCompose.java
a48abd7f95010e8374852c3df1ff86aabcdfba32 10-May-2011 Todd Kennedy <toddke@google.com> Merge "Add notification table shared preference"
2f371e85537a199cfa8a489007916dab56215a6d 10-May-2011 Todd Kennedy <toddke@google.com> Add notification table shared preference

The notifiaction table will be used by the updated notification controller.
The table stores the key and the associated last notified message key and
message count.

Change-Id: I037b5374ab51620f1cffc8b41391db858cfd3a2d
ndroid/email/Preferences.java
1d0bf81893ef1529944d0f73822b1de3a9c22fb7 10-May-2011 Makoto Onuki <omakoto@google.com> Merge "Add 1-pane UI controller"
f5492ea991d3b296b8158f6ea0e85cdbae5941ed 09-May-2011 Makoto Onuki <omakoto@google.com> Add 1-pane UI controller

Added the base class for the UI controllers and the 1-pane implementaion,
which is almost empty at this point.

The old phone activities still exist and will be used on the phone by default.
To use the new activity (1-pane EmailActivity) on the phone, use the following
comamnd.

adb shell am start -a android.intent.action.MAIN \
-d '"content://ui.email.android.com/view/mailbox"' \
-e DEBUG_PANE_MODE 1

Change-Id: Id1fe85d4517778afc967d7d5e17e1299dd1bfefd
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/UIControllerBase.java
ndroid/email/activity/UIControllerOnePane.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/Welcome.java
5b7e4349175918f3e407e50991de70bbbd5a618b 03-May-2011 Ben Komalo <benkomalo@google.com> Support switching between reply/replyall/forward

This introduces tab navigation on large screens with action bar (a
dropdown for the phone view is yet to be implemented, though the
internals are ready for it).

This requires the side effect that restoring a draft
reply/replyall/forward will attempt to also load the source message in
full for additional information. If that load fails for whatever reason,
the draft just remains a "compose" as it used to before.

Bug: 3117253
Change-Id: I9cff5ed4a5e9abd1338b6dbde28ceb3e4dc2b761
ndroid/email/activity/MessageCompose.java
0ea4f9295abee782733fa1b74176514d8a864b45 10-May-2011 Makoto Onuki <omakoto@google.com> Merge "Remove MailboxListFragment.DEFAULT_MAILBOX_ID"
8a894f1ca052b6ca6c5d8cac73fc0f3332f7ec48 10-May-2011 Makoto Onuki <omakoto@google.com> Remove MailboxListFragment.DEFAULT_MAILBOX_ID

Now that we supports nested folders on IMAP too, it's not needed.

Change-Id: I80a6d6b59444132762d56ae6e03a5de69863ab8d
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
c0491ed1952633103732ae90bb26cf533304bcc3 09-May-2011 Makoto Onuki <omakoto@google.com> Add UiUtilities.getViewOrNull()

They're variants of getView() that will *not* crash even if the view
doesn't exist.

I didn't add them before as they would be exactly same as findViewbyId(),
but now that we make use of generics they'll be handy.

Change-Id: Ib649e591a987183064c7e98afe0e2414d9e62280
ndroid/email/activity/UiUtilities.java
0993190cafebc107bd27a26996b5d63d4a4ede10 06-May-2011 Marc Blank <mblank@google.com> Complete rewrite of account backup/restore code

* Use EmailProvider to backup/restore into a backup database
* Remove all of the old AccountBackupRestore code
* Get rid of the legacy Account class and all of the Preferences
crap that referenced it
* Remove corresponding tests

Change-Id: I2de75aafdacc87246174303961e58547303f641e
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/Preferences.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/provider/AccountBackupRestore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/MailService.java
c0042a22789be42db3db2b741b61e616bcb3a45a 09-May-2011 Makoto Onuki <omakoto@google.com> Merge "Extract action bar related code"
ae993bda32746f9e9170d5d212a2a66b01d4ddf8 07-May-2011 Todd Kennedy <toddke@google.com> Merge "Add lastSeenMessageKey column to the mailbox table"
a9ac20b96f8d2e2e97fb2878afb9df4795024450 06-May-2011 Todd Kennedy <toddke@google.com> Add lastSeenMessageKey column to the mailbox table

The last seen message key is the id of the last message that we've "seen" for
that mailbox

Change-Id: I197f8a191654225ada1ce553cc959db775809c88
ndroid/email/activity/MailboxListFragment.java
ndroid/email/provider/EmailProvider.java
d594cc6120cc61d0315edb6c685629ea5b969b42 06-May-2011 Ben Komalo <benkomalo@google.com> Merge "Re-work the way MessageCompose handles attachments"
8d042850fb4257ca879f4d0c60e366b92a4c8422 06-May-2011 Ben Komalo <benkomalo@google.com> Re-work the way MessageCompose handles attachments

Now attachments are actually stored in an explicit list, instead of
being inferred from the state of the UI. This makes it possible to
switch states and restore attachments, and test.

Change-Id: I8c5f80f17f8c9e78d880ac4a1ac6ae22c2ec0579
ndroid/email/activity/MessageCompose.java
bf30f94c2e47a2f3340362060365809bf9258260 06-May-2011 Todd Kennedy <toddke@google.com> Add operation and id to notification URI

In order to provide a bit more granularity for content observers, we add the
operation (e.g. "insert", "remove" or "update") as well as the id of the row
that has changed (if it's known).

Change-Id: I214d3c030872f888cde1a2db9b6b46f1bb121b7a
ndroid/email/provider/EmailProvider.java
ad71b358c639b3dc24b5047338af6f6b6b211f65 05-May-2011 Makoto Onuki <omakoto@google.com> Extract action bar related code

...so that we can easily reuse it for the one pane UI controller.

The one pane controller should eventually have its own action bar
controller, but we can use it for the time beeing, until we get
more detailed UI spec.

Change-Id: I10c92963350dad9eb834fd7474c597aedad5eb80
ndroid/email/activity/ActionBarController.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerTwoPane.java
c60fc093b424e63f8cad0537523d0fce918664ab 06-May-2011 Todd Kennedy <toddke@google.com> Merge "Remove notification if messages seen off device"
c01b66dcf4af3527a8e3f5eb8e7af840ff9b4a5c 05-May-2011 Ben Komalo <benkomalo@google.com> Merge "Fix NPE on startup."
c4cdb11d24c19428dd39f986b00c1a29e75e1505 03-May-2011 Todd Kennedy <toddke@google.com> Remove notification if messages seen off device

If we receive new messages, we may display a notification to the user. If
those same messages are read elsewhere (i.e. via a web client), we will
remove the notification.

Change-Id: Iba09afe01942e0deaac8210fd6f9b315b1c8c93f
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/NotificationController.java
ndroid/email/RefreshManager.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxList.java
ndroid/email/mail/Store.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/MailService.java
c96cd4a8483798dc16010b0e7b9b3e95e3361615 05-May-2011 Marc Blank <mblank@google.com> Merge "Add new policies to Policy and associated data structures"
f91a03f5203bb64ae0726596d65ac90c35088666 05-May-2011 Marc Blank <mblank@google.com> Add new policies to Policy and associated data structures

* Update Policy unit test

Change-Id: I24a980537a73e40fca9fceb1b6ad6b2feaa9c342
ndroid/email/provider/EmailProvider.java
ea56ccf6ddbbcd6cbbc000822328f2fad1d3ff98 05-May-2011 Ben Komalo <benkomalo@google.com> Fix NPE on startup.

There is no invariant in the controller that the fragments it references
are non-null, so querying the fragment for state is not always valid.

Change-Id: I880053be4000260b03b54ed8741e646b01314e0d
ndroid/email/activity/UIControllerTwoPane.java
075feb45562429cb8c7e19b43dc91e9778afeb24 04-May-2011 Todd Kennedy <toddke@google.com> Implement new nested folder mocks

Change-Id: I7c0c1d41b7a40d83e1237ba31d5f7949945c7e1e
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/UIControllerTwoPane.java
f456fa88bc65457d1263554de3b567e89a326da5 05-May-2011 Makoto Onuki <omakoto@google.com> Merge "Remove clearContent and other stuff for reusing fragments"
38847b78fa67b041d3cc82791fcfbc1191b74b11 04-May-2011 Makoto Onuki <omakoto@google.com> Remove clearContent and other stuff for reusing fragments

from Mailbox/MessageListFragment.

This fixes some issues with screen rotation.

(We still reuse MessageViewFragement for the phone, but this should eventually
be cleaned up too.)

Also removed obsolete comments/TODOs.

Bug 4341517

Change-Id: Ib3e713ccab023151c1c47d7d7e4cd1c0de74039d
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
171e2eed21779332fa8d63085342c69c86321449 05-May-2011 Makoto Onuki <omakoto@google.com> Merge "Revive the list footer for the message list"
335a724ee68a0a36acec75299503b2eaf4ac97d5 04-May-2011 Marc Blank <mblank@google.com> Implement "automatic" sync lookback (Email side)

* Update sync window options to include "Automatic" and "All"
* Make the default (for new accounts) "Automatic"

Change-Id: Icbc696f55abcfad79e66079ebb414ca50778dcaa
ndroid/email/activity/setup/AccountSetupOptions.java
c6beaaea590564860b7a61c30c4091dbc66959d1 05-May-2011 Ben Komalo <benkomalo@google.com> Update MessageComposetests with latest refactors

Change-Id: I7ab1275f4f4a803588619952f55fd81520036526
ndroid/email/activity/MessageCompose.java
c7c0b6791ca84ca5008603b50a0cb44f9a59db2c 04-May-2011 Ben Komalo <benkomalo@google.com> Refactor MessageCompose.

This is a lot of code moves to make the asynchronous loading process
more explicit in nature:

- separate out code path for state restoration and intent resolving (no
need to over-write mAction now)
- separate out code path for draft loading and source message
loading
- fixes an issue where loading a message accidentally set the draft
message instead of the source message
- makes it possible to switch reply/replyall/forward since now
processing a source message doesn't do crazy things

Bug: 4375775
Change-Id: I5b3a7ac9ed031abe88f9358df9cd46408dd1e9f9
ndroid/email/activity/MessageCompose.java
4452b15e2e4e0b14b77558561cb3182c01e49b32 04-May-2011 Makoto Onuki <omakoto@google.com> Revive the list footer for the message list

It was accidentally removed in Ia67e7f3e.

Change-Id: I071ad25e699a96d09017609dc4463c24d0d4eab3
ndroid/email/activity/MessageListFragment.java
5a29aa63b2aaa5f5ddcfca40af3c6c0e036454c9 04-May-2011 Marc Blank <mblank@google.com> Merge "Remove scalpel left in patient"
647007c31b080d992ebdcb2409e3bc14b0c2646f 04-May-2011 Marc Blank <mblank@google.com> Remove scalpel left in patient

Change-Id: Iea55718a815cf3eafdd2b506637c96aeac8e7cb2
ndroid/email/provider/EmailProvider.java
bea743dc34ede0ed28683cf8e45b092d0eab0746 03-May-2011 Ben Komalo <benkomalo@google.com> Merge "Cleanups to how "save draft" state is handled."
2f9cbdb37dc1d755318dbd5c2089741f6df94114 03-May-2011 Ben Komalo <benkomalo@google.com> Cleanups to how "save draft" state is handled.

- the options menu was being needlessly invalidated way too often (on
every text change)

Change-Id: I36e6363fdecb7f587dc322a1413d074070ed8a36
ndroid/email/activity/MessageCompose.java
55db7c098f1e5c8fb21e849245a5c15a4c20a789 03-May-2011 Marc Blank <mblank@google.com> Merge "Rework of security policy storage"
aeee10e57ef4d931e7708fde218d590453a82aea 28-Apr-2011 Marc Blank <mblank@google.com> Rework of security policy storage

* Replace crazy (and soon to be "full") bit fields stored in an account's
securityFlags with a row in a newly created Policy table (thus, fully
expandable)
* Update code from database version 17 to 18; adds Policy table, a
policyKey row in Account, and a revised trigger that deletes Policy
information for deleted Accounts
* Update old PolicySet unit tests to work against the new Policy class
* Add test for the conversion of securityFlags to Policy
* Tested in a variety of scenarios; appears to be functionally equivalent

Change-Id: I1505ee75230d6a0d3c2b62a46326f39c2c7f9eb5
ndroid/email/AccountBackupRestore.java
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/PolicyService.java
0bb7f1c37c99beb2a91bd98e64fcc9656877e034 02-May-2011 Ben Komalo <benkomalo@google.com> Fixes to MessageCompose saving.

- "save draft" no longer closes the message
- ensure consistent state if there are successive saves
- misc changes to the way a message is loaded if there is a pending save

Bug: 3072398
Change-Id: I9cd01319772293e4d410020ab27603821a95ec9f
ndroid/email/activity/MessageCompose.java
6cd012b92d5af3eed2e3c5347ab8f672294d99d2 29-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Remove dead code"
bd2ab000b5c9714413b916531a1ed1fd8a10f31d 29-Apr-2011 Todd Kennedy <toddke@google.com> Remove dead code

Want to get this in before I start making other changes for notifications

Change-Id: I6da6ad798d125938eac1247d16a036f05c698e43
ndroid/email/MessagingController.java
ec84dad879ca647a55c489d166f28f1bc2d87c67 29-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Genericize UiUtilities.getView"
256652050c8c047d1879621805f028454e83b677 29-Apr-2011 Ben Komalo <benkomalo@google.com> Genericize UiUtilities.getView

Change-Id: I7142d4a57170e3074dc896149bf95ed6d2677bdd
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/UiUtilities.java
688f5355e37f0d7a694695ef88acc509ed74277f 29-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Expose cc/attachment actions on UI directly"
6d75ae39f0274651249150588789dfaa60a7077c 29-Apr-2011 Ben Komalo <benkomalo@google.com> Expose cc/attachment actions on UI directly

This is a simple change to move +cc/bcc and +attachment action buttons
from the options menu to the visible UI (like honeycomb).

No attempt was made at styling the actual fields yet.

Change-Id: Ia1de8dbcf5e9ec9f7d3be3787cab657a2df72d70
ndroid/email/activity/MessageCompose.java
fe15959c20a1901e957331d85a849897df8ee4bb 28-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Fix refresh animation"
166b90a2f2d958d60891edc09e1984b43d167deb 28-Apr-2011 Makoto Onuki <omakoto@google.com> Fix refresh animation

Bug 4355229

Change-Id: Idfbc46f03f9cd753811179df760633db52c6f09c
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/UIControllerTwoPane.java
958b15e8f30fd4e9eae1b05d48cb9a817326be6d 28-Apr-2011 Todd Kennedy <toddke@google.com> basic code cleanup of the notification controller

* javadoc methods
* rename some methods
* remove duplicate code; now new message and other account notifications
are created with the same code

Change-Id: Iecf70494b6407a9a73380de103390a59d006191b
ndroid/email/NotificationController.java
ndroid/email/activity/ContactStatusLoader.java
8112732376d4cc033ee515a6531852ef42266929 28-Apr-2011 Makoto Onuki <omakoto@google.com> Move more UI stuff from activity to the UI controller

- Now all the UI stuff is owned by the UI controller
- Except temporary UI (exchange search and per-mailbox-settings)
- Except error banner
This should be moved too eventually, but I consider it as a low-priority.
I'll leave it as-is for the time being.
- Moved RefreshTask too. The spec for refresh has dependency to the UI.
(i.e. implicit refresh of the mailbox list may not be necessary for
the phone.)

Also renamed the main activity to EmailActivity.

Change-Id: I00585856bdacf69aa4e104178a5cf7352ff6d592
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/EmailActivity.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/UIControllerTwoPane.java
ndroid/email/activity/Welcome.java
13c7595bb985c32aa4335b091f7b1b1931fd1871 28-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Removed "global loader ids""
0f7f2be0b1efec7b87f6b8c1a9c65665e631d464 28-Apr-2011 Makoto Onuki <omakoto@google.com> Remove unused class ProgressListener

Looks like it's very old code (no history in git) and not used anywhere.

Change-Id: I39d450d8d1fe56ad6722668c8841edaa074c9b4d
ndroid/email/activity/ProgressListener.java
fdca4a6a5788999c45f0edf1d51e651636c2176f 28-Apr-2011 Makoto Onuki <omakoto@google.com> Removed "global loader ids"

I don't know what I was thinking when I added them to ActivityHelper,
but DialogFragments have their own loader managers (because they're
really fragments), so loader IDs in it won't conflict with anything.

This class used to use (mistakenly) host activity's laoder manager,
which was probably the reason for my confusion.

Change-Id: I7cd4d08b77ce8ea74fbf13b3273692da791ed23e
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MoveMessageToDialog.java
e5b7f27fdd264b1c3bd68f42180ca867095b2ca7 28-Apr-2011 Makoto Onuki <omakoto@google.com> Fix combined view crash

Bug 4351392

Change-Id: I839d66a13df949f469afa7f10138026f6b463ad6
ndroid/email/activity/MessagesAdapter.java
6ea2c7c4a7a3af95ed4cd9d907459e621e63efcd 27-Apr-2011 Makoto Onuki <omakoto@google.com> fix the build

It's a redo of changes made to MessageListXLFragmentManager on If4048d45.

It's a gerrit bug -- if you rename a file which has been changed in another CL,
gerrit allows you to submit it without rebasing it.

Change-Id: I1a9741befd1a4c2e74ce7afffca976b98e82a357
ndroid/email/activity/UIControllerTwoPane.java
8b6e443cdd231a615e01931970e25bd5ecb79493 27-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Merged activity: move UI from activity to UIController"
aee368d205679a9b29f9955a48a8f413e42833fc 26-Apr-2011 Makoto Onuki <omakoto@google.com> Merged activity: move UI from activity to UIController

- Renamed XLFragmentManager to UIControllerTwoPane
- Moved UI code from the activity to UIControllerTwoPane
- Bunch of clean-ups (Mostly renames to make things self-descriptive)
- Removed unused class MessageListFragment.State
- Fix bug 4341563

Change-Id: Ia2230bd5ec501fbc5c92b07b2ba874153b577a39
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/UIControllerTwoPane.java
567442bcf810ece69410a8945b224215c317cb17 27-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Fix "move to" dialog."
4e033e0ac79d85bc8df8e52bdfc8b1fc9ad29f3e 26-Apr-2011 Makoto Onuki <omakoto@google.com> Fix "move to" dialog.

- Now we always use a fragment as a callback, rather than assuming the parent
activity implements it.
- Use a generics trick to make sure the callback fragments really implements
Callback.
(Might be abuse of a language feature, but it's at least safer than runtime
check...)

Bug 4314669
Bug 4345496

Change-Id: If4048d456b298784097e202cffab170177ac7b2d
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MoveMessageToDialog.java
e87ff6c3cbbfc5e3636f9827b58820652e3ea1c5 27-Apr-2011 Todd Kennedy <toddke@google.com> Opportunistic cleanup

not making any real code changes:
* removed deprecated, unused methods
* remove 'throws' clauses when that exception is never thrown
* renamed method Controller#moveMessage()-->moveMessages()

Change-Id: Ifd006f760f0c19283e94a11a45c71295c8da35f7
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/MailTransport.java
f66058581ca637a474e4a5d08cb45d583a4ccd9d 27-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Vary move-to dialog contents by account type"
98c0f45e602f23c51398723ce3fd424d0012eee6 27-Apr-2011 Todd Kennedy <toddke@google.com> Vary move-to dialog contents by account type

For EAS accounts, we use the displayName column to populate the dialog. For all
other accounts, we use the serverId column. This means we will continue to not
have a fully-qualified pathname in the move-to dialog for EAS accounts.

Change-Id: I6dda89e037b0910180bee93a5bc091d65d2614b0
ndroid/email/activity/MailboxMoveToAdapter.java
4bca41784667865ef96a86f19154a704a2ce4155 27-Apr-2011 Marc Blank <mblank@google.com> Merge "Expose unsupported policies in the UI (account setup)"
019341af98ffe2dcd484bd0468c9858d9e7cd7a3 26-Apr-2011 Todd Kennedy <toddke@google.com> Set mailbox flags for message contents

For IMAP, it's possible for a mailbox to exist on the server, but, to be
unselectable. Previously, these folders were never added to the folder list.
However, with nested folder support, we need to have these folders in the
UX so the user can get to its sub-folders (which may be selectable).

Change-Id: I11135fafbb14b40660983804fb86bd223e180d5e
ndroid/email/MessagingController.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
265530723b8c008f6bc23b1723f4de706a3e9556 26-Apr-2011 Marc Blank <mblank@google.com> Expose unsupported policies in the UI (account setup)

Change-Id: I75b650af92c87bd990009e54072ac4b58ed0895b
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
79b97da58cc4aa047fb14ab9a601f2034e9229ba 26-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Fix phone UI."
3de5fd026dc702d2cafc55b0a61039d4f582d932 26-Apr-2011 Makoto Onuki <omakoto@google.com> Fix phone UI.

Bug 4339904

Change-Id: I343e4a9a77ee7baeff7c9dc1222dad2701efb0df
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
27cf8b5ffe589eff05e1baf5c703a93f48787d48 26-Apr-2011 Todd Kennedy <toddke@google.com> Display full pathname in move-to dialog

With the recent changes to hierarchical folders, the move-to dialog is
quite unusable if you have multiple child folders with the same name.
While waiting for UX to decide on the exact display, make a few quick
changes to display the fully-qualified pathname instead of just the
child folder name.

Change-Id: Id5c1cc98364fbf7a82a05ac30e944507c7d16320
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
1f1a056c6d4fa3d602784ca7adc96005e34c752f 26-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Add hierarchical folders to IMAP"
0bea177b95447caea1fde1f7551a7995cd4be04d 26-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Create new mailbox fragment for nested folder navigation"
e62770d979d6fcd553e8447d45ec2024cdcdcde9 21-Apr-2011 Makoto Onuki <omakoto@google.com> Create new mailbox fragment for nested folder navigation

Create a new instance of the mailbox list fragment when navigating through
nested folders. (drill-in / going back to the root mailboxes.)

Also the fragment manager now has two public methdos for navigation that
are called by the activity. They will be the common interface for
the tablet UI manager (i.e. MessageListXLFragmentManager) and the
phone UI manager.
- openAccount(accountId)
Open the default view for the account. Used when switching accounts.
- open(long accountId, long mailboxId, long messageId)
Opne a particular view. Used when, for example, opening a message from the
widget.

Known issue:
- This breaks drag&drop through nested folder navigation.
This is because a new mailbox list fragment created during D&D doesn't
get the "drag started" event.

Change-Id: I69c14b71b4f681f8ab57f3ddd2cff9744a832076
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
22208771b7b39c5d131372ba6bc45ab23cc22232 23-Apr-2011 Todd Kennedy <toddke@google.com> Add hierarchical folders to IMAP

We now create folder hierarcies for IMAP. This also includes a nifty SQL
statement that will get your existing database into shape.

Change-Id: If07a0632e9b250cf0c33c3e16bfba5816beab94c
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailProvider.java
1611d0baed730df920b0685d3031a4bc98c6f225 25-Apr-2011 Ben Komalo <benkomalo@google.com> Make ImapStore tests use mocks where possible

Change-Id: I2a1d5e7d3cc3b105a24a5fc29772bcd4a0308ad3
ndroid/email/VendorPolicyLoader.java
ndroid/email/mail/store/ImapStore.java
8dc402b28a5d97a6fd3ad81fcc98b4150e51f643 25-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Fix some unit tests"
d9cf94632f53bbde14596ac48f0fb8818808a0b4 23-Apr-2011 Ben Komalo <benkomalo@google.com> Fix some unit tests

- some proguard flags were stale
- some deprecated methods were legitimately stripped - kill the tests
for them

Bug: 4330508
Change-Id: I6d5c46c99d002895377f32b203844e9a6dcf0074
ndroid/email/mail/Transport.java
ndroid/email/mail/transport/MailTransport.java
cbb2abc80ed6584d587baba51b2ecdb11861e714 23-Apr-2011 Marc Blank <mblank@google.com> Fix problem w/ ExchangeSender instantiation

Bug: 4334119
Change-Id: Ic900d08a3826754d2807ca84cbb9b8f2f4e28fc3
ndroid/email/mail/transport/ExchangeSender.java
a6e6b9969ac247908f4f87be464452fe2aed790b 22-Apr-2011 Ben Komalo <benkomalo@google.com> Don't rely on Activity to set the context for ops

The Fragment can get detached from the activity prior to performing an
operation, so for now, use the context reference that the fragment has
instead.

In the long run, we should avoid referencing the application context,
but a restructuring of ActivityHelper may help instead.

Bug: 4332451
Change-Id: Ieabff8ec0cc363f7d2eebd3ed47c230df9959886
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
23b441a5c8ea58ce34e2abd8fa29e07df9b5bc0e 22-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Loosen up type requirements for contexts"
7735d548e89e1383ed40782b55db7f68d00831e4 22-Apr-2011 Ben Komalo <benkomalo@google.com> Loosen up type requirements for contexts

A context is sufficient for most operations ActivityHelper does

Change-Id: I2706b2b579210257d0ee6ace6277aa53e84dc52e
ndroid/email/activity/ActivityHelper.java
d2fd1252d504fa61db9eb8362442cf20f1198e0f 22-Apr-2011 Marc Blank <mblank@google.com> Add status code(s) for disabled sync (needed for EAS 14.0)

Change-Id: Ie65141c4d83412274dbbc39dffed7c3be394bb84
ndroid/email/Controller.java
ndroid/email/MessagingExceptionStrings.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
51ea22b0d3de0f5a46370e2a423b0fd03bad96f7 21-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Fix apk attachments so they can be installed"
9fec3d778f81a1984b3ac106dc3dd218f40e2e1c 21-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Make sure to exit CAB when MessageListView ."
7155c49f357144885ef062549f2a370e75657123 21-Apr-2011 Todd Kennedy <toddke@google.com> Use Account objects instead of URI for exchange

No need to use URIs when we have the Account object.

bug: 4322402
Change-Id: I06e8a5b43063446fa41f7e81eb3638b2570abe5c
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
fe001abe795390fa78820fac6f84b2be5ed31a70 21-Apr-2011 Makoto Onuki <omakoto@google.com> Make sure to exit CAB when MessageListView .

Change-Id: Ie6c5ec26ceff700ee00c6fbb3af4cbe23c498db4
ndroid/email/activity/MessageListFragment.java
e36648697f242991a8df0fdc6b23330f7be5e331 20-Apr-2011 Ben Komalo <benkomalo@google.com> Fix apk attachments so they can be installed

This introduces an in-memory cache of file paths for an attachment so
that we can install from a filepath instead of a content URI.
The cache also allows us to prevent duplicated files made if the user
hits save multiple times (the save button is disabled).

Bug: 3338997
Change-Id: I56651a55eef2f1a3f24b6d936c37736c4fc3d295
ndroid/email/AttachmentInfo.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/provider/AttachmentProvider.java
200c6bd9fa19b78acc2c1664f858521aa9885353 21-Apr-2011 Todd Kennedy <toddke@google.com> Simplify mailbox synchronization logic

The logic is simplified by creating database rows for new mailboxes down
in Imapstore. This means that the difference between local and remote folder
lists are mailboxes that need to be deleted.

Note -- this is still not the final CL. We probably update the database too
frequently and the column values aren't updated to support nested folders.

Change-Id: Ifbe4e0cf74ba81e5b6156b452ab72c56c35235ab
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
33cfddf1fabf5976fc247edad1e1271d9687c430 21-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Merged activity step1: Use FragmentTransaction (tablet)"
38a33bd28fae9eb3226c90d3225b812ca23856f0 19-Apr-2011 Makoto Onuki <omakoto@google.com> Merged activity step1: Use FragmentTransaction (tablet)

Change-Id: Ia67e7f3e0658cb962d328c10affe11ccb5a165ea
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/ThreePaneLayout.java
daf869cf60de75bc91ed3aef6ac0bff1fe371733 20-Apr-2011 Todd Kennedy <toddke@google.com> Use an Account object to create a mail sender

Instead of boiling the account down to an unusable URI, just pass along
the Account object.

Change-Id: Ida408912de29734c8f4ed9cdf09a4d633dd03002
ndroid/email/MessagingController.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/mail/Sender.java
ndroid/email/mail/transport/SmtpSender.java
031527a03ef16ed914c8a0ad9ec498c513397237 20-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Use Account instead of URI to create transports"
a50fc99b0c433f0cde31ba1c7ab87fb9ea86345d 19-Apr-2011 Todd Kennedy <toddke@google.com> Use Account instead of URI to create transports

There's no need to create a URI just to rip in appart again. Additionally, to
support additional changes (i.e. to use Mailbox instead of Folder in the
MessageController), we need to store the actual Account.

NOTE -- This change only affects IMAP and POP3. SMTP will come in a follow-on CL

Change-Id: I400036a17271c99272fd9c603547dcd713b50b9d
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
8f84cae3c3a44f5268f05673876f7954c257d854 19-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Re-work the layout computation for MessageListItem"
8b2109f047d8b50edbb677a822f6ee34df8d17b8 15-Apr-2011 Ben Komalo <benkomalo@google.com> Re-work the layout computation for MessageListItem

This now uses an XML layout that gets inflated and computed after a
layout pass. The drawing simply uses the coordinates stored after the
layout.

This makes it a lot easier to maintain the different views and allows us
to simply provide different XML files for different modes/views, isntead
of trying to hand tweak Java layout code.

Some TODOs - clean up the "paints" and optimize the layout/drawing
computation

Change-Id: I784919f726bd4d80aba8744a8f047fcfe79ad93a
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListItemCoordinates.java
ba7652cda04d428ae7959f8bf6cbc6efe028bfce 19-Apr-2011 Todd Kennedy <toddke@google.com> Make ImapFolder a top-level class

No code changes; just moving the class

Change-Id: I4e4544d99d52dde85b96c99ef45da3a96e7d3d48
ndroid/email/mail/store/ImapFolder.java
ndroid/email/mail/store/ImapStore.java
36990d46cf231dae0c194523f2c21eb04abce343 18-Apr-2011 Ben Komalo <benkomalo@google.com> Fixup auto advance policy handling.

The phone code has gone stale and ignored auto advance policies - this
fixes it, though that code is likely to get merged anyways.

Makes it so that auto-advancing to the end of the list pops back out to
the message list

Bug: 4302999
Change-Id: I609747c0a19672b8aa56d2c0ab57533823899e47
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
cfbf1eb66d39e5560e42b36537e1970abc16296d 15-Apr-2011 Todd Kennedy <toddke@google.com> Clean up drag-and-drop

Basic refactoring of the drag-and-drop logic to make it a bit cleaner

Change-Id: I0e59074710be00bd285f637e92f554c8ee47fabf
ndroid/email/activity/MailboxListFragment.java
d1b1404d765fa36b281de3a2df1589bf11c28c04 15-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Implement drag-n-drop with nested folders"
6c3cd4e2477eb1c7d1e107b3ea352639f1102933 15-Apr-2011 Todd Kennedy <toddke@google.com> Implement drag-n-drop with nested folders

We can now drill down into nested folders during drag-n-drop. Simply hover over
a collapsed folder for 750ms and it will auto-expand.

Change-Id: Ia9b42dd87e19c2ebdf8675c761cb1453bb26d158
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxesAdapter.java
8a05da7c8c5d5c499c1307cdfe8dee821960ef81 15-Apr-2011 Ben Komalo <benkomalo@google.com> Remove uneeded layer of parcelling.

ListStateSaver did nothing more than hold a Parcelable, and was a
Parcelable itself. The abstraction may have been useful at some point,
but that time seems to have passed.

Change-Id: I2f1f45828782ab44aa8935aa50b825e07845a2a5
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
28b3fec5c19129c2f3e2e8f047fc9fc17bcaa9db 14-Apr-2011 Ben Komalo <benkomalo@google.com> Include guava in Email.

- adds a compile time dependency to the guava library
- changes to use @VisibleForTesting in places to ensure it works

Change-Id: I2c5c4f9861234fec3613da011185e5c11f228466
ndroid/email/activity/MessageCompose.java
7219fccc42e6bfe8fe7978953b626f842174e628 14-Apr-2011 Todd Kennedy <toddke@google.com> Always display subfolder icon in the same view

We were handling the subfolder icon strangely. Sometimes it was shown in the
folder_icon view and sometimes in the folder_expanded_icon view. Now the
folder_icon view is used exclusively for system folders (such as inbox, etc...)
and folder_expanded_icon is always used for the expanded/collapsed icon.

Change-Id: Ifff9a44cc792497a469c2408337dafd431f6dfc3
ndroid/email/FolderProperties.java
ndroid/email/activity/MailboxFragmentAdapter.java
5b84c8d9d0bab50b349753511f5b2120c30e50b0 14-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Apply auto-advance policy when doing a batch op."
52618afa81eb47b9efd4b199b4ae2abbbab3402b 13-Apr-2011 Ben Komalo <benkomalo@google.com> Apply auto-advance policy when doing a batch op.

Batch operations that occur when the current message selection is
contained within the affected messages will now force the selection to
advance according to the auto advance policy to the next unselected
conversation.

Bug: 3409809
Bug: 3405864
Change-Id: Ibe75f32b9263ef6f3fb2314a07e63980f437f988
ndroid/email/Preferences.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXLFragmentManager.java
2071bde957a2ec0d976f075997300ffbfdc70f59 14-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Minor fix to error dialog formatting."
5a2d7da136f2f0519dabacfe9b5a5e224f8be5e8 14-Apr-2011 Ben Komalo <benkomalo@google.com> Minor fix to error dialog formatting.

Bug: 3515558
Change-Id: Id4d88379dc68c114338fdd2d4d437a2defb94ba4
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
a8ba5e76dcc1596a356c08d0757814f4700e3cf5 13-Apr-2011 Todd Kennedy <toddke@google.com> Merge "only allow navigating to mailboxes w/ children"
f7036b737907f06df1a06507754b28596cf8225e 12-Apr-2011 Todd Kennedy <toddke@google.com> only allow navigating to mailboxes w/ children

If a mailbox doesn't have any sub-mailboxes, only allow selecting them to view
any contained messages. Do not update the mailbox list.

Change-Id: I6f469bf20a57dc440885402084c21ff184f13dff
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxesAdapter.java
6336a5231e684cb4f0e5ecf42221cba4a36d465b 13-Apr-2011 Ben Komalo <benkomalo@google.com> Remove a layer of public methods that weren't used

Change-Id: Iba88634db2a687ce72f6875e0b499f79c219ca8f
ndroid/email/activity/MessageListFragment.java
1d1b7a070aeff88883d6db5b91e3ed1a68a17209 13-Apr-2011 Ben Komalo <benkomalo@google.com> Merge "Add signature when starting from external intents."
ce99dd8cd167b0d96a0d651b8573eedaa06d9f00 13-Apr-2011 Todd Kennedy <toddke@google.com> Add comment to package-private members & methods

Change-Id: I9bb641d44253635f8dacc5dfecde55eac8d72c59
ndroid/email/activity/MailboxesAdapter.java
0fb68c8f0c7fdfd2571291c7b1d3fefab23fa73e 12-Apr-2011 Ben Komalo <benkomalo@google.com> Add signature when starting from external intents.

Also update some of the tests.

Bug: 3122070
Change-Id: Ia0e4620f54279dc53ca1c4484fec6508c411b418
ndroid/email/activity/MessageCompose.java
2b82c3f0a37ff1e09a21481fabfe4960006b8d83 12-Apr-2011 Todd Kennedy <toddke@google.com> Add columns to cursor to allow for proper layout

The layout requires different indentation. Although the exact layout may
change, we will likely always need to differentiate between the different
mailbox types.

Change-Id: Ia2ff84b552873f92fa45563b2dc0868c29bec3e3
ndroid/email/FolderProperties.java
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxesAdapter.java
57dc03aceccd0b72242aebc1f6c6d03ce880810a 13-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Add current nested folder to list"
0efbee2bd0b28b8695bf53bdd3ba2f0986b729c9 12-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Fix bug that prevents from accepting 2 invites in a row."
5dceaa5b5ec6006aced6dfe37a718ea376decf53 12-Apr-2011 Makoto Onuki <omakoto@google.com> Fix bug that prevents from accepting 2 invites in a row.

mPreviousMeetingResponse is tied to the current response state, so it
should be reset too when we clear the response checkboxes.

Bug 4132763

Change-Id: If816706f47f8500441330882fb4f372b31465ff5
ndroid/email/activity/MessageViewFragment.java
7f139f14b97898e897d8326e14909b4c05e4d0cd 12-Apr-2011 Todd Kennedy <toddke@google.com> Add current nested folder to list

When selecting a nested folder, the currently selected folder should be listed
along with "All Folders" and sub-folders

Change-Id: I7c6f726a0355a13d3e7b59aa4707bd92473283b4
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MailboxesAdapter.java
7dc1e86d91148fb79c380eacf734813ee8828299 12-Apr-2011 Ben Komalo <benkomalo@google.com> Less aggressive selection change in msg content.

All focus changes to the message body content was pushing the selection
to the end, which is wrong if state restoration happens, and is just
non-standard behavior if the user explicitly taps on a particular spot
on the text view. Make this slightly less aggressive.

Misc other changes in compose view.

Bug: 3076256
Change-Id: I9edb9c3c4edb5ddec12207f4136f3ca73cabf89d
ndroid/email/Controller.java
ndroid/email/activity/MessageCompose.java
2577842269f035856b877eb990567c7a32e81252 08-Apr-2011 Ben Komalo <benkomalo@google.com> Misc fixes and dead code removal.

Change-Id: I48b2fa5f7bf619197d882c71e8b174d31d130e26
ndroid/email/AttachmentInfo.java
ndroid/email/MessagingController.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessagesAdapter.java
cd5da3c44533b2f860e4acfe70fe4e2f37f0e6dc 08-Apr-2011 Marc Blank <mblank@google.com> Remember to clear query in MessagesAdapter if we're not searching

Change-Id: I3b16f080c66f6ce025e41a7c459aa3cb94dbecd0
ndroid/email/activity/MessageListFragment.java
18d3b3de1eb0b9bf31d63e36225dbdda544ec9f3 08-Apr-2011 Marc Blank <mblank@google.com> Merge "Improve temporary mailbox settings UI"
f047c7cfd175ea4bf11f5c612791425885ca9904 08-Apr-2011 Marc Blank <mblank@google.com> Improve temporary mailbox settings UI

* Start dialogs with current setting selected
* Add Cancel/OK buttons

Change-Id: Ia3d28eec558a8af8d3826b70cb313b68a5efc533
ndroid/email/activity/MessageListXL.java
7af1ad3b583b6dea84889aa74ad7c327e7ca9b36 08-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These havent been working since before 1.0.

Change-Id: Iea671dc01ff45f1009f6fbb22cf7259e0fc1d4f1
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
df3133bf3d632e919fb20659a255bebe07c3b558 08-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Always use the same loader id"
983a624549d22c7fd694f7b66f4f3ccae587de8b 07-Apr-2011 Marc Blank <mblank@google.com> Merge "Temporary UI for setting mailbox sync frequency/lookback"
d4a1500ae9cc5f9920805a8269c539d8dca1053a 07-Apr-2011 Marc Blank <mblank@google.com> Temporary UI for setting mailbox sync frequency/lookback

* Just in MessageListXL for now, as with search
* This allows us to test functionality within EAS, and confirm that
it's all working w/ unbundled Exchange (API 1)

Change-Id: I4f062ae871a28d2b57a23a269d6ec65903181d26
ndroid/email/activity/MessageListXL.java
5965b23909d498920c9830c3eb8341d0e0e5edce 07-Apr-2011 Todd Kennedy <toddke@google.com> Always use the same loader id

There's no need to use a different loader ID for each mailbox. Just use
one loader ID to keep things simple.

Change-Id: I46cf0a9ad48c8e0badf72ee73e2d5edadda66912
ndroid/email/activity/MailboxListFragment.java
c5ea3f522ac835907ec48e117e7918802950d595 07-Apr-2011 Todd Kennedy <toddke@google.com> Using the wrong selection for Exchange accounts

Exchange accounts support nested folders, so, we need to use the selection
that excludes any mailboxes with IDs greater than 0. Otherwise, we see all
mailboxes on the account.

Change-Id: If8c2085458176e8bd87013e3b598bd7740c652b2
ndroid/email/activity/MailboxFragmentAdapter.java
007d0be4eddad21776ba45db5186bb8a9157504c 07-Apr-2011 Todd Kennedy <toddke@google.com> First pass at nested folder support

currently only really works for exchange accounts. legacy accounts (imap
or pop) do not build a folder heirarchy.

Change-Id: Idb7c622b64a599a0776233a076359869f4ab4a4f
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListXLFragmentManager.java
fc0f42d6dc22f848d2bade9125f2036127b4eada 07-Apr-2011 Marc Blank <mblank@google.com> Merge "Temporary search UI"
78684ccc795c0d5211dfc04a834cb452dccb1058 31-Mar-2011 Marc Blank <mblank@google.com> Temporary search UI

Change-Id: Ia138ca93f0b28fd0915aa79c965f752f7c08ee90
ndroid/email/Controller.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessagesAdapter.java
96332096cae2b35a299c2466ddff75465a42b3d8 06-Apr-2011 Makoto Onuki <omakoto@google.com> Fix message view for phone

- All layouts are still temporary, but at least they're usable now.
- Removed reply/forward button from the bottom panel.
There're buttons in the layout.
- Switched to getView().
- removed the unnecessary LinearLayout from the xlarge layout.
- removed some backgrounds that'll probably not be used.

Change-Id: I3aa27c63ab139ae30e5714ac3d9a1eadce74b0e8
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
e553c6ec0beafbb85f471e2880f6d4447cd7c413 05-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Store UUIDs in account shortcuts, rather than IDs."
0b6cb1c3307b10929fca7dc09125a128fc330a19 04-Apr-2011 Makoto Onuki <omakoto@google.com> Store UUIDs in account shortcuts, rather than IDs.

Bug 4192836

Change-Id: I1d6349ed3ad70867f113b9a9f7eb8717b88b24c1
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/IntentUtilities.java
ndroid/email/activity/Welcome.java
3d1bb65eecc507466203a881397dc9c25334509b 04-Apr-2011 Marc Blank <mblank@google.com> Merge "Add searchMessages command to EmailService"
c60b8d0529168edecf2376a6f421a0ae1e10fe29 31-Mar-2011 Marc Blank <mblank@google.com> Add searchMessages command to EmailService

* Also, document service methods in EmailServiceProxy

Change-Id: I46cc68c8c2aa870ea82474c70d944640bb66b0ef
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
22f06c371b32d0e570d9df999391cab9783474ec 04-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Define roles for fragment manager and activity"
bd5933d4a1bfe8ee98c226840d72a1f945553fbf 04-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Clean up MessageCompose for phone"
449b4d106fcd02eda1b746838d19ed23d7fbaeb8 04-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "Changed text color for phone"
2d76cca19a2fe698cc826bd6050fb27bfe5be717 01-Apr-2011 Todd Kennedy <toddke@google.com> Define roles for fragment manager and activity

The roles between MessageListXLFragmentManager and MessageListXL was confusing
and not well defined. Now, the activity (MessageListXL) is responsible for
managing the application "chrome" (such as the action bar) and
MessageListXLFragmentManager is responsible for managing the content area.

Change-Id: I9a36d962bae5263f17fc7dccf133a6711229821c
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ae5806ab3a2e5ac426a2e22af8b6eecb447c706d 04-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Update method parameters"
2d380e45047e1e3928acbdc6e848842d94e36ccb 02-Apr-2011 Makoto Onuki <omakoto@google.com> Clean up MessageCompose for phone

- +cc/bcc and "add attachment" are now menu options.
- layout clean up
- switch to getView()

Change-Id: I5efb6d0fd7b6d1265fed0173463adce2c6d652ba
ndroid/email/activity/MessageCompose.java
c33054f9e4cf2a864f44001ab885d8f7d52c43b1 01-Apr-2011 Todd Kennedy <toddke@google.com> Merge "use non-deprecated async task method"
ef844d86f1e51d2b5b0ffcc59dcd605d6acc6ef5 01-Apr-2011 Todd Kennedy <toddke@google.com> Update method parameters

Only pass along the things we need. For the message dialog, we were passing
in an Activity that was not needed. In the ActivityHelper, we were passing
in an Activity when all we needed was a Context.

Change-Id: I9a93ae07ff2bbdce9466c7e991410c87fb610673
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MoveMessageToDialog.java
ad7dc464db6421d3cda62204124dedaefb0f035d 01-Apr-2011 Todd Kennedy <toddke@google.com> update mailbox adapter callback

the callback method name was not appropriate in all situations. This has been
renamed to just "onBind()" and will still be invoked whenever data is bound to
the adapter. also, create an empty callback that can be used if the adapter
doesn't need to be informed when a bind occurs.

Change-Id: Ifaa4aea3a59734557651270330ca9439e3ea4ab4
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
629b93d67d85fa52cc144b463087bfb7aa58371b 01-Apr-2011 Todd Kennedy <toddke@google.com> use non-deprecated async task method

Change-Id: I7c798542b478c0d3817bb3dde243da402d4236c4
ndroid/email/activity/ActivityHelper.java
b9ca15982b7120d25b501cad5289e3dd47a8e8fd 01-Apr-2011 Todd Kennedy <toddke@google.com> Merge "Create separate adapters for mailbox lists"
18f98261a43002e22f1954d7163ea823571c3fd0 01-Apr-2011 Makoto Onuki <omakoto@google.com> Changed text color for phone

... assuming we're going to use the holo light on the phone as well.

Now the text on MailboxList is clearly visible.

Also updated/added some comments.

Change-Id: I280db2b82cbd1627c78a305dd31bbf1b1bb34d1d
ndroid/email/activity/MailboxList.java
a10c709873867662e02e6081698f9cfb2beb9a1a 01-Apr-2011 Makoto Onuki <omakoto@google.com> Merge "MessageList rework for phone."
74bf57cfafde4095ee67985255cfaa8b1453115e 31-Mar-2011 Todd Kennedy <toddke@google.com> Create separate adapters for mailbox lists

There are currently two places where we use a mailbox list -- in the main
view and in the "move to" dialog. We've replaced the single, modally
configured adapter with two specialized subclasses.

Change-Id: I5dfd5ccd435fefbab4b7647c2bd7a14818f73bf3
ndroid/email/activity/MailboxFragmentAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxMoveToAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
acef8061ffe0b08583320c19ee4e87e18ea57772 31-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "More use of EmailAsyncTask"
26cfb38042e5686bd19ba4b1a0188bbc352c36d3 31-Mar-2011 Makoto Onuki <omakoto@google.com> MessageList rework for phone.

Change-Id: I1cc86c0282f0f3cbe9b78ed97ab3fb8f8d1e7c0f
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
5e4f1c38724927d7d41713e9e9ff073041d92d73 29-Mar-2011 Todd Kennedy <toddke@google.com> Allow globals in the providers.xml

There are two ways globals can be specified. There can be only one global
character ['*'] and/or multiple wildcard characters ['?']. The global
will match zero or more characters. The wildcard will match any character.

bug 4090086

Change-Id: I07e3edebd1fe989094c68cf047ce5bc9fb91aba0
ndroid/email/activity/setup/AccountSettingsUtils.java
44f45f4221f5cd681ac3e9596cedb4f0536a1751 31-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Don't use findViewById (part 1 -- account setup)"
af6079c823d045bb14abb601cc9c7fd48261313f 29-Mar-2011 Makoto Onuki <omakoto@google.com> More use of EmailAsyncTask

... for Welcome and EmailWidget. So that now it's safe for onDestroy()
to be called while a task is running. (onDestroy cancels it.)

Change-Id: I660b471465170e1d1d0ce153571fb924ae703d7d
ndroid/email/activity/Welcome.java
ndroid/email/widget/EmailWidget.java
aaec6a9a2b3f0a1b1de11ad28f9fc8f45e558784 30-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Disallow editing username after account creation"
2fbb3db5d86210d03175ce77ff08c989a96c5864 28-Mar-2011 Makoto Onuki <omakoto@google.com> Don't use findViewById (part 1 -- account setup)

Added two new functions:
- UiUtilities.getView()
is a fail-fast version of findViewById(). Crashes when there's no view
- setVisibilitySafe()
same as View.setVisibility, but doesn't crash even if a view doesn't exist

Let's try to avoid the use of findViewById(), and instead use getView(), *right
after* the layout is inflated, so that we'll always fail-fast if a layout
doesn't have a required view. (Rather than getting a NPE only when the view
is really accessed, which can be in a code path which is rarely executed--e.g.
only when there's a protocol error.)

Let's only use findViewById() only when we're sure no all the variants of a
layout have the view in question and leave a comment to make it clear it's on
purpose.

(UiUtilities has been moved from com.android.email to
com.android.email.activity)

Change-Id: I36e0bab65a989f5d34cf636f13e1eaee084547af
ndroid/email/UiUtilities.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/UiUtilities.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/widget/EmailWidget.java
206109cf44e27e90e4a5208daa289704aa451198 30-Mar-2011 Todd Kennedy <toddke@google.com> Disallow editing username after account creation

After the account is created, don't allow editing the user name. We want to
prevent this as the user name is core to the account and changing the user
name is tantamount to creating a new account.

bug 3502279

Change-Id: I1d89710fd48aca67ba13abea5bdbdc1d87941618
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
e369f2772ce1bd524e5a024bed3f7dcb642702e7 30-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Allow globals in the providers.xml"
08534762bdded437a7fa0e5e422d311c414e0621 29-Mar-2011 Todd Kennedy <toddke@google.com> Allow globals in the providers.xml

We now allow a single global character ['*'] to be specified somewhere in
the domain attribute. Additionally, we will replace the string "$domain"
with the matched domain in all attributes -- user name, password and URIs.

bug 4090086

Change-Id: I46a637ed364c1a079e1230fa22393a1bac059b1f
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
9e53322ee7b2a46cb762898845303cccec88fb50 29-Mar-2011 Makoto Onuki <omakoto@google.com> First path of MessageList cleaning up

- Menu now works
- Removed a lot of unnecessary/soon-to-be-unnecessary code.
Especially,
- multi-selection panel is now replaced with CAB
- SetTitleTask will be replaced with a loader
- Removed the option menu xml for magic mailboxes
(The regular one should work for them as well)

Bug 4184142

Change-Id: I52adff6d711232d536b6f00367a240e1faeea14b
ndroid/email/activity/MessageList.java
99930f81f1b7f1d5b769be958b3d1efe0aeef3fc 25-Mar-2011 Todd Kennedy <toddke@google.com> Don't load from the network until specified

We were always loading from the network for HTML messages. Now we don't
load from the network until the user clicks the "display images" button.

Change-Id: I4cdfea5e5338f3bba70b3d04df6551516d3e1a85
ndroid/email/activity/MessageViewFragmentBase.java
d31238ca881354938b9d923819da3c63ffb4ac12 22-Mar-2011 Todd Kennedy <toddke@google.com> Add support to query for message IDs

If an IMAP server supports the UIDPLUS capability, it can return the new UID
as part of the response to the "UID COPY" command. However, if the server does
not support UIDPLUS, we perform a SEARCH to try to determine the new message
UID.

This is the second of a couple modifications.

bug 4092301

Change-Id: I1f548b63becfec8733cb8ba9a3fe6ff4be6fdd83
ndroid/email/MessagingController.java
ndroid/email/mail/store/ImapStore.java
1e3a5f3ab1a066d3f600b7d4cad22e9eed47e92b 24-Mar-2011 Todd Kennedy <toddke@google.com> Don't load from the network until specified

We were always loading from the network for HTML messages. Now we don't
load from the network until the user clicks the "display images" button.

Change-Id: I1838b6cb09d49a2b521baa12a80239107391534f
ndroid/email/activity/MessageViewFragmentBase.java
9f0283dbd7810953b0c795bcba7359fb7cd1f1ce 23-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Better fix for the PendingIntent issue."
284d8d7db5743d24b9aa246afe3d24139bdb0813 23-Mar-2011 Todd Kennedy <toddke@google.com> Add support for UIDPLUS capability

When copying messages between mailboxes using standard IMAP, we must perform
a QUERY or FETCH in order to determine the new message UID. However, if the
server supports the UIDPLUS capability, the server will return the new UID
as part of the response to the "UID COPY" command.

This is the first of a couple modifications. We still need to fallback to a
less efficient QUERY/FETCH if the server does not support UIDPLUS.

bug 4092301

Change-Id: I9279f7fd70daf85adba3b3e202c12d67ddf91f22
ndroid/email/MessagingController.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapConstants.java
ndroid/email/mail/store/imap/ImapResponse.java
ndroid/email/mail/store/imap/ImapUtility.java
308ce9284793b597797994dfb1fb25155cbe0b20 22-Mar-2011 Makoto Onuki <omakoto@google.com> Better fix for the PendingIntent issue.

Refactor the changes introduced in Ib02842bb.

- Now Welcome and AccountSettingsXL accept intents with URLs of the following
style, and get IDs from query params, rather than extras.

Welcome:
content://ui.email.android.com/view/mailbox?ACCOUNT_ID=1&MAILBOX_ID=2&MESSAGE_ID=3

AccountSettingsXL:
content://ui.email.android.com/settings?ACCOUNT_ID=1

- Now the "new message" and "login failed" notifications use these new style
intents, so the system wouldn't merge PendingIntents for different accounts.

Also:
- Moved all notification creation logic to NotificationController.
(Except the one in CalendarSyncEnabler; which is used only to support
upgrading from pre-froyo and I don't think it's worth refactoring.)

- Note the "password expired/expiring" and "security needed" notifications
aren't changed; they still use extras to store account IDs. This is okay
because these notifications are not per-account.

Bug 4065269

Change-Id: I70737438d2e7c45fd7488a5b0a7105c8568e02f7
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/IntentUtilities.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettingsXL.java
ae72ec88ce0fce4d36aba95be3f4ff7b059577b7 22-Mar-2011 Makoto Onuki <omakoto@google.com> Compose: Set focus to the To field by default

We initialize the focus with setNewMessageFocus(), but it's only called
from processSourceMessage() (for EDIT_DRAFT) initFromIntent() (for other
actions, except for "new draft"). We didn't intialize the focus for new
drafts. Let's just get the To field to get the focus by default to
cover this case.

Bug 4048238

Change-Id: I50cd69b8813198c96beab2025576d390520dc6a4
ndroid/email/activity/MessageCompose.java
ca64197427c2fc6095a96344cac4d0a8ff400815 22-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Improve EmailAsyncTask"
d72f7bdf114a21db6aac66a7e83d6b002c8e8ed5 21-Mar-2011 Makoto Onuki <omakoto@google.com> Improve EmailAsyncTask

Added 6 methods:
- execute{Parallel,Serial}
- cancelPreviousAndExecute{Parallel,Serial}
- runAsyncParallel{Parallel,Serial} (replacement for Utility.runAsync)

Bug 4083415

Change-Id: I5ca33000e52fc5265ccc84a6e5acb0d3359d0eb4
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewFragmentBase.java
a3bc8a2a9f069337f8f996139491c6273a9cd52d 22-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Don't sync messages moved from the sent folder"
9134916c3921b514cf905fd2fddb26e686d0fee4 22-Mar-2011 Todd Kennedy <toddke@google.com> Make method forceLoadSettings() private

Change-Id: Idc36fa205046d19f9a6a9c92c10a9a6f637f1663
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
c17e9ce85f98d143e950b63aa9e5fd57d31dcbe5 22-Mar-2011 Todd Kennedy <toddke@google.com> Don't sync messages moved from the sent folder

Modified location of the test to processUploadMessage() method. We do this to
prevent creating multiple EmailContent.Message objects.

bug 4096266

Change-Id: Id83d3703283c0cd89a60c6210976093d39fb6934
ndroid/email/MessagingController.java
5a5044287494db2f26e680b36187714838bc82bf 16-Mar-2011 Todd Kennedy <toddke@google.com> Reload server settings after auto discover

There is an optimization to prevent re-loading server settings if they've
arlready been loaded once. However, in certain circumstances (e.g., server
setting auto discover), we want to be able to reload the server settings.

bug 4091290

Change-Id: I03c47a7fe3b45d1c581401ac891895a00315d45b
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
dece5050c2b7004623ab9e38eaa7b75257fe15e8 17-Mar-2011 Todd Kennedy <toddke@google.com> Don't sync messages moved from the sent folder

When processing message updates, we handle messages in the "sent" folder
specially. We continue to do that. However, we must also check that the
given message is still in the "sent" folder.

bug 4096266

Change-Id: Iaa47512fad287e63d8216b755a761b52b324cfff
ndroid/email/MessagingController.java
b959d9b9b2f1af8cf9a6726192e764b79f8d905a 16-Mar-2011 Andy Stadler <stadler@google.com> am 22759bac: Handle complex chars policy correctly

* commit '22759bacd95385d95d3d9321f490763df1aba89d':
Handle complex chars policy correctly
22759bacd95385d95d3d9321f490763df1aba89d 16-Mar-2011 Andy Stadler <stadler@google.com> Handle complex chars policy correctly

* We needed to set DevicePolicyMnager.PASSWORD_QUALITY_COMPLEX
* Setting this, we also need to clear some of the defaults for complex
mode that are not correct for Exchange's definition of "complex".
* Unit tests

Bug: 4092218
Change-Id: Iea7bd05d48f1aa9406222c1db5937cfd7f2662b8
ndroid/email/SecurityPolicy.java
033d911dce6b2a5f762d71b78e24a3fa8d569b87 16-Mar-2011 Andy Stadler <stadler@google.com> am 714b2f2d: Merge "Reduce chance of crash when dismissing dialogs asynchronously" into honeycomb-mr1

* commit '714b2f2da36d750eb4acbf505398a44b93546322':
Reduce chance of crash when dismissing dialogs asynchronously
a685d3b0191f472de9902b3d5590fc3e8408400c 15-Mar-2011 Andy Stadler <stadler@google.com> Reduce chance of crash when dismissing dialogs asynchronously

* Caught & diagnosed by crash while checking settings
* Also possible in MoveMessageToDialog

Bug: 3412875
Change-Id: Ie78c61cf5ca10ce1eedc25ba2eb97ed0ac5bc615
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ee6686043a2ac735c5fc22b90ea412c33824b0e9 11-Mar-2011 Andy Stadler <stadler@google.com> am 0820e008: Merge "Fix race condition NPE caught by monkey" into honeycomb-mr1

* commit '0820e00841aca88e70a88a25e891c156fa578088':
Fix race condition NPE caught by monkey
5f830f8608eaea6a512a97983b124fd13836a59f 10-Mar-2011 Andy Stadler <stadler@google.com> Fix race condition NPE caught by monkey

Bug: 4080321
Change-Id: Ia6ef0a47f87ffdc96269a95cc3bc5564d2e98440
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
d43ebd7804ae90e75c8f17000ebb59215a4210eb 10-Mar-2011 Todd Kennedy <toddke@google.com> am 19829ef7: Merge "Fix NPE when trying to open attachments" into honeycomb-mr1

* commit '19829ef7edfe1a72a88e0ba57f3ce6c57d9ae8f6':
Fix NPE when trying to open attachments
f94fdfd4b54a9ab610efcb21950a745abaf1bcbd 10-Mar-2011 Todd Kennedy <toddke@google.com> am d135ac61: Merge "Update attachment buttons after loading attachment" into honeycomb-mr1

* commit 'd135ac61ee22c81509c71273b2d053fc36ea210a':
Update attachment buttons after loading attachment
19829ef7edfe1a72a88e0ba57f3ce6c57d9ae8f6 10-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Fix NPE when trying to open attachments" into honeycomb-mr1
074cc5869def8b91f1799af862b075579593cb60 10-Mar-2011 Todd Kennedy <toddke@google.com> Update attachment buttons after loading attachment

We would update the attachment buttons if the UI was becoming visible (i.e.
coming back from a settings page), but, we weren't updating them after the
attachment finished loading.

bug 4074694

Change-Id: I9d235620b5a92c2bbb871f70c9d97350cc151ce8
ndroid/email/activity/MessageViewFragmentBase.java
edd1c9ac7e92da3ca5459f4c7c3154b98ff68eac 10-Mar-2011 Todd Kennedy <toddke@google.com> Fix NPE when trying to open attachments

The attachment info may be null when we attempt to mark them for downloading.
Add a null-check before we try to dereference the info structure.

bug 4053184

Change-Id: I831e3abd100664c92f7af585014a03250e40ff64
ndroid/email/Controller.java
225a3ea0b699fdc0d7404f4ef46dbcc102b307fc 10-Mar-2011 Marc Blank <mblank@google.com> am 70e99aa9: Merge "Fix download of non-smart-forwarded attachments" into honeycomb-mr1

* commit '70e99aa97f027f9a7dd19e28f978258025f7d9ed':
Fix download of non-smart-forwarded attachments
180b6bdaac367840111b7333600d9ad347dc9d75 10-Mar-2011 Marc Blank <mblank@google.com> am 0af709c2: Merge "Make sure services are started when Email application starts" into honeycomb-mr1

* commit '0af709c2c5f953d8f519af8672c01473d7eed2a3':
Make sure services are started when Email application starts
4af17a654b4951f5789a5fa437d6c0b140aca05b 10-Mar-2011 Marc Blank <mblank@google.com> am e233fe31: Merge "Only allow prefetch when on a WiFi network" into honeycomb-mr1

* commit 'e233fe315b5fdc5050ea4e3428856a5370567062':
Only allow prefetch when on a WiFi network
70e99aa97f027f9a7dd19e28f978258025f7d9ed 10-Mar-2011 Marc Blank <mblank@google.com> Merge "Fix download of non-smart-forwarded attachments" into honeycomb-mr1
0af709c2c5f953d8f519af8672c01473d7eed2a3 10-Mar-2011 Marc Blank <mblank@google.com> Merge "Make sure services are started when Email application starts" into honeycomb-mr1
2a47caef7d39ba975bf9a0fe3eacec04ccbe371c 10-Mar-2011 Makoto Onuki <omakoto@google.com> am 553037ba: Merge "Fix NPE in NotificationController" into honeycomb-mr1

* commit '553037ba4ecfc72d68743eff223e16fb9511d7c1':
Fix NPE in NotificationController
e233fe315b5fdc5050ea4e3428856a5370567062 10-Mar-2011 Marc Blank <mblank@google.com> Merge "Only allow prefetch when on a WiFi network" into honeycomb-mr1
27372998d64e2c4eb20b93b3f1023f42a7f0fd76 10-Mar-2011 Makoto Onuki <omakoto@google.com> am dd6e6b85: Fix bug 3509555 make notification always open right account

* commit 'dd6e6b850462fd8617a73dd40b5e7d32f0aaf5ed':
Fix bug 3509555 make notification always open right account
553037ba4ecfc72d68743eff223e16fb9511d7c1 10-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Fix NPE in NotificationController" into honeycomb-mr1
43c455eb266125a8e09a98e38d7639a865f52d42 08-Mar-2011 Makoto Onuki <omakoto@google.com> Fix NPE in NotificationController

This would happen when a message has no from addresses.

Bug 4027170

Change-Id: I1da091a6a55b274805ee6b3e109cbeb55a21fae1
ndroid/email/NotificationController.java
308ecfcc7e609a3156ec1b79d47bfc61feac243e 09-Mar-2011 Marc Blank <mblank@google.com> Fix download of non-smart-forwarded attachments

Bug: 3506114
Change-Id: Id3166402b0922eb1774ff484de249391fcc5e17c
ndroid/email/activity/MessageCompose.java
dd6e6b850462fd8617a73dd40b5e7d32f0aaf5ed 09-Mar-2011 Makoto Onuki <omakoto@google.com> Fix bug 3509555 make notification always open right account

The problem was that:
- Each account now has own new message notification
- But PendingIntens for these all point to the same activity,
only with different long extras (for acount IDs).
- Framework merges these intents, because extras don't count
as a "difference" in this case.
- So when multiple new message notifications are shown, they'll
all share the same intent internally, so they'll all open the
same account.

A quick workaround seems to be to set a unique URI to each intents.

Bug 3509555

Change-Id: Ib02842bb32634cfdf01ae2d684dd04dfede23832
ndroid/email/NotificationController.java
88b502c70a273d161f4d46c72dc79298703514f1 09-Mar-2011 Marc Blank <mblank@google.com> Make sure services are started when Email application starts

Bug: 4020337
Change-Id: I6c645800c75a4f1b80c5c3d081c4292b6db81f57
ndroid/email/Email.java
0c149eef417cf3e43d8504fb17f89fc33508348a 08-Mar-2011 Todd Kennedy <toddke@google.com> am ccc0e10b: Merge "Only delete attachments from drafts" into honeycomb-mr1

* commit 'ccc0e10bc7b62e38aa0c329e69941bcda9b338e4':
Only delete attachments from drafts
ccc0e10bc7b62e38aa0c329e69941bcda9b338e4 08-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Only delete attachments from drafts" into honeycomb-mr1
665b1801471c4393f1a0e85c5f1206580b902eaa 08-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Make ACTION_SEND_MULTIPLE work with file: URI" into honeycomb-mr1
a94804c49e964ffa3139c655376b9b1dc2b33a36 08-Mar-2011 Todd Kennedy <toddke@google.com> Only delete attachments from drafts

We should only be deleting attachments from draft messages and not all
messages.

bug 3489176

Change-Id: Ia1bd2894f3aabc1bfbfb36e2f5c486b47d6edf4f
ndroid/email/activity/MessageCompose.java
9106c9d245725f1b812ed3de263a6e0cfe02598e 08-Mar-2011 Todd Kennedy <toddke@google.com> am f42d5c62: Implement UI tweaks

* commit 'f42d5c6234bfb26f63a711fd59076964283fb7f0':
Implement UI tweaks
973702b30e8c2fb2f622f4ef37b42b3bdbd3ef17 08-Mar-2011 Marc Blank <mblank@google.com> Only allow prefetch when on a WiFi network

Bug: 3515125

Change-Id: I0814ea20b1fc73807667e7f9531c1ea065bfa803
ndroid/email/AttachmentInfo.java
ndroid/email/EmailConnectivityManager.java
ndroid/email/service/AttachmentDownloadService.java
f42d5c6234bfb26f63a711fd59076964283fb7f0 08-Mar-2011 Todd Kennedy <toddke@google.com> Implement UI tweaks

* Correct allignment of mailbox label
* Sender info & presence alignment fixed
* Header height corrected
* Sender header updated; new asset for background & remove the "fold" asset
* New asset icon and allignment for "show pictures"
* Selected rows have updated background; new assets
* New asset for checked items
* Update divider to be 2px high
* Update selected background for wide message list

bug 3510984

Change-Id: I028ed5619ea7127b0392d9f5b7b00c575b00f3c6
ndroid/email/activity/MessageListItem.java
58d570ca8a707726533b57ae37d564821bbb5007 07-Mar-2011 Vasu Nori <vnori@google.com> am 9ab40a58: Merge "bug:3513950 a trivial change due to renaming of api in downloadmanager" into honeycomb-mr1

* commit '9ab40a58b64b8f2cc78241b0ca0b9064d172729e':
bug:3513950 a trivial change due to renaming of api in downloadmanager
d43438ee5bce0920d3f032b7a71925b0cb1569f8 07-Mar-2011 Vasu Nori <vnori@google.com> bug:3513950 a trivial change due to renaming of api in downloadmanager

Change-Id: I5f8cd86fc97afa32e4a07ee2b6ab77d3270856be
ndroid/email/activity/MessageViewFragmentBase.java
7a159387636507de95b9b0c052ab593d0e91c433 07-Mar-2011 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Make ACTION_SEND_MULTIPLE work with file: URI

To determine mime-types of attachments from the ACTION_SEND and _MULTIPLE intents,
- Use ContentResolver.getType() for content: URIs
- Use inferMimeType() for file: URIs

Tested with Gallary and Downloads.

Bug 3510624

Backport of Ibfa4b383463f157e18fd634e55f5be4b9adf6aa5

Change-Id: Id2815738673f3822a97e92414b84f6a5d46eb96f
ndroid/email/activity/MessageCompose.java
92cbc9369ba7dc80ebd7190bf99b99e9c43b8f66 04-Mar-2011 Makoto Onuki <omakoto@google.com> Make ACTION_SEND_MULTIPLE work with file: URI

To determine mime-types of attachments from the ACTION_SEND and _MULTIPLE intents,
- Use ContentResolver.getType() for content: URIs
- Use inferMimeType() for file: URIs

Tested with Gallary and Downloads.

Bug 3510624

Change-Id: Ibfa4b383463f157e18fd634e55f5be4b9adf6aa5
ndroid/email/activity/MessageCompose.java
ab8caebec6e6b4398a02abe6cb1305c424bea734 04-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Fix ANR: Run getPreviewIcon on bg thread" into honeycomb-mr1
d8bce7e73155dca734f45502e52c0039de4c9663 04-Mar-2011 Todd Kennedy <toddke@google.com> DO NOT MERGE Add original HTML message to forward/reply

When replying or fowarding an HTML message, we now send both plain text and
HTML bodies as a multi-part mime message. We take special care to ensure the
message bodies are in their own multi-part block and do not interfere with
any additional attachments to the message.

bug 3060920

Backport-Of: I2fc3cb4e1f65bcc28486a62731b44b0ee0a99719

Change-Id: I89ec2795b55ceb7472a8ee3db2dc8f50cf537d9c
ndroid/email/activity/MessageCompose.java
7d513c791a9ceb36b0e0a8fdabeb4a962e11d576 04-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Attach original HTML message on forward/reply"
ef2bc0b3e9f1fde01fe625906d0fa9b803a30471 03-Mar-2011 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Fix ANR: Run getPreviewIcon on bg thread

The new class EmailAsyncTask might look overkill, but
this is what I've been wanting for long time.
In many activities we store all AsyncTasks we start to member fields
so that we can cancel them in onDestroy(). (e.g.
MessageViewFragmentBase.mLoadMessageTask and mReloadMessageTask)
With EmailAsyncTask these fields will no longer be necessary.
We'll be able to just fire up as many AsyncTasks as we want, and clean them
up in onDestroy() with just cancellAllInterrupt().

Bug 3480136

Backport of Id8aa1ba1500eee58cfab8b562b95e9ed852b3e29

Change-Id: I2d2966ff878862a5246c031d1d4e221da5a7e81a
ndroid/email/activity/MessageViewFragmentBase.java
ba125ab5ac747bb382dc8fe986dd8f0ed72ca596 03-Mar-2011 Makoto Onuki <omakoto@google.com> Fix ANR: Run getPreviewIcon on bg thread

The new class EmailAsyncTask might look overkill, but
this is what I've been wanting for long time.
In many activities we store all AsyncTasks we start to member fields
so that we can cancel them in onDestroy(). (e.g.
MessageViewFragmentBase.mLoadMessageTask and mReloadMessageTask)
With EmailAsyncTask these fields will no longer be necessary.
We'll be able to just fire up as many AsyncTasks as we want, and clean them
up in onDestroy() with just cancellAllInterrupt().

Bug 3480136

Change-Id: Id8aa1ba1500eee58cfab8b562b95e9ed852b3e29
ndroid/email/activity/MessageViewFragmentBase.java
9cc51b72c6902b95f65857af64eb38063aa4a42b 01-Mar-2011 Todd Kennedy <toddke@google.com> Attach original HTML message on forward/reply

When replying or fowarding an HTML message, we now send both plain text and
HTML bodies as a multi-part mime message. We take special care to ensure the
message bodies are in their own multi-part block and do not interfere with
any additional attachments to the message.

bug 3060920

Change-Id: I2fc3cb4e1f65bcc28486a62731b44b0ee0a99719
ndroid/email/activity/MessageCompose.java
45e161bb5e2ff1d0980dba84073c41543744f1e6 03-Mar-2011 Andy Stadler <stadler@google.com> Merge "Enable SD card encryption policy when emulated"
ace01c0fb12d87e4bfa1724608717753ea26453f 03-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Compose: Fix bug where attachments can't be removed"
7fd14be80447de15bd5360321fa80e34f60fa251 03-Mar-2011 Andy Stadler <stadler@google.com> Enable SD card encryption policy when emulated

* This is is a minimal implementation that only supports the external
encryption policy when there is no physical/removable storage, and
the emulated external storage is located within an encrypted backing
store.

Bug: 3351426
Change-Id: Id96e9277f810beeebf816a914acd3d733eb713ea
ndroid/email/SecurityPolicy.java
45d50a1ccffff5dd256a139497ac900f0eb5276b 02-Mar-2011 Andy Stadler <stadler@google.com> Don't send ID command to *.secureserver.net

Fixes connection failures with GoDaddy IMAP.

Bug: 3497713
Change-Id: I327d9b24598d7dead2d1b74f4e37d1e5885822a6
ndroid/email/mail/store/ImapStore.java
a54d8bb4eebc8bd0fce6de5bc4cc2d2c190eeb80 03-Mar-2011 Makoto Onuki <omakoto@google.com> Compose: Fix bug where attachments can't be removed

If the account supports smart-forward. The old code assumed
attachments are not removable if the account supports smart-forward,
which is not true. Locally-added attachments should still be removable.

Bug 3505684

Change-Id: Ie6703551800c617dd224957a098311f0c279b3f1
ndroid/email/activity/MessageCompose.java
ee82e34a28ec87fe17a79873fc4e32de79423761 02-Mar-2011 Makoto Onuki <omakoto@google.com> Fix ANR/crash when you open & close a large EML

The problem was:
- MessageFileViewFragment.clearContent (A) is called in onDestroy
- MessageFileViewFragment.openMessageSync (B) is called in a bg thread
to load an eml file
- And both try to hold the same lock. (mLock)
- If EML is large enough, B takes _seconds_. If you press back during this,
onDestroy gets blocked trying to lock mLock.
- This could also cause a crash, because the task that runs openMessageSync
won't get cancelled in this case, because that's done in clearContent.
Because of this, the task's onPostExecute tries to touch a UI element
when the fragment is actually being destroyed.

The lock was introduced to protect mFileEmailUri, only to keep the same
semantics for openMessage() as MessageViewFragment. i.e. openMessage can be
called multiple times for the same instance of the fragment.

However, in practice, this won't happen. Unlike the regular message view,
we never reuse MessageFileViewFragment. MessageFileViewFragment instances
are created per message. This lock was just reminiscence from the early
developmen stage.

So, fix is simple -- just remove the lock.

Bug 3500487

Change-Id: If2b22a683666de535454bb1293563796fa7acfd7
ndroid/email/activity/MessageFileViewFragment.java
19b2a7ebc9cc770baace1605ff5b44b3fcb46320 02-Mar-2011 Makoto Onuki <omakoto@google.com> New debug setting to enable strict mode logging.

For now it only enables it for the main process. I've added a flag
to EmailServiceProxy for EAS, but it's not used in the exchange side.

Bug 3500292

Change-Id: I5b27c69fe7cc995a430e9def54b2463076032c78
ndroid/email/Email.java
ndroid/email/Preferences.java
ndroid/email/activity/setup/DebugFragment.java
833bf485a8714de6c15c04172d78c4f93ef755a4 02-Mar-2011 Marc Blank <mblank@google.com> Merge "Fix typo and comment"
25ab2df296d524671616831122f9a3c59132ae51 02-Mar-2011 Marc Blank <mblank@google.com> Fix typo and comment

Change-Id: Iffc69baf98c05a09693ba9a053c91d921fc1b423
ndroid/email/service/EmailBroadcastProcessorService.java
2d6a98aedf10a8f836ae2e02ddbdec597cf53899 02-Mar-2011 Andy Stadler <stadler@google.com> Prevent NPE when account sender name is null

Bug: 3500373
Change-Id: Id07270f34d9cc0523c46104b3167711b71798623
ndroid/email/activity/setup/AccountSettingsFragment.java
37f3385803de19d4b6fb4ef1b1ac9a6196dec98c 02-Mar-2011 Ying Wang <wangying@google.com> Split out emailcommon/Android.mk

Change-Id: I846ee2a4b541f4709e647aa537c61549db2bec2e
ndroid/emailcommon/AccountManagerTypes.java
ndroid/emailcommon/Api.java
ndroid/emailcommon/CalendarProviderStub.java
ndroid/emailcommon/Configuration.java
ndroid/emailcommon/Device.java
ndroid/emailcommon/Logging.java
ndroid/emailcommon/TempDirectory.java
ndroid/emailcommon/internet/BinaryTempFileBody.java
ndroid/emailcommon/internet/MimeBodyPart.java
ndroid/emailcommon/internet/MimeHeader.java
ndroid/emailcommon/internet/MimeMessage.java
ndroid/emailcommon/internet/MimeMultipart.java
ndroid/emailcommon/internet/MimeUtility.java
ndroid/emailcommon/internet/Rfc822Output.java
ndroid/emailcommon/internet/TextBody.java
ndroid/emailcommon/mail/Address.java
ndroid/emailcommon/mail/AuthenticationFailedException.java
ndroid/emailcommon/mail/Body.java
ndroid/emailcommon/mail/BodyPart.java
ndroid/emailcommon/mail/CertificateValidationException.java
ndroid/emailcommon/mail/FetchProfile.java
ndroid/emailcommon/mail/Fetchable.java
ndroid/emailcommon/mail/Flag.java
ndroid/emailcommon/mail/Folder.java
ndroid/emailcommon/mail/MeetingInfo.java
ndroid/emailcommon/mail/Message.java
ndroid/emailcommon/mail/MessageDateComparator.java
ndroid/emailcommon/mail/MessagingException.java
ndroid/emailcommon/mail/Multipart.java
ndroid/emailcommon/mail/PackedString.java
ndroid/emailcommon/mail/Part.java
ndroid/emailcommon/mail/Snippet.java
ndroid/emailcommon/provider/EmailContent.aidl
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/service/AccountServiceProxy.java
ndroid/emailcommon/service/EmailServiceConstants.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/service/EmailServiceStatus.java
ndroid/emailcommon/service/IAccountService.aidl
ndroid/emailcommon/service/IEmailService.aidl
ndroid/emailcommon/service/IEmailServiceCallback.aidl
ndroid/emailcommon/service/IPolicyService.aidl
ndroid/emailcommon/service/PolicyServiceProxy.java
ndroid/emailcommon/service/PolicySet.aidl
ndroid/emailcommon/service/PolicySet.java
ndroid/emailcommon/service/ServiceProxy.java
ndroid/emailcommon/service/SyncWindow.java
ndroid/emailcommon/utility/AccountReconciler.java
ndroid/emailcommon/utility/AttachmentUtilities.java
ndroid/emailcommon/utility/ConversionUtilities.java
ndroid/emailcommon/utility/LoggingInputStream.java
ndroid/emailcommon/utility/SSLUtils.java
ndroid/emailcommon/utility/Utility.java
5297b452a2dd017ce4054e751f7bab64ca7a5b11 02-Mar-2011 Andy Stadler <stadler@google.com> Repair build break caused by gerrit non-rebase bug

* Undo the combination of I90653e86 & Ia07f2ae0
* By re-inserting the changes from I79d48bef

Change-Id: I70ac46c91f1ab5c90b74b0d43f293fb9741206cd
ndroid/emailcommon/provider/EmailContent.java
a07f2ae0b18964aa15e218e8b6be8be24e5c9f46 01-Mar-2011 Ying Wang <wangying@google.com> Revert "Split out emailcommon/Android.mk"

This reverts commit c28bf353190eb576072a8fd2f98821424144876e.
ndroid/emailcommon/AccountManagerTypes.java
ndroid/emailcommon/Api.java
ndroid/emailcommon/CalendarProviderStub.java
ndroid/emailcommon/Configuration.java
ndroid/emailcommon/Device.java
ndroid/emailcommon/Logging.java
ndroid/emailcommon/TempDirectory.java
ndroid/emailcommon/internet/BinaryTempFileBody.java
ndroid/emailcommon/internet/MimeBodyPart.java
ndroid/emailcommon/internet/MimeHeader.java
ndroid/emailcommon/internet/MimeMessage.java
ndroid/emailcommon/internet/MimeMultipart.java
ndroid/emailcommon/internet/MimeUtility.java
ndroid/emailcommon/internet/Rfc822Output.java
ndroid/emailcommon/internet/TextBody.java
ndroid/emailcommon/mail/Address.java
ndroid/emailcommon/mail/AuthenticationFailedException.java
ndroid/emailcommon/mail/Body.java
ndroid/emailcommon/mail/BodyPart.java
ndroid/emailcommon/mail/CertificateValidationException.java
ndroid/emailcommon/mail/FetchProfile.java
ndroid/emailcommon/mail/Fetchable.java
ndroid/emailcommon/mail/Flag.java
ndroid/emailcommon/mail/Folder.java
ndroid/emailcommon/mail/MeetingInfo.java
ndroid/emailcommon/mail/Message.java
ndroid/emailcommon/mail/MessageDateComparator.java
ndroid/emailcommon/mail/MessagingException.java
ndroid/emailcommon/mail/Multipart.java
ndroid/emailcommon/mail/PackedString.java
ndroid/emailcommon/mail/Part.java
ndroid/emailcommon/mail/Snippet.java
ndroid/emailcommon/provider/EmailContent.aidl
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/service/AccountServiceProxy.java
ndroid/emailcommon/service/EmailServiceConstants.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/service/EmailServiceStatus.java
ndroid/emailcommon/service/IAccountService.aidl
ndroid/emailcommon/service/IEmailService.aidl
ndroid/emailcommon/service/IEmailServiceCallback.aidl
ndroid/emailcommon/service/IPolicyService.aidl
ndroid/emailcommon/service/PolicyServiceProxy.java
ndroid/emailcommon/service/PolicySet.aidl
ndroid/emailcommon/service/PolicySet.java
ndroid/emailcommon/service/ServiceProxy.java
ndroid/emailcommon/service/SyncWindow.java
ndroid/emailcommon/utility/AccountReconciler.java
ndroid/emailcommon/utility/AttachmentUtilities.java
ndroid/emailcommon/utility/ConversionUtilities.java
ndroid/emailcommon/utility/LoggingInputStream.java
ndroid/emailcommon/utility/SSLUtils.java
ndroid/emailcommon/utility/Utility.java
39919cb5e0a3a44de4446bf337bebeeb1a3a67a4 01-Mar-2011 Ying Wang <wangying@google.com> Merge "Split out emailcommon/Android.mk"
9ad3799fe4be67705c602e63c1bd654439498503 01-Mar-2011 Todd Kennedy <toddke@google.com> Merge "Change "appendQuotedText" to "useSmartReply" in Rfc822Output"
81273dfcee3b075451860f60ee15f2aa06ba81ec 01-Mar-2011 Marc Blank <mblank@google.com> Fix deadlock issue in AttachmentDownloadService

* When a connectivity wait was added to processQueue, I neglected
to consider that a lock was held during this time
* The fix is to move the check for connectivity out of processQueue

Bug: 3500702

Change-Id: I646cf899ff895d9838612e89b15b66f1084840b1
ndroid/email/EmailConnectivityManager.java
ndroid/email/service/AttachmentDownloadService.java
0d49ef78ebc1b0d65c31241f5b38f95397eebe34 01-Mar-2011 Todd Kennedy <toddke@google.com> Change "appendQuotedText" to "useSmartReply" in Rfc822Output

Slight API change to make it more clear what the method parameter is for.
Also add some additonal test conditions to the Rfc822Output tests.

Change-Id: I8888d6201e79136fa3420aa9d5f921772f374e56
ndroid/email/mail/transport/SmtpSender.java
ndroid/emailcommon/internet/Rfc822Output.java
c28bf353190eb576072a8fd2f98821424144876e 01-Mar-2011 Ying Wang <wangying@google.com> Split out emailcommon/Android.mk

Change-Id: I90653e8601ee3ee6a8719d87ffb93222a11a22c0
ndroid/emailcommon/AccountManagerTypes.java
ndroid/emailcommon/Api.java
ndroid/emailcommon/CalendarProviderStub.java
ndroid/emailcommon/Configuration.java
ndroid/emailcommon/Device.java
ndroid/emailcommon/Logging.java
ndroid/emailcommon/TempDirectory.java
ndroid/emailcommon/internet/BinaryTempFileBody.java
ndroid/emailcommon/internet/MimeBodyPart.java
ndroid/emailcommon/internet/MimeHeader.java
ndroid/emailcommon/internet/MimeMessage.java
ndroid/emailcommon/internet/MimeMultipart.java
ndroid/emailcommon/internet/MimeUtility.java
ndroid/emailcommon/internet/Rfc822Output.java
ndroid/emailcommon/internet/TextBody.java
ndroid/emailcommon/mail/Address.java
ndroid/emailcommon/mail/AuthenticationFailedException.java
ndroid/emailcommon/mail/Body.java
ndroid/emailcommon/mail/BodyPart.java
ndroid/emailcommon/mail/CertificateValidationException.java
ndroid/emailcommon/mail/FetchProfile.java
ndroid/emailcommon/mail/Fetchable.java
ndroid/emailcommon/mail/Flag.java
ndroid/emailcommon/mail/Folder.java
ndroid/emailcommon/mail/MeetingInfo.java
ndroid/emailcommon/mail/Message.java
ndroid/emailcommon/mail/MessageDateComparator.java
ndroid/emailcommon/mail/MessagingException.java
ndroid/emailcommon/mail/Multipart.java
ndroid/emailcommon/mail/PackedString.java
ndroid/emailcommon/mail/Part.java
ndroid/emailcommon/mail/Snippet.java
ndroid/emailcommon/provider/EmailContent.aidl
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/service/AccountServiceProxy.java
ndroid/emailcommon/service/EmailServiceConstants.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/service/EmailServiceStatus.java
ndroid/emailcommon/service/IAccountService.aidl
ndroid/emailcommon/service/IEmailService.aidl
ndroid/emailcommon/service/IEmailServiceCallback.aidl
ndroid/emailcommon/service/IPolicyService.aidl
ndroid/emailcommon/service/PolicyServiceProxy.java
ndroid/emailcommon/service/PolicySet.aidl
ndroid/emailcommon/service/PolicySet.java
ndroid/emailcommon/service/ServiceProxy.java
ndroid/emailcommon/service/SyncWindow.java
ndroid/emailcommon/utility/AccountReconciler.java
ndroid/emailcommon/utility/AttachmentUtilities.java
ndroid/emailcommon/utility/ConversionUtilities.java
ndroid/emailcommon/utility/LoggingInputStream.java
ndroid/emailcommon/utility/SSLUtils.java
ndroid/emailcommon/utility/Utility.java
23d6be4d21e3d3da5f9de7f3f938274a65054771 01-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Update screen properly when # of accounts becomes 1 from 2"
30793aa791bba6a24d38d3e098e67236b73e009f 01-Mar-2011 Andy Stadler <stadler@google.com> Merge "Add parent key to Mailbox schema"
3a58509b2ad7b6f946eb0a4a7b0f75ece6d6a46f 01-Mar-2011 Andy Stadler <stadler@google.com> Add parent key to Mailbox schema

Bug: 2028418
Change-Id: I79d48befe7754692a3cab6c8851105bb399431f5
ndroid/email/MessagingController.java
ndroid/email/provider/EmailProvider.java
ndroid/emailcommon/provider/EmailContent.java
da8326dfe7740c8daa6fd2ccfae165cb11e8a186 28-Feb-2011 Todd Kennedy <toddke@google.com> Disable zoom icons if device supports multitouch

On multitouch devices, the zoom icons are not needed (the user can pinch to
zoom in/out). So, we should disable the display of these icons on multitouch
devices.

bug 3405875

Change-Id: I45484cfc622f11c25d3ea7f4c378c3133d7f7de0
ndroid/email/activity/MessageViewFragmentBase.java
fe68c0e7c2672e09076038b36ad24f095633d313 17-Feb-2011 Todd Kennedy <toddke@google.com> Use HostAuth to determine settings changes

There were two TODO's from a prior CL where deprecated HostAuth methods
were removed.

1. Do not use a generated URI to determine if account settings have changed.
Instead, use the HostAuth structure for this purpose.
2. The account key in the HostAuth structure has been deprecated. Remove as
much of it as possible (until the schema of the host auth database changes,
we must still refer to it when adding rows).

In the process, HostAuth tests were broken out into a separate unit test
file.

Change-Id: I4075da09af168f734db7b20a9ef63d4178ac2064
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/utility/Utility.java
e4481d41108d32026aa5bb0d8b94df8a76a7007c 28-Feb-2011 Marc Blank <mblank@google.com> AccountServiceProxy.restoreAccountsIfNeeded should be synchronous

* In the case where there are no Exchange accounts, we can stop ExchangeService
while restoreAccountsIfNeeded is still running, which can cause us to leak
the connection
* Change the call to be synchronous.

Bug: 3495601
Change-Id: I4a396e8b1650bd15fabd2802d2ec8d4276c6e43a
ndroid/emailcommon/service/AccountServiceProxy.java
fc156033d96db790857f60704a789945cede4bbf 01-Mar-2011 Makoto Onuki <omakoto@google.com> Update screen properly when # of accounts becomes 1 from 2

This happens when
- two accounts are configured
- select account 1
- remove account 1, and account 2 becomes active

In this case we failed to select account 2, and the fragments would keep
thinking account 1 was active. (So no mailboxes would be shown--beacuse there
was of course no mailboxes for account 1!)

When the account list changes, the account loader (created in loadAccounts())
automatically reloads the account list, and calls updateAccountList(). If
there're still more than 1 account at this point, updateAccountList() updates
the account spinner on the action bar. This will result in
ActionBarNavigationCallback getting called, which then updates the current
account as expected.

However, if there's only one account left, we hide the spinner and just
set the account name to the action bar title, so
ActionBarNavigationCallback won't get called and the current account
never changes.

In this case we shouldn't rely on ActionBarNavigationCallback but have to
explicitly update the current account.

Bug 3491567

Change-Id: Ia9ba3e1c11248ad5a1ba7e055717c5519d6e4884
ndroid/email/activity/MessageListXL.java
4d4bb9a849cf7f6745be271374a1805cd2460def 01-Mar-2011 Makoto Onuki <omakoto@google.com> Fix auto-refresh of mailboxes.

Removed the ugly doAutoRefresh() and byExplicitUserAction.

The intention for these was to supress auto-refresh when the message list
opens without any explicit user action, e.g. due to screen rotation.

However, now that we have the RefreshManager.isMailboxStale check with 5
minutes duration, this check is not really necessary. Let's just always
refresh mailbox if it's stale.

Bug 3493134

Change-Id: I6d0365ed7f8092304117d5f619d570b828edf76f
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
51a7151cfcc5ff7ec1fe1fe7d55cee0327a23f02 28-Feb-2011 Marc Blank <mblank@google.com> Merge "Send logging information to Exchange when deviceId is retrieved"
fdec974c93817988a00248b7d223ec9f7f20ecb8 27-Feb-2011 Marc Blank <mblank@google.com> Send logging information to Exchange when deviceId is retrieved

* Clean up logging to indicate the actual Service being used

Change-Id: I55f87487389accb1aad9b0cc03eff945ea0b1f3e
ndroid/email/service/AccountService.java
ndroid/emailcommon/service/ServiceProxy.java
5d29dac8065e75b040aeb29401630fd65fedb9fc 26-Feb-2011 Jesse Wilson <jessewilson@google.com> React to LruCache.entryEvicted renamed to LruCache.entryRemoved

Change-Id: Iab20ce0386ee4dabc8490dbde5cd2208626c293c
http://b/3461302
ndroid/email/provider/ContentCache.java
f583bf66b2db92f4f8372509bc74e5063370e7c9 25-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Message view: Restore tab after screen rotation."
dc78a769fce18d259eccc602c4623fa74cdf5319 14-Feb-2011 Marc Blank <mblank@google.com> Email split, part dix

* The coup de grâce for Exchange in Email
* Remove Exchange bits from AndroidManifest
* Update Android.mk to create static jar for emailcommon
* Delete all com.android.exchange files
* Delete all exchange-only strings
* Change loadAttachment service method to take only attachment id and
background flag
* Add code to AttachmentProvider.openFile() that opens an output file
for attachment writes
* Make sure deviceId is determined in Email app (not Exchange)

Bug: 3442973
Change-Id: I775600252fd121f474d51cb26fefbfcc50e387af
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/emailcommon/Device.java
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/service/AccountServiceProxy.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/service/IAccountService.aidl
ndroid/emailcommon/service/IEmailService.aidl
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/CalendarSyncAdapterService.java
ndroid/exchange/CalendarSyncEnabler.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/Eas.java
ndroid/exchange/EasAuthenticationException.java
ndroid/exchange/EasException.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailSyncAdapterService.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/IllegalHeartbeatException.java
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/MeetingResponseRequest.java
ndroid/exchange/MessageMoveRequest.java
ndroid/exchange/MockParserStream.java
ndroid/exchange/PartRequest.java
ndroid/exchange/PolicyServiceDelegate.java
ndroid/exchange/Request.java
ndroid/exchange/SSLSocketFactory.java
ndroid/exchange/StaleFolderListException.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/AccountSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/GalParser.java
ndroid/exchange/adapter/MeetingResponseParser.java
ndroid/exchange/adapter/MoveItemsParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/PingParser.java
ndroid/exchange/adapter/ProvisionParser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/adapter/Tags.java
ndroid/exchange/adapter/Wbxml.java
ndroid/exchange/adapter/patent_disclaimer.txt
ndroid/exchange/patent_disclaimer.txt
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/provider/GalResult.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/Duration.java
ndroid/exchange/utility/FileLogger.java
ndroid/exchange/utility/SimpleIcsWriter.java
ndroid/exchange/utility/patent_disclaimer.txt
a553559f3789c9938944ea9fafdfa808d2d76440 24-Feb-2011 Makoto Onuki <omakoto@google.com> Message view: Restore tab after screen rotation.

Restore current tab and "show pictures" state.

Bug 3384629

Change-Id: Ia7dca5f53b313f3f54781f6a061767d982773a9b
ndroid/email/activity/MessageViewFragmentBase.java
5920989bdec326ff3e9d70d6a530d8b99a98f5c7 24-Feb-2011 Todd Kennedy <toddke@google.com> Fix NPE when restoring setup activity

If the setup activity ever needs to restore itself after being killed, we were
restoring the Activity object's state (i.e. rebuilding the UI) before we
restored the state of our class. Since the Activity necessarily depends upon
our object's state, Bad Things can [and will] happen.

The solution is simple -- save our object's state last, but, restore our state
first.

bug 3476039

Change-Id: I623f1938c2e0f50d660708a7a7ac3eeb4a8f9090
ndroid/email/activity/setup/AccountSetupActivity.java
3d2f22c7a6b0c48f9baaddcf058688e45dd5265a 24-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Widget: Use unread count for inbox views."
fc4006b2760aadc98e87a09472b717dcd966db42 24-Feb-2011 Makoto Onuki <omakoto@google.com> Widget: Use unread count for inbox views.

Bug 3431240

Change-Id: I61a91462cdd864604f5ddc06ff93c0ecf3001e20
ndroid/email/widget/EmailWidgetLoader.java
ndroid/email/widget/WidgetView.java
6842c5768f0a9f9cdd9c10a50a965c1544cf9f57 24-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Remove com.android.email.widget.ViewType"
2428ea767ebbb85d11b2094ae1a758b34ddb461b 24-Feb-2011 Todd Kennedy <toddke@google.com> Merge "Properly clear "next" button de-bounce flags"
64c7a437ac94bc0a1025804507b59d453caecd2b 24-Feb-2011 Todd Kennedy <toddke@google.com> Properly clear "next" button de-bounce flags

In some cases, the de-bounce flags were not being properly cleared. Namely, on
the outgoing settings screen. We now consistently clear the flags to ensure the
"next" button is always actionalble when it should be.

bug 3425395

Change-Id: Ib8085fb96522158198d9f33a12effef8f65c0d19
ndroid/email/activity/setup/AccountServerBaseFragment.java
64c914a6a163a034cdd543d360f3da2841e76d75 24-Feb-2011 Makoto Onuki <omakoto@google.com> Remove com.android.email.widget.ViewType

WidgetView has took over this, but I forgot to remove it.

Change-Id: I6a5012263f81223904907eb78ff22472ff5d8f85
ndroid/email/widget/ViewType.java
a08fa43b85c82131b8fd237a327f7717c4d65869 24-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Fix the attachement view layout."
88c8044586e04a13d2961ffdcd954fbe24468209 23-Feb-2011 Makoto Onuki <omakoto@google.com> Fix the attachement view layout.

The progress bar is not meant to be GONE. Encapsulated the progress view
in MessageViewAttachmentInfo to make sure that won't happen.

Bug 3417034

Change-Id: I1efee089cc7921f4428a38fcbcdc2e8aa3cec9fd
ndroid/email/activity/MessageViewFragmentBase.java
47bdd174dcdeca52f56967705822bbe738394ba7 24-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "SizeBoundingFrameLayout: framelayout with max width/height"
fc8a65aecf4db7185a406f320ac9c7efbda7be1b 24-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Refactoring widget part 2"
9299d6082c104fcd88c473bd4e1b39d341f17bd4 24-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Pixel pefect: account spinner."
ffe6ef342a6d9ea958aaee11b57db54e52252dde 23-Feb-2011 Todd Kennedy <toddke@google.com> fix UnsupportedOperationException in tests

We're using the mock context to prevent modifying the real databases. However,
we need the real context to create intents. Use the real context in the few
places we must use it.

Change-Id: Icb8d289239218921c0b4b5c93ac7983830d90394
ndroid/email/service/AttachmentDownloadService.java
897a0ea81c8cddcb142d6ac7f7c47801858c8537 09-Feb-2011 Makoto Onuki <omakoto@google.com> Refactoring widget part 2

- Extracted the loader
- Extracted ViewType and introduced WidgetView.
WidgetView is ViewType + mutable fields, such as account id.
WidgetView now owns the method to switch views.

These two are basically in preparation to address the message count bug.
(we're showing total message count where it should be the unread count,
which is a bit tricky because it'll require two different queries.)

- Also simplified the threading model in EmailWidget to fix potential
theading issues. (now (almost) everything works on the UI thread)

Bug 3431240

Change-Id: I9f8a268210995f1135baabe88b49b274272708d4
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/EmailWidgetLoader.java
ndroid/email/widget/WidgetManager.java
ndroid/email/widget/WidgetView.java
b3c3f1afc6e4fcf2316cb915c14311f85375001a 10-Feb-2011 Makoto Onuki <omakoto@google.com> Pixel pefect: account spinner.

The expanded account spinner is completed, but the collapsed view
needs some more work. (That'll probably be a rather large CL, so I'll
finish it in a separate CL.)

Bug 3434135

Change-Id: Ia732e6b57b8c0d3e1609c3134b26411539ab6a18
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageListXLFragmentManager.java
de9e706ed900b2108165f512384e69871e069fa1 10-Feb-2011 Makoto Onuki <omakoto@google.com> SizeBoundingFrameLayout: framelayout with max width/height

This will be used to set the max width to the account name spinner.

I gave up on writing tests for onMeasure. It wasn't easy without adding
a dummy activity and layout.

It'll be used for a fix to bug 3439694.

Change-Id: Ie7569b0661eb732e270e4521fa0d3306f1bdd12c
ndroid/email/view/SizeBoundingFrameLayout.java
8c89674b64f6669fa94bf593abad0f1e2255a812 22-Feb-2011 Todd Kennedy <toddke@google.com> Always set a delete policy for legacy accounts

The delete policy can only be set for POP3 accounts. However, the delete policy
is used for all legacy accounts (that includes IMAP). As such, we need to make
sure IMAP accounts also have their policy set; even though the setting is not
configurable by the user.

The delete policy does not mean anything for Exchange accounts, so, we do not
need to modify the account setup code for them.

bug 3074164

Change-Id: Iab10d2997404b3b0c10a60a64fb652540c0d2d1a
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/service/EmailBroadcastProcessorService.java
dd123f927a69fd81ea0f4a08981e2f2bbc3ecd7a 23-Feb-2011 Makoto Onuki <omakoto@google.com> Reset fragment state when opening a new account/mailbox

Without this, there's a small window where a fragment is in a valid
state after openXxx() before the list is loaded.

Bug 3420361

Change-Id: I7f84a94dec1419762aa6b24188c023abe974d2bf
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
3f60e9312b1bf1324dd0e343b07cb69c9f8d31fd 19-Feb-2011 Todd Kennedy <toddke@google.com> Add "info" button to the attachment view

Whenever we remove the "load" and "view" buttons, we should add an "info"
button; where we will inform the user as to why we are preventing her from
seeing the attachment.

bug 3338997

Change-Id: Ic243f1542dec55f5b256eeb67ade50aa90e42009
ndroid/email/AttachmentInfo.java
ndroid/email/activity/AttachmentInfoDialog.java
ndroid/email/activity/MessageViewFragmentBase.java
9b1906337afaf0a73e527f3b59241808edb222d1 22-Feb-2011 Todd Kennedy <toddke@google.com> Only show chip if we have >1 account

bug 3435487

Change-Id: I42668fc9d6f118a83943fbe00edf5eb28b7749d6
ndroid/email/widget/EmailWidget.java
d096f70ab308dcc789f21e82e13857f89021be6d 20-Feb-2011 Andy Stadler <stadler@google.com> Merge "Add contextual dialogs after notifications"
f4894131427ec7562fcb05388b9f3aa094e388bc 19-Feb-2011 Andy Stadler <stadler@google.com> Add contextual dialogs after notifications

* When security settings notification is clicked, inform user that
they need to change settings (before dumping them in security
settings.)
* On an authentication failure, present a dialog to the user explaining
that the username or password may be incorrect.
* When the device pin/password is expiring or expired, present a dialog
to the user explaining that it needs to be updated.

Bug: 3238657
Change-Id: I8fca446fa3c1bf87a95938553dbdc362c3df220e
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
34704851e96dcc139d6833adb3bd139f57fa497c 19-Feb-2011 Todd Kennedy <toddke@google.com> Update account list if account description changes

Editing the account description occurs in a different fragment. As such, we
need to notify the fragment in charge of the account list whenever the
description is updated.

We already have a callback mechanism, so, expand that to send notifications
of any property change.

bug 3388586

Change-Id: I02475233f7f333db57c49ceaf908dbfa69c86ca6
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
3a4a1ac8340c4da73fa091830c154731b7eb2d5a 18-Feb-2011 Todd Kennedy <toddke@google.com> Send attachments through the download manager

bug 3339015

Change-Id: Ic16033a73d0e32608a14a2737f6ff28556dbe782
ndroid/email/activity/MessageViewFragmentBase.java
a8197834919735349062c65ad9ea04676fb24800 17-Feb-2011 Todd Kennedy <toddke@google.com> Fix NPE when creating an account from template

if you create an account using one of the pre-defined templates (such as
Yahoo!), the user name and password were not being set in the HostAuth
structure. This was causing an NPE when we tried to generate an IMAP ID.

Change-Id: I9619cddc0ab758c187cf4b9c7c84485ac1f4bfdd
ndroid/email/activity/setup/AccountSetupBasics.java
040ddf60cfef4aaecf4bfe1f897fce3248d777a4 04-Feb-2011 Todd Kennedy <toddke@google.com> Resolve build warnings; part 5

Remove dependence upon URIs for creating the host auth structure

Change-Id: I92dee36fa329a8976b76bbd4991ed3469c6475f2
ndroid/email/LegacyConversions.java
ndroid/email/VendorPolicyLoader.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/utility/Utility.java
ndroid/exchange/EasSyncService.java
c6d344ad2aab6bc46a87033af53d5a19a080e5f4 17-Feb-2011 Andy Stadler <stadler@google.com> Refresh email notifications (part I)

* Use strings that fit properly in new notifications
* General cleanups & rewrites from Roy
* Remove showWarningNotification() and use postAccountNotification()

This is part I. Part II will add dialogs triggered by some of these
notifications, to provide more explanation to the user of what's wrong
and how to fix it.

Bug: 3238657
Change-Id: Ib51bcb4412f8a09a6f97653f0b5f8642efe2ac1e
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
d75968acfb8da34c1927616a069a06f59c2ad101 16-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Adopt LruCache in Email's ContentCache."
3a5c1fb274a9ce72d708d88509bf2607cb018ddd 13-Feb-2011 Marc Blank <mblank@google.com> Email split, part neuf: Setup, logging, attachment glue

* Make "Exchange" option in account setup depend upon availability of the
Exchange EmailService
* Make presence of Exchange logging depend upon availability of the
Exchange EmailService
* Make AttachmentDownloadService use service rather than ExchangeService
class
* Move SSLUtils to emailcommon/utility
* Move account manager type defs to emailcommon/AccountManagerTypes
* Update proguard.flags
* This is the penultimate CL for the Email package itself; the next CL
creates a clean, SDK-compatible Email application

Bug: 3442973
Change-Id: I9162cf5fa6b5a043ded0fdd1e25fd3ce5948ad8f
ndroid/email/AccountBackupRestore.java
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SSLUtils.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapAuthenticatorService.java
ndroid/emailcommon/AccountManagerTypes.java
ndroid/emailcommon/Device.java
ndroid/emailcommon/utility/SSLUtils.java
ndroid/emailcommon/utility/Utility.java
ndroid/exchange/CalendarSyncEnabler.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/utility/CalendarUtilities.java
31d9acbf0623872f9d4a2b3210b5970854b654c7 12-Feb-2011 Marc Blank <mblank@google.com> Email split, part huit: Refactor constants, clean emailcommon

* There are three pieces to this CL (sorry):
1) Move and/or rename some constants into emailcommon
2) Move Utility to emailcommon, moving the few UI
related utilities back into Email (FolderProperties
and UiUtilities)
3) Remove all references to resources from emailcommon
* The three pieces relate in that, between them, they allow
the emailcommon static library to compile cleanly

Bug: 3442973

Change-Id: Ic5e3abaa2a1b36999e0b6653c6c2134ea1bd544f
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/AttachmentInfo.java
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/FolderProperties.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/MessagingExceptionStrings.java
ndroid/email/NotificationController.java
ndroid/email/Preferences.java
ndroid/email/RefreshManager.java
ndroid/email/SecurityPolicy.java
ndroid/email/SingleRunningTask.java
ndroid/email/StopWatch.java
ndroid/email/Throttle.java
ndroid/email/UiUtilities.java
ndroid/email/Utility.java
ndroid/email/VendorPolicyLoader.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/AccountsAdapter.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/ThreePaneLayout.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/data/ThrottlingCursorLoader.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
ndroid/email/mail/transport/DiscourseLogger.java
ndroid/email/mail/transport/LoggingInputStream.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapAuthenticatorService.java
ndroid/email/widget/EmailWidget.java
ndroid/emailcommon/CalendarProviderStub.java
ndroid/emailcommon/Logging.java
ndroid/emailcommon/TempDirectory.java
ndroid/emailcommon/internet/BinaryTempFileBody.java
ndroid/emailcommon/internet/MimeHeader.java
ndroid/emailcommon/internet/MimeUtility.java
ndroid/emailcommon/internet/Rfc822Output.java
ndroid/emailcommon/mail/Address.java
ndroid/emailcommon/mail/AuthenticationFailedException.java
ndroid/emailcommon/mail/CertificateValidationException.java
ndroid/emailcommon/mail/MessagingException.java
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/utility/AccountReconciler.java
ndroid/emailcommon/utility/AttachmentUtilities.java
ndroid/emailcommon/utility/LoggingInputStream.java
ndroid/emailcommon/utility/Utility.java
ndroid/exchange/CalendarSyncEnabler.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/SimpleIcsWriter.java
37500777f1ca2dc7a1f831b9f3af63cbe7b9d487 11-Feb-2011 Marc Blank <mblank@google.com> Email split, part sept: Configuration

* Add getConfigurationData api to AccountService; this allows clients
to get configuration-related data from the Email app
* We use this so that Exchange can determine whether alternative strings
should be used

Bug: 3442963
Change-Id: Ieea56e3416458dc57699b00c2fc062dfcf7abca9
ndroid/email/service/AccountService.java
ndroid/emailcommon/Configuration.java
ndroid/emailcommon/service/AccountServiceProxy.java
ndroid/emailcommon/service/IAccountService.aidl
ndroid/exchange/provider/ExchangeDirectoryProvider.java
32311cce0153fbb2708d871626a0797cc93b7e4e 10-Feb-2011 Todd Kennedy <toddke@google.com> Implement IMAP prefix support

We support two different ways for an IMAP prefix to be specified:
1. A text field on the IMAP configuration page. This is the most obvious to
the end user. It is also an explicit, manual configuration.
2. RFC2342 defines a NAMESPACE IMAP command to be able to query the prefix
from the IMAP server. This is an automatic configuration without any
user involvement (i.e. the UI will NOT change if a prefix is loaded in
this way)

If the user goes to the trouble of specifying a prefix, we will always honour
it instead of the namespace returned by the IMAP server -- even if the user's
configuration is wrong.

bug 1592696

Change-Id: I6b94c7aaac538f6cd9dc4694b0f1634e8c956bc1
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/imap/ImapConstants.java
ndroid/email/mail/store/imap/ImapResponseParser.java
92ab6db38dcf15f6935463845fc4fa749a292b3a 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Adopt LruCache in Email's ContentCache.

LruCache simply wraps LinkedHashMap for a better API.
Performance/hit rate should not be impacted.

Tracking bug: http://b/3184897

Change-Id: Icbac38d3cea5f8c522df7a883d8e74a8f3786b92
ndroid/email/provider/ContentCache.java
a7bc0319a75184ad706bb35c049af107ac3688e6 10-Feb-2011 Marc Blank <mblank@google.com> Email split, part six: EmailContent

* Moved EmailContent to emailcommon

Change-Id: Ib3db1bfcfe74554c0e5afd3cfce6d72f26e9aeb9
ndroid/email/AccountBackupRestore.java
ndroid/email/AttachmentInfo.java
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/AccountsAdapter.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/data/MailboxAccountLoader.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailContent.aidl
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapAuthenticatorService.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/ViewType.java
ndroid/emailcommon/provider/EmailContent.aidl
ndroid/emailcommon/provider/EmailContent.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/service/PolicyServiceProxy.java
ndroid/emailcommon/service/PolicySet.java
ndroid/emailcommon/utility/AccountReconciler.java
ndroid/emailcommon/utility/AttachmentUtilities.java
ndroid/emailcommon/utility/ConversionUtilities.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/CalendarSyncAdapterService.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailSyncAdapterService.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/PartRequest.java
ndroid/exchange/PolicyServiceDelegate.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/utility/CalendarUtilities.java
2193962ca2b3157e79f731736afa2a0c972e778a 10-Feb-2011 Marc Blank <mblank@google.com> Email split, part quatre: Move along, nothing to see here

* No code was harmed, er, changed in the making of this CL
* All that's happened is that code that is needed by both Email and
Exchange have been moved into emailcommon
* This required import changes to many files, which explains the
length of the CL

Change-Id: I4e12455ba057a4a8054fdbd0b578c73afa411c8a
ndroid/email/AttachmentInfo.java
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/EmailAddressValidator.java
ndroid/email/GroupMessagingListener.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/NotificationController.java
ndroid/email/RefreshManager.java
ndroid/email/Snippet.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/mail/Address.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/Body.java
ndroid/email/mail/BodyPart.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Fetchable.java
ndroid/email/mail/Flag.java
ndroid/email/mail/Folder.java
ndroid/email/mail/MeetingInfo.java
ndroid/email/mail/Message.java
ndroid/email/mail/MessageDateComparator.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Multipart.java
ndroid/email/mail/NoSuchProviderException.java
ndroid/email/mail/PackedString.java
ndroid/email/mail/Part.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/Transport.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeMultipart.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
ndroid/emailcommon/internet/BinaryTempFileBody.java
ndroid/emailcommon/internet/MimeBodyPart.java
ndroid/emailcommon/internet/MimeHeader.java
ndroid/emailcommon/internet/MimeMessage.java
ndroid/emailcommon/internet/MimeMultipart.java
ndroid/emailcommon/internet/MimeUtility.java
ndroid/emailcommon/internet/TextBody.java
ndroid/emailcommon/mail/Address.java
ndroid/emailcommon/mail/AuthenticationFailedException.java
ndroid/emailcommon/mail/Body.java
ndroid/emailcommon/mail/BodyPart.java
ndroid/emailcommon/mail/CertificateValidationException.java
ndroid/emailcommon/mail/FetchProfile.java
ndroid/emailcommon/mail/Fetchable.java
ndroid/emailcommon/mail/Flag.java
ndroid/emailcommon/mail/Folder.java
ndroid/emailcommon/mail/MeetingInfo.java
ndroid/emailcommon/mail/Message.java
ndroid/emailcommon/mail/MessageDateComparator.java
ndroid/emailcommon/mail/MessagingException.java
ndroid/emailcommon/mail/Multipart.java
ndroid/emailcommon/mail/PackedString.java
ndroid/emailcommon/mail/Part.java
ndroid/emailcommon/mail/Snippet.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/utility/ConversionUtilities.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/provider/GalResult.java
ndroid/exchange/utility/CalendarUtilities.java
8a574694606f0e5d781334d0d426fc379c51f3ed 09-Feb-2011 Marc Blank <mblank@google.com> Email split, part trois: AccountService

* Create AccountService.aidl and AccountServiceProxy in emailcommon
* Implement AccountService in email
* Use AccountServiceProxy in Exchange for account reconciliation,
notifications, etc.
* Move sync window constants into emailcommon
* Split attachment provider utilities and constants into emailcommon

Bug: 3442973
Change-Id: I89dce28b799b193243c07774dab65d830ae62775
ndroid/email/Account.java
ndroid/email/AttachmentInfo.java
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/AccountService.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/MailService.java
ndroid/emailcommon/service/AccountServiceProxy.java
ndroid/emailcommon/service/IAccountService.aidl
ndroid/emailcommon/service/PolicyServiceProxy.java
ndroid/emailcommon/service/SyncWindow.java
ndroid/emailcommon/utility/AccountReconciler.java
ndroid/emailcommon/utility/AttachmentUtilities.java
ndroid/emailcommon/utility/ConversionUtilities.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/PolicyServiceDelegate.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/utility/CalendarUtilities.java
9ba506c4dd498150555f6c59aa758f7467bf9236 09-Feb-2011 Marc Blank <mblank@google.com> Email split, part deux: PolicyService

* Split PolicySet from SecurityPolicy and move to emailcommon
* Define PolicyService that sync adapter services can use to
interact with the Email DPM administrator
* Implement PolicyServiceProxy for exchange
* Implement PolicyService in email
* Modify imports, references, etc. as required

Bug: 3442973

Change-Id: I92015e21f780a68754b318da89fbb33570f334a2
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/service/PolicyService.java
ndroid/emailcommon/service/IPolicyService.aidl
ndroid/emailcommon/service/PolicyServiceProxy.java
ndroid/emailcommon/service/PolicySet.aidl
ndroid/emailcommon/service/PolicySet.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
0d4fc55861ed4393aa82f124f2865695ef564641 09-Feb-2011 Marc Blank <mblank@google.com> Email split, part one: EmailService

* Create emailcommon package
* Move EmailService classes to emailcommon package
* Change references to aidl's to emailcommon package
* Add getApiLevel() command to EmailService

Bug: 3442973

Change-Id: Ic7d2115363cdff6ebb86c46650b0a5b2109b1c72
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceConstants.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/EmailServiceStatus.java
ndroid/email/service/IEmailService.aidl
ndroid/email/service/IEmailServiceCallback.aidl
ndroid/emailcommon/Api.java
ndroid/emailcommon/service/EmailServiceConstants.java
ndroid/emailcommon/service/EmailServiceProxy.java
ndroid/emailcommon/service/EmailServiceStatus.java
ndroid/emailcommon/service/IEmailService.aidl
ndroid/emailcommon/service/IEmailServiceCallback.aidl
ndroid/emailcommon/service/ServiceProxy.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
8cc2fc51014d1acaf4d3a2a89fed1cff6ad7b18a 08-Feb-2011 Todd Kennedy <toddke@google.com> Merge "Fix attachment mime type unit tests"
314a51cb1d5bc538f069b6b13d8dffd575a5cc44 08-Feb-2011 Makoto Onuki <omakoto@google.com> Refactoring widget

- Moved to com.android.email.widget
- Extracted nested classes to top-level classes
- Some small clean-ups.
- WidgetProvider and WidgetProvider$WidgetService are left in the original
package to keep compatibility with honeycomb (3.0) release.

This CL is supposed to be pure-refactoring. There should be no
functionality changes.

Change-Id: I37acaa24b6b488724750c0f33374b31fcc433f11
ndroid/email/provider/WidgetProvider.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/widget/EmailWidget.java
ndroid/email/widget/ViewType.java
ndroid/email/widget/WidgetManager.java
8586532f3ecb4dad4f25d82ad7d6ce345ced9bf1 08-Feb-2011 Todd Kennedy <toddke@google.com> Fix attachment mime type unit tests

Attachments with no extension and mime type of text/plain need to return the
mime type of "text/plain" instead of "application/octet-stream"

bug 3428076

Change-Id: I00452c908ac0672879d42f4ed9ee574e376eac9f
ndroid/email/provider/AttachmentProvider.java
d4cad2dae812e5b5e6f8ef83abbdbc06de6a03a8 07-Feb-2011 Andy Stadler <stadler@google.com> Merge "Remove all compatibility with pre-2.0 data"
433d500cb98029c0c1994b8aa341b890ae4df428 07-Feb-2011 Marc Blank <mblank@google.com> Merge "Show smart forward attachments in MessageCompose"
7d51b7a05ba07377e3df0b07c2aaa430a8b5bc42 06-Feb-2011 Andy Stadler <stadler@google.com> Remove all compatibility with pre-2.0 data

* Remove LocalStore (pre-2.0 mail database) and its unit test
* Remove UpgradeAccounts (converted pre-2.0 accounts to Provider)
* Remove FolderMessageList (receiver for pre-1.6 desktop shortcuts)
* Remove "upgrading" paths through LegacyConversions
* Clip out dangling references to everything above

Bug: 3292310
Change-Id: I5654d55a0879b00b05b63055b94651855a8ee3ef
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/Welcome.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/mail/store/LocalStore.java
5e39f90e9d4665713eba38586b08546f1d581adb 02-Feb-2011 Todd Kennedy <toddke@google.com> Resolve build warnings; part 4

Fix unchecked warnings

Change-Id: I872740fca4e5050e6ed2922eabc7e46e5e97ff3c
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/provider/EmailContent.java
ndroid/exchange/ExchangeService.java
8d8537cd2e39268e0fdcd019bc8b6c4572b7c520 02-Feb-2011 Todd Kennedy <toddke@google.com> Resolve build warnings; part 3

Fixes deprecation warnings

NOTE: This does not resolve hostauth deprecation; that will be fixed
in a separate CL.

Change-Id: I47115516da34effbf885615cb439c9d3e6f95b84
ndroid/email/LegacyConversions.java
ndroid/email/NotificationController.java
ndroid/email/Utility.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/CalendarSyncEnabler.java
ndroid/exchange/utility/FileLogger.java
44de127691c5e0d1479f1976c1d69d03ee21d94e 02-Feb-2011 Todd Kennedy <toddke@google.com> Resolve build warnings; part 1

Change-Id: I80ca98ef80a427229ab5feb41568e34b257f32ce
eetstra/jutf7/CharsetProvider.java
3aee641aab491a3da53364aafb9074ae69dd2212 26-Jan-2011 Jesse Wilson <jessewilson@google.com> Use a field rather than a superclass for ContentCache's cache.

This makes it easier for cache experiments to swap out the
LinkedHashMap for another cache.

http://b/3184897
Change-Id: Iacdb266e41f5a98efd9bb30bc09ff8fff5a0a5a9
ndroid/email/provider/ContentCache.java
9d8438e7e37e118ae1dcbdd077d2853491916e16 02-Feb-2011 Makoto Onuki <omakoto@google.com> am 1cedfc8e: am 6c15d943: Merge "Don\'t mix up loader managers" into honeycomb

* commit '1cedfc8e5c16c6331f4689f2fb5c81117958c987':
Don't mix up loader managers
1cedfc8e5c16c6331f4689f2fb5c81117958c987 02-Feb-2011 Makoto Onuki <omakoto@google.com> am 6c15d943: Merge "Don\'t mix up loader managers" into honeycomb

* commit '6c15d943c2a5b4bfb4178d85acf0f415cb2fd6af':
Don't mix up loader managers
6c15d943c2a5b4bfb4178d85acf0f415cb2fd6af 02-Feb-2011 Makoto Onuki <omakoto@google.com> Merge "Don't mix up loader managers" into honeycomb
d4df1cf65aea6df33fa17680457c28abd73bd543 02-Feb-2011 Makoto Onuki <omakoto@google.com> Don't mix up loader managers

- Don't use activity's LoaderManager in fragments. Fragments have their own
loader managers, and using the wrong one causes loaders won't get reset()
when the owner fragment gets destroyed().

- Don't destroy loaders by ourselves.

The combination of these two issues caused the problem where the loader
callbacks wouldn't get the reset event, which resulted in the adapter
holding a closed cursor.

Bug 3412079

Change-Id: Ib7441565ea69adb08eb74845b0996c7b8ae6f53b
ndroid/email/activity/MoveMessageToDialog.java
d26c138cb2ae857137fc0d3dbf62fac40ce018d4 01-Feb-2011 Marc Blank <mblank@google.com> am 4c0ae95f: am 73ba7150: Merge "Delete calendar properly on commanded wipe" into honeycomb

* commit '4c0ae95fbea959f15aef958814311f1f063134d2':
Delete calendar properly on commanded wipe
4c0ae95fbea959f15aef958814311f1f063134d2 01-Feb-2011 Marc Blank <mblank@google.com> am 73ba7150: Merge "Delete calendar properly on commanded wipe" into honeycomb

* commit '73ba71506a542ac6fd6463f2cf1efea1569bbcc4':
Delete calendar properly on commanded wipe
73ba71506a542ac6fd6463f2cf1efea1569bbcc4 01-Feb-2011 Marc Blank <mblank@google.com> Merge "Delete calendar properly on commanded wipe" into honeycomb
81d68b842ed5bb07aed05cfc57b0d99cd5910356 31-Jan-2011 Marc Blank <mblank@google.com> Delete calendar properly on commanded wipe

* CalendarProvider2 has unusual semantics for its delete operation on
Calendars; this caused the user's calendar NOT to be deleted when
the server commanded a wipe of calendar data. The result was
duplication of events after the subsequent resync

Bug: 3361000
Change-Id: I672034a7a444eb7ebdea60cd6dc66a31087cc6f7
ndroid/exchange/adapter/CalendarSyncAdapter.java
f1b510462fad73de1e7f7bfad2f0637c9cf65cd7 01-Feb-2011 Todd Kennedy <toddke@google.com> Fix ConcurrentAccessException in unit tests

The ContentCache is now an LRU cache. This means we must NOT access the cache
while using any iterator over the cache. In this case, we were calling get()
using an iterator of cache keys.

Change-Id: I2d1feabff7474b6f2a230b98f97df067ab7ccd9c
ndroid/email/provider/ContentCache.java
f33420e68f75c93ac8aa3c645c771c877c0b0b7c 31-Jan-2011 Makoto Onuki <omakoto@google.com> Message details: Show only one address per line

Also removed unused field from MessageViewMessageDetailsDialog

Bug 3372971

Change-Id: I8a6d87d006793c0099b380634217624bf9002ead
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessageViewMessageDetailsDialog.java
ndroid/email/mail/Address.java
2d6241e12393d2b741af9b8f1b76b14375eee008 01-Feb-2011 Andy Stadler <stadler@google.com> am 11070a53: am 275b89d9: am 927dbc7c: Don\'t send IMAP ID unless server supports it

* commit '11070a53970116a8216b8d83694041fe09560b91':
Don't send IMAP ID unless server supports it
11070a53970116a8216b8d83694041fe09560b91 01-Feb-2011 Andy Stadler <stadler@google.com> am 275b89d9: am 927dbc7c: Don\'t send IMAP ID unless server supports it

* commit '275b89d96949de6544c7bca999e241f659cf18b3':
Don't send IMAP ID unless server supports it
927dbc7c20072939fd0ebdf4cc89301a41d075c2 01-Feb-2011 Andy Stadler <stadler@google.com> Don't send IMAP ID unless server supports it

Only send IMAP ID to servers that include ID in the CAPABILITY response.
Always sending IMAP ID was found to cause problems with some servers.

Better compliance with RFC 2971.
Thanks to Samsung for debugging & reporting this.

Change-Id: I495f80949f9f811470853a1f2f8e506d8236d8cf
ndroid/email/mail/store/ImapStore.java
295297581c8af9b6ee0a41487b7fded08739890c 31-Jan-2011 Makoto Onuki <omakoto@google.com> Supress log from RefreshManager

Bug 3404747

Change-Id: I3c0d4d513c7ebb640630a21b626c1515520c0bed
ndroid/email/RefreshManager.java
db0a601714a311ccbf7b6e780b80d8e5318df848 27-Jan-2011 Todd Kennedy <toddke@google.com> DO NOT MERGE Ensure foreground colour is set during drag

At any time, it's possible for the framework to recycle views. Normally it's
not an issue, however, during drag-n-drop a view with "unavailable drop
target" foreground colour may be reused. We need to ensure that the foreground
color is always set.

bug 3398330

Change-Id: I7be9bf8487e0062cf2335476fd971592f33baa09
ndroid/email/activity/MailboxListItem.java
5c7ffc91a5d10cc7a7c62c1e7f7c08b896ac4884 31-Jan-2011 Paul Eastham <eastham@google.com> am c34e4eec: am 04d3f014: Merge "Remove STOPSHIP" into honeycomb

* commit 'c34e4eecf1450b20e804297741507d1edc044d0f':
Remove STOPSHIP
04d3f0144783641dcb4e4c2703663d166b7f88a9 31-Jan-2011 Paul Eastham <eastham@google.com> Merge "Remove STOPSHIP" into honeycomb
c22d2a2828c35eb02f2a2ea3f19d67c26ad84b35 31-Jan-2011 Justin Ho <justinho@google.com> am 92c41d58: am a5ba0daa: Merge "New Email launcher icon, deprecating old asset Bug: 3362749" into honeycomb

* commit '92c41d587a840672722ac693e79d8c52e6f4497c':
New Email launcher icon, deprecating old asset Bug: 3362749
5f10938fd4749313e2029c7deede30bae2c2dccf 31-Jan-2011 Andy Stadler <stadler@google.com> Remove STOPSHIP

Bug: 3396875
Change-Id: I0d57922def86dc48abb2a8a47c9358115dddb9fd
ndroid/email/activity/setup/AccountSettingsUtils.java
a5ba0daac392ecfab9db6ae5c96d1a2c1a267b32 31-Jan-2011 Justin Ho <justinho@google.com> Merge "New Email launcher icon, deprecating old asset Bug: 3362749" into honeycomb
34512ba6303bdce1b7699bbd3c645ff9eb1692e1 30-Jan-2011 Andy Stadler <stadler@google.com> am 809cd769: am 0e3a0331: Widget: Max out message count at 999+

* commit '809cd769390aa503ad90e5b8bce1594f92a2479f':
Widget: Max out message count at 999+
0e3a03317b1aebd168fb1bf41b3656e7dc6a1c89 30-Jan-2011 Andy Stadler <stadler@google.com> Widget: Max out message count at 999+

Bug 3403158

Change-Id: I1daf0c62684bad83a69e19c39ffe1b8df899d077
ndroid/email/Utility.java
ndroid/email/provider/WidgetProvider.java
b5b8e568e260cde8c2b6d42a01b96dd80a74d469 29-Jan-2011 Justin Ho <justinho@google.com> New Email launcher icon, deprecating old asset
Bug: 3362749

Change-Id: Idb876f38588a9c5d2b4b3c04dbf4dbca082c1618
ndroid/email/activity/AccountShortcutPicker.java
a86265e8e5e72c61a0eafd966ca02b8438c10798 29-Jan-2011 Marc Blank <mblank@google.com> am 9a09129d: am 1122e0f6: Merge "Remove cache statistics logging" into honeycomb

* commit '9a09129d0928712ad84a11027812ff0a63afed4a':
Remove cache statistics logging
1122e0f64402a33fad7652fe58d42001df5b4aaf 29-Jan-2011 Marc Blank <mblank@google.com> Merge "Remove cache statistics logging" into honeycomb
f40294e1aac1f7cd92c02d8a39edc40676fe3c55 28-Jan-2011 Marc Blank <mblank@google.com> Remove cache statistics logging

* Use static final flag to control this
* Set flag to false for all commits

Bug: 3403725
Change-Id: I70c89aaf2f0b226206e505a14e9a8f1ed2ebb51a
ndroid/email/provider/ContentCache.java
943e02c97d267e684d44e705d966fee700ff3643 28-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Add debug setting for one-minute refresh"
5907d39d2b34b1b4ab3c1ef32b5b42ead97ec3ef 27-Jan-2011 Makoto Onuki <omakoto@google.com> Add debug setting for one-minute refresh

Bug 3377054

Change-Id: I7843fe82d66ab7896b8293b2fa16ca73f6711595
ndroid/email/Preferences.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/service/MailService.java
d07a2312b7c0af9f8bffb397f98825c65bb7d924 28-Jan-2011 Marc Blank <mblank@google.com> Merge "Make ContentCache LRU, rather than LRI"
50c7d755a70895cfaa927e52c23bf0b0d2512797 28-Jan-2011 Marc Blank <mblank@google.com> Make ContentCache LRU, rather than LRI

Bug: 3403111
Change-Id: I12993a8185db1bebe760f8bd1a8d22683bcdddc3
ndroid/email/provider/ContentCache.java
3592da67cdcfce928105640464371b4174596cd4 28-Jan-2011 Andy Stadler <stadler@google.com> am 57fa4995: am c8f1c814: Merge "Prevent NPE in account deletion race condition" into honeycomb

* commit '57fa4995c27ef9b186b61866b6a1c65f162a93e0':
Prevent NPE in account deletion race condition
188ad2d5baef1c64423e82fde5fe14d748450298 28-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> am 188a07a0: am fc902559: Merge "Transferring display name logic to GAL provider" into honeycomb

* commit '188a07a0335a81087729b99a1234d0ccd9e3031a':
Transferring display name logic to GAL provider
c8f1c814cd7dbdb7ed3dffe0ec8a096713ee4d08 28-Jan-2011 Andy Stadler <stadler@google.com> Merge "Prevent NPE in account deletion race condition" into honeycomb
9c44430690afdb4634d100e35f1b040705a34f3d 28-Jan-2011 Makoto Onuki <omakoto@google.com> Fix AttachmentDownloadService for remove-exchange script

Now the source at least compiles fine.

Change-Id: I329ad08f81fd6ab23f28dd30023fe3e781ccc4fc
ndroid/email/service/AttachmentDownloadService.java
04c4ae864fb0df88b9bc41e85a72062c12540d81 28-Jan-2011 Andy Stadler <stadler@google.com> Prevent NPE in account deletion race condition

Bug: 3399372
Change-Id: Ic41fb1292f8cc2e5ceb120e7233229dc4e47f1eb
ndroid/email/activity/setup/AccountSettingsXL.java
eb73f28d1a757998b3fb1704ed950d6e80b3b539 27-Jan-2011 Todd Kennedy <toddke@google.com> Ensure foreground colour is set during drag

At any time, it's possible for the framework to recycle views. Normally it's
not an issue, however, during drag-n-drop a view with "unavailable drop
target" foreground colour may be reused. We need to ensure that the foreground
color is always set.

bug 3398330

Change-Id: I21acd04584a122c19219f3abb6690bb231bad3a6
ndroid/email/activity/MailboxListItem.java
fc902559c491542449c6e3f31c41562e6861bd2b 27-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Merge "Transferring display name logic to GAL provider" into honeycomb
1a8feddd22b777da53baac368077efcc0ac12719 27-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Transferring display name logic to GAL provider

Bug: 3396886
Change-Id: Ice4da9fd4189387a31d3a5d44ec4dc49bff938da
ndroid/exchange/provider/ExchangeDirectoryProvider.java
fe9db1783117a4942efbc71da8a1538ec25bf33d 27-Jan-2011 Marc Blank <mblank@google.com> Show smart forward attachments in MessageCompose

Bug: 3367188
Change-Id: I59dae9781be59eebe3a68769138e8253a24455e6
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/provider/EmailContent.java
09aae75f4e37c3197c6f8d3f046b15c71534d1f0 27-Jan-2011 Andy Stadler <stadler@google.com> Fix account list after deleting accounts

* After deleting an account, we need to actually update
the list of known accounts - it's not sufficient to simply
rebuild the headers with one account marked deleted.
* Also remove a couple of obsolete TODO's

Bug: 3382965
Change-Id: I1aa6d88f869f0192b564b538817381efdc5fffe0
ndroid/email/activity/setup/AccountSettingsXL.java
999199d49a23b4d88efb8619c3538fede6149e23 27-Jan-2011 Andy Stadler <stadler@google.com> Merge "Remove STOPSHIPs and a bit of debug logging" into honeycomb
1fc9b6b5c3b8b3212fe9146fbe10f046503124e4 27-Jan-2011 Andy Stadler <stadler@google.com> Merge "Add "tap to configure" text to widget" into honeycomb
c540b57263250b961a29b26f367b10295ab2f4aa 27-Jan-2011 Andy Stadler <stadler@google.com> Remove STOPSHIPs and a bit of debug logging

Bug: 3396875
Change-Id: I3e874e28c3412aadd9851000a83d69fc8c06aeb9
ndroid/email/activity/MailboxListFragment.java
610bbaee422b8638724bf98c6cecbf3035b018ad 27-Jan-2011 Marc Blank <mblank@google.com> Merge "Fix NPE in SecurityPolicy.policiesRequired" into honeycomb
844b14f851ce748b7b204125264bb3343c1a9039 27-Jan-2011 Marc Blank <mblank@google.com> Fix NPE in SecurityPolicy.policiesRequired

* Add check for null Account, as this method can be called from a
background thread, and the Account might have been deleted by the
time we're called

Bug: 3396365
Change-Id: Ie125ed714c73d51beaedc818b6b731cea941666f
ndroid/email/SecurityPolicy.java
6c5ee59c4fcd5cb2992a53234245df8faeaf8a5d 26-Jan-2011 Todd Kennedy <toddke@google.com> Add "tap to configure" text to widget

If there are no email accounts defined, the widget should show a single string
that allows the user to create a new account. Whenever there are changes to
the defined accounts, the widget(s) will update their headers to ensure they
are only displaying valid information.

bug 3296594

Change-Id: I156c20cfc90692174297a2aededd85775e0ea196
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/Welcome.java
ndroid/email/provider/WidgetProvider.java
ndroid/email/service/EmailBroadcastProcessorService.java
a7f49a7c0b4a67b4dc7d306a646a5b1e15a808c8 27-Jan-2011 Todd Kennedy <toddke@google.com> Update icons with latest drop from UI

Change-Id: Ic23f1bee28c8aef1974225f9c03edc92c845f8c7
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageViewFragment.java
199a0601aef47fed41ee05e2bcf414fc1001ab2a 27-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Fix bug where mailbox list won't update in combined view" into honeycomb
382478547eaf3e7300d79ff45518a99ad60ca53d 27-Jan-2011 Andy Stadler <stadler@google.com> Merge "Protect against threading issues in AttachmentDownloadService" into honeycomb
ed9938cd9caf4937eadb3e35333e2fe2b157bde5 26-Jan-2011 Marc Blank <mblank@google.com> Protect against threading issues in AttachmentDownloadService

Bug: 3391148
Change-Id: I513b5678815db262ea5660661336432f1e203c9e
ndroid/email/service/AttachmentDownloadService.java
3735cd4256331a93fb3971b2359a8978ba2b3995 27-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Make account name on action bar narrower" into honeycomb
d0ee1e404db67a238d7017fb77757a0ffb2a4a1b 26-Jan-2011 Makoto Onuki <omakoto@google.com> Fix bug where mailbox list won't update in combined view

The problem was that CombinedMailboxesLoader used the cursor returned by
super.loadInBackground() (which contains accounts), to build a matrix
cursor (which contains special mailboxes and accounts and will be returned),
and *it closed the first cursor* after building the matrix cursor.

However, because this first cursor is the one that CursorLoader sets an
observer, it shouldn't be closed until the returned matix cursor closes.
In other words the two cursors should have the same lifecycle.

Fixed it by using ClosingMatrixCursor that used by AccountsLoader, which
is doing a similar thing, but properly.

Bug 3387730

Change-Id: I554ade001dc25afa869eefb4dcf9887495e6753e
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/data/ClosingMatrixCursor.java
3af94be47732e200dec5e5c8c78cec02ff27445f 26-Jan-2011 Makoto Onuki <omakoto@google.com> Make account name on action bar narrower

... to give the mailbox name more space. Otherwise it can be too
small in portrait.

Bug 3387730

Change-Id: I0301fd696dc2c4dfa3654a235b9e95aa7db4b885
ndroid/email/activity/AccountSelectorAdapter.java
f020910461908681978a9e0f8f98b748853b0e39 26-Jan-2011 Andy Stadler <stadler@google.com> Fix Account Manager integration

* Rework the interaction with the Account Manager
* Remove unneeded call to response.onRequestContinued()
* Store response in SetupData so it can survive the entire account
setup flow.
* Explicitly report exit status to acct mgr at known exit points:
* AccountSetupBasics.finish() (fail/cancel)
* AccountSetupOptions.finish() (fail/cancel)
* AccountSetupOptions.optionsComplete() (success)

Bug: 3335128
Change-Id: Ia55724eb1e938f2633c5ff7afb719a879be16a1b
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/SetupData.java
a97faa25ac3265209b50d4534b4c2b41cd211e5c 26-Jan-2011 Andy Stadler <stadler@google.com> Discard result of Dupe Account check if paused

Fixes a potential race condition with a slow DB lookup and a
fast user (or monkey).

Bug: 3384992
Change-Id: I0602820e1d9f49eb01b09c9d78db3d0fc47ccfb1
ndroid/email/activity/setup/AccountSetupBasics.java
da75871620f9312831e4bca841ab31dfbac63710 26-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Make the refresh button animate in-place." into honeycomb
51c82280939c2736d6e1a02fca6cf5f5446b8b70 26-Jan-2011 Marc Blank <mblank@google.com> Merge "Ensure that EAS reconciler uses current account list" into honeycomb
484d220b6e02753f2e616277b26d9555231d95a6 25-Jan-2011 Makoto Onuki <omakoto@google.com> Make the refresh button animate in-place.

Turn the refresh button into an indeterminate progress icon
while refreshing.

Bug 3388138

Change-Id: Ic0406ff5b857243c3e1e475ddb8b305441eddbb0
ndroid/email/activity/MessageListXL.java
2d0e44f201f4f50e3e3416285805c8f28d1d6ed8 26-Jan-2011 Makoto Onuki <omakoto@google.com> Fix NPE in AttachmentDownloadService

Initialize mConnectivityManager before starting the thread.

Bug 3389701

Change-Id: If616721ad3b3bec81c5d6920f4a5d91b06f937fb
ndroid/email/service/AttachmentDownloadService.java
da0225cfd9d66098a6f6b14dcc147d16f1ce7c3e 26-Jan-2011 Marc Blank <mblank@google.com> Ensure that EAS reconciler uses current account list

Bug: 3369380
Change-Id: I00f18f0848232ea90149fb6e243f147d0e6f5c0f
ndroid/exchange/ExchangeService.java
61e63111ba71b7f70f76079812dfc858b398fa80 25-Jan-2011 Makoto Onuki <omakoto@google.com> Show account name on error banner

For now just show the account name in parens. I'll ask the design
team for a better layout.
(I don't want to change code too much at this point, so didn't add a
new view for the account name.)

Bug 3366546

Change-Id: I3a5314be4bdfacc2720093511eb03571e91fa963
ndroid/email/activity/MessageListXL.java
adbd22c9bed1e45e26130f32a684aa29676537dc 25-Jan-2011 Todd Kennedy <toddke@google.com> Merge "Infer attachment's mime type if it's text/plain" into honeycomb
b3740d227ee0eede878d97654d180f781d591da0 25-Jan-2011 Todd Kennedy <toddke@google.com> Merge "Only show loaded messages in widget" into honeycomb
34212cc7df317a058a3f9860fc0e7de508cb7120 25-Jan-2011 Todd Kennedy <toddke@google.com> Infer attachment's mime type if it's text/plain

If the server reports an attachment's mime type as either text/plain or
application/octet-stream, we will try to infer the real mime type using
the attachment's extension. If one cannot be found, we either synthesize
it (if original mime type is application-octet-stream), or, we use the
server specified mime type (if the original is text/plain).

bug 3379416

Change-Id: I331e767ed36e4e17756025cc816bdb7b5a8f0868
ndroid/email/provider/AttachmentProvider.java
543953ad87a12d251fcec82c57d00383225b4149 24-Jan-2011 Todd Kennedy <toddke@google.com> Only show loaded messages in widget

The various selection strings were missing a test to only show messages that
have been loaded. This is only important for POP3 accounts.

bug 3377041

Change-Id: I3efe366d09dd547878dc0bf57dff58f76de5cca9
ndroid/email/Utility.java
ndroid/email/provider/EmailContent.java
9128217da1f8ae53f1c44f369934ff075ae5057b 25-Jan-2011 Andy Stadler <stadler@google.com> Merge forward small bug found in password storage

While fixing bug 2981433 in Gingerbread, I discovered one additional
place where passwords were being trimmed. This brings the fix forward
into honeycomb, as well as a new unit test for the fix.

Bug: 2981433
Change-Id: I566f5c0c6693ca7c0069bca9e74f320fca48e600
ndroid/email/provider/EmailContent.java
24a81185d1006a95b96561bfd5bc3f8c5669bdcb 25-Jan-2011 Andy Stadler <stadler@google.com> Merge "Catch base64 errors and handle in-place" into honeycomb
3ef8f54bae6a3e02919cfd7add7ed6bf7fdda901 25-Jan-2011 Marc Blank <mblank@google.com> Prefetch respects "background data" setting and waits for connectivity

Bug: 3384997
Bug: 3384994
Change-Id: Id8338650b69666f2996837324e27c2e98c9261fe
ndroid/email/EmailConnectivityManager.java
ndroid/email/service/AttachmentDownloadService.java
980c2256f17309d778431ce9dd2687ebc62fe800 25-Jan-2011 Andy Stadler <stadler@google.com> Catch base64 errors and handle in-place

Bug: 3362752
Change-Id: I63adb8663c90a7710176cc1c481bbfa5b4b859c4
ndroid/email/Email.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/store/ImapStore.java
751e4b2d9509b63bcdd3c8780afa82b67b99d7d4 21-Jan-2011 Todd Kennedy <toddke@google.com> Prevent auto-download of attachments not in an inbox

When creating the list of attachments to be automatically downloaded in the
background, exclude any attachments that are not in an inbox. Also added unit
tests to ensure the query URIs behave as expected.

NOTE: This is a partial fix for general background attachment downloading issues

bug 3373982

Change-Id: I13ef56cd280c028fa966ab9e655acce28b0b9b91
ndroid/email/provider/EmailContent.java
ndroid/email/service/AttachmentDownloadService.java
4fd1ebdcc3b8b1389c65e485d73cd5a98616cf17 24-Jan-2011 Andy Stadler <stadler@google.com> Fix multiline mode in signature

* Add multiline flag to preference xml
* Also, remove display of actual signature in summary, as it
does not properly handle long or multiline signatures.

Bug: 3379235
Change-Id: I84894dbdccee2cd8a8ece05d0b8f7fdcf7b92406
ndroid/email/activity/setup/AccountSettingsFragment.java
3dc2fcaac356d2e3866c860199e1d51a8a087f98 24-Jan-2011 Andy Stadler <stadler@google.com> Merge "Rework account security bootstrap procedure" into honeycomb
45bfac00e58059eed71fd22e2767c8e0437b6251 24-Jan-2011 Andy Stadler <stadler@google.com> Rework account security bootstrap procedure

* Bug to fix was that it was looping if the user canceled
password or encryption setup (instead of simply re-notifying.)
* Solution was to refactor all code into a single sequence of checks,
rerun the sequence each time, and set markers to prevent looping.
* Rework needed after the changes in I54f39bc9 which added
encryption support but introduced the looping behavior.
* Removed a UI-thread DB access

Bug: 3346641
Change-Id: I0791d7a16287efecc7121b5ffa0db26ca2b05151
ndroid/email/activity/setup/AccountSecurity.java
819db01eadc3a95b02b2f820b483056b68c631f0 21-Jan-2011 Todd Kennedy <toddke@google.com> Limit attachment background download attempts

Do not retry downloading attachments infinitely. After some number of failures,
black list the attachment and move on. The black list is not persisted, so,
restarting the app will again try to fetch the attachments. In this way, any
transient network failures will not permanently affect the ability to download
attachments in the background

NOTE: This is a partial fix for general background attachment downloading issues

bug 3373982

Change-Id: I7f3ad9667ebebb95fbba95278b62bf40c5fce67c
ndroid/email/service/AttachmentDownloadService.java
5150d0e818174453656069eeb4f282b6293b0abc 24-Jan-2011 Marc Blank <mblank@google.com> Merge "Don't require sSyncLock for sync error map" into honeycomb
d6fbab1e7a51852f13c343e8a0325f81c19d98c5 24-Jan-2011 Marc Blank <mblank@google.com> Merge "Prevent logging about "attachment with null contentUri"" into honeycomb
2b59ecaebcc8012d307080f3f345692fa94e679e 23-Jan-2011 Dianne Hackborn <hackbod@google.com> Remove use of old theme name.

Change-Id: I0a08171b3068abeb57c973074b37aaf3c87ff001
ndroid/email/activity/MoveMessageToDialog.java
04cf5e4bdf091f490f2e3bfb40f80bab44a05e25 23-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "AttachmentProvider: Always return mime-types in lowercase" into honeycomb
1264651c69da9a6389de40c49f61e28873b4d07d 22-Jan-2011 Marc Blank <mblank@google.com> Prevent logging about "attachment with null contentUri"

Bug: 3373982
Change-Id: I41b655041d5c244484435fe5bab7649d9ca569eb
ndroid/email/AttachmentInfo.java
2fabab32b90a7a01b72ec69cee48192bd880aab0 22-Jan-2011 Marc Blank <mblank@google.com> Don't require sSyncLock for sync error map

* Use ConcurrentHashMap; check that this provides enough protection
for all uses
* This resolves known deadlock issues in ExchangeService

Bug: 3371039

Change-Id: Ie4ccbe7cdfe8c3d4ec7a0f789409126c8c09f8c4
ndroid/exchange/ExchangeService.java
f92dd2bf3ea445db9b9a0eb9a447b5cbdb1a6e05 21-Jan-2011 Todd Kennedy <toddke@google.com> Don't display toast for background download failures

When downloading attachments in the background, do not display any errors
on the display.

NOTE: This is a partial fix for general background attachment downloading issues

bug 3373982

Change-Id: I874ed902bde293303e10308f38b992b2bb15b6aa
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/IEmailService.aidl
ndroid/exchange/ExchangeService.java
6833fd5ab6c1e23c0bf2005dec2950796a040781 21-Jan-2011 Makoto Onuki <omakoto@google.com> AttachmentProvider: Always return mime-types in lowercase

Intent-filter's mime-type matching is case-sensitive. We should always use
lowercase letters.

Bug 3375709

Change-Id: Idd4abb41f94c816a5b9150aef5859dd75487a042
ndroid/email/provider/AttachmentProvider.java
d5c6717eeb816fac19fbab0fe900cb78ca18ae63 21-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Compose: Make sure to unhide CC if not empty for reply-all" into honeycomb
0a7d214b27ff9a7ef2c1aa9348c65c7959db6dcb 21-Jan-2011 Marc Blank <mblank@google.com> Merge "Delete attachment if there's no corresponding message" into honeycomb
3784b28aa6e19f5582e5d0a90df74be3f3461bb2 21-Jan-2011 Makoto Onuki <omakoto@google.com> Compose: Make sure to unhide CC if not empty for reply-all

Bug 3376821

Change-Id: Ieec04881843717fea55cec8efbf35757042c8d2a
ndroid/email/activity/MessageCompose.java
2ac18339439631f2539a4cd35056b8ae65d5a24f 20-Jan-2011 Marc Blank <mblank@google.com> Delete attachment if there's no corresponding message

Bug: 3372440
Change-Id: I5c3653c5f27e0aa7bab52ca0d979e14bb6bafc34
ndroid/email/Controller.java
ndroid/email/service/AttachmentDownloadService.java
7093746dd5017b1dacb726eb7b083922de15612e 21-Jan-2011 Makoto Onuki <omakoto@google.com> Don't modify content URI to non-email providers

The "?limit=" param is only supported by EmailProvider, so don't add
it to other URIs.

Doing so causes a permission error when opening an EML attachment on gmail,
because we're granted the permission only to the passed URI, but not to
the URI with the "?limit=" param.

Bug 3371630

Change-Id: I88fff88a7e48e5bc958124eedec3e592978a40c7
ndroid/email/Utility.java
554ad3447570751a2b311624a7ddfbae86253f97 20-Jan-2011 Marc Blank <mblank@google.com> Merge "Respect email sync setting" into honeycomb
6c9911e3fbea6b975ecbd276c879e150efc29a8a 20-Jan-2011 Marc Blank <mblank@google.com> Merge "Strip content of the "head" tag" into honeycomb
9dc8ba5cad18e38be4cb525defed7c4a9c161121 20-Jan-2011 Marc Blank <mblank@google.com> Strip content of the "head" tag

Bug: 3285281
Change-Id: I1183697ad09fbf8740e3529fecfa59cf6650b2f9
ndroid/email/Snippet.java
02ba344cf2489dba81058e25e3202f2898360083 20-Jan-2011 Todd Kennedy <toddke@google.com> Only show messages from inbox for account & unread views

Use a sub-selection to limit the messages from the inbox. Also add a unit
test to ensure the selections are working correctly.

bug 3368613

Change-Id: Ia24ef6028ded27c69f982ecbc6b67f35f84d1b6d
ndroid/email/provider/EmailContent.java
ndroid/email/provider/WidgetProvider.java
f24b1a6f3fa377ed4af1d3b11e028b0ccc2e6165 20-Jan-2011 Marc Blank <mblank@google.com> Respect email sync setting

Bug: 3362586
Change-Id: I585abcec95a668d04d37886b98a6a0b66a0fae4e
ndroid/exchange/ExchangeService.java
75e508a794a61a1f96ff30f8833f00c0e05bd379 20-Jan-2011 Andy Stadler <stadler@google.com> Merge "Cleanup account name, user name, and summary" into honeycomb
373ccb10377fdebdac7c3fbc96c6e592a1c1d8fb 20-Jan-2011 Andy Stadler <stadler@google.com> Cleanup account name, user name, and summary

* In AccountSetupNames:
* Add "Field required" error tag to Names display
* In AccountSettings:
* Improve IME behavior in text fields - auto-capitalization
* Prevent empty username
* Reset empty nickname back to default (email address)
* Fix broken hint for signature
* Proper trimming in all fields

Bug: 3338435
Change-Id: I2720c4524303ada6dd228866756fc9c3aac173f3
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ecffd551cc2a9dc6813effbfc9d21f2b3825a5b5 20-Jan-2011 Andy Stadler <stadler@google.com> DO NOT MERGE Remove all password trim() calls

* Initial account setup screen, password entry field
* When passing the entered password from incoming->outgoing
* When restoring store URI's from HostAuth

This will satisfy the users who insist on leading/trailing spaces
in their IMAP or EAS password. Not supported by POP3 (no quoting).

Bug: 2981433
Change-Id: I16c00bf96382899abb54cb75fcd44cf0f140a660
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/provider/EmailContent.java
41e1c81b811b4044258753eff69900c3fbe9f1e4 20-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "App icon on app drawer shouldn't restart the app" into honeycomb
6bbc689efcb33c74129493e7097aa4a485a7d7c1 19-Jan-2011 Todd Kennedy <toddke@google.com> Implement final drag & drop spec

Current specification calls for the following:
* Droppable targets: do nothing
* Not droppable targets: grey text (hex #999999)
* Hover over droppable: use label/folder list pressed state
* Hover over not droppable: do nothing
* Destructive targets: background (hex #f10000)

We need to copy the resource from the framework as there is no supported way to
fetch the pressed state drawable during runtime. Adam filed bug 3370043 so we
can specify a drag target state directly in the selector.

bug 3154986

Change-Id: Ifd5c24a3dc46b5a1c64a149904657dda297ed047
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MessageListFragment.java
c0a8b2cfb05f91e6f18c587a2698b9f8c226ba55 20-Jan-2011 Marc Blank <mblank@google.com> Merge "Implement checks before performing background attachment download" into honeycomb
475c20d3a883737853aa7301cc649736a36387c5 20-Jan-2011 Marc Blank <mblank@google.com> Implement checks before performing background attachment download

Bug: 3339007
Change-Id: I36a8359f3478c37b2ccd6a0cf0381569c592061a
ndroid/email/AttachmentInfo.java
ndroid/email/service/AttachmentDownloadService.java
b3412d7f5e1356f92d2ed4a6a9ed1f3313d3d058 20-Jan-2011 Andy Stadler <stadler@google.com> Merge "Handle leading/trailing space in passwords" into honeycomb
858c2822777f74947e81476125590ad06bfe4803 20-Jan-2011 Andy Stadler <stadler@google.com> Handle leading/trailing space in passwords

* Allow, but provide warnings via EditText.setError()
* Remove one last instance of password trim()

Bug: 2981433
Change-Id: I406a4f8b8f27cc5ce90424a8cafe88a677e72f45
Signed-off-by: Andy Stadler <stadler@google.com>
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
0c75f83f03b3ef8e54163cba2d67ba086cf8af58 20-Jan-2011 Makoto Onuki <omakoto@google.com> App icon on app drawer shouldn't restart the app

When launching Welcome and MessageListXL, make sure they start
as a "main" activity. This fixes the reported bug.

Bug 3366537

Change-Id: I68facd739bd1dad8eeec52015b0720299d632e11
ndroid/email/Utility.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/Welcome.java
a33c0c74cc5fd5230b555bd1311ba92fb5d81d22 19-Jan-2011 Todd Kennedy <toddke@google.com> Revert string name change

to prevent churn for the translators, revert the string name change

Change-Id: I22710d810a5f3602ccd53a9cb4d2f31edca572f1
ndroid/email/provider/WidgetProvider.java
238b9f28263a70daf705f2738c734f649ff6bcc9 20-Jan-2011 Marc Blank <mblank@google.com> Merge "Split out AttachmentInfo into its own top-level class" into honeycomb
3a761c8038173efe42e67cd9d48a95b059427f0f 18-Jan-2011 Marc Blank <mblank@google.com> Split out AttachmentInfo into its own top-level class

* Determine load state and allowability of view/save in constructor
* Extend AttachmentInfo in MessageViewFragmentBase to include views,
buttons, etc. and to add extra requirements for view/save as
needed (e.g. availabilty of external storage)

Change-Id: I2ce2b4e71fd784ef0329e391cc0e2d1639f8273c
ndroid/email/AttachmentInfo.java
ndroid/email/activity/MessageViewFragmentBase.java
e539a1973ee6d71e2386b98c88bc6ec989dd5647 19-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Dump widget state to bugreport" into honeycomb
dc200a44a92013d2d1fd2b22ae857389fa95d5ca 19-Jan-2011 Makoto Onuki <omakoto@google.com> Dump widget state to bugreport

This might be helpful someday...

Change-Id: I5a9e0a2948c7ea9fa5c9a7da61d143c10dda7d9a
ndroid/email/provider/WidgetProvider.java
4911af8879969488120836959f72ae30a94534ac 19-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Compose: Make the EditTexts easy to focus on" into honeycomb
8ac207f2987e50622b7c89b875db56e089c1a05b 19-Jan-2011 Makoto Onuki <omakoto@google.com> Compose: Make the EditTexts easy to focus on

- Now tapping these To/Cc/Bcc/Subject labels moves the focus to
the corresponding edittext.
- Tapping the bottom part of the screen moves the focus to the
main EditText.
- Also use paddings instead of margins for the main EditText, to
expand the hitarea.

Bug 3366831
Bug 3367100

Change-Id: I9b5d18dcc9d7802bfcbd0160befcb008c784d9f7
ndroid/email/activity/MessageCompose.java
be6910e7a40b4bffb7e917ffa89c539733545548 19-Jan-2011 Andy Stadler <stadler@google.com> Merge "Properly handle unsupported encryption policy" into honeycomb
a0d080558ff06f88f000cf424803c8241dd8d2eb 19-Jan-2011 Andy Stadler <stadler@google.com> Properly handle unsupported encryption policy

* This fixes the case of:
* a device that does *not* support device encryption
* connecting to an account that *does* require device encryption
* but also supports "non-provisioned devices" (making the encryption
requirement optional.)
* Added unit test

Bug: 3367191
Change-Id: I894e68c4119a102dad02d2e0815fccdae1e87189
ndroid/email/SecurityPolicy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
3db3e4b795c08122d1c9d4fc105150231795448b 19-Jan-2011 Todd Kennedy <toddke@google.com> widget combined inbox view only shows messages in inbox

instead of showing all messages (e.g. messages in drafts, etc...) the "combined
inbox" view now only messages in the inbox folder. This is now identical to
the "combined inbox" view available in the full email UI.

bug 3368613

Change-Id: I0080b56cd2718a3dce82b279277c63c4f43e86dc
ndroid/email/provider/WidgetProvider.java
a5de96be71610c6ad8c9b28554466bf4c09862f9 19-Jan-2011 Todd Kennedy <toddke@google.com> Merge "Update widget colours / assets according to spec" into honeycomb
0324017aa0a02b6b8381da00eaeb4a78879bb034 19-Jan-2011 Marc Blank <mblank@google.com> Fix another case of HTML leakage in snippets

* Add test for this case

Bug: 3285281
Change-Id: If45d33624ac5dbd16d28b45428be29e5a8c51046
ndroid/email/Snippet.java
290fb65595e08680a53ab77f54c21e7c9a380da0 18-Jan-2011 Todd Kennedy <toddke@google.com> Update widget colours / assets according to spec

* Modified font colours for read/un-read emails
* Add chip colours when viewing mail from multiple accounts
* Add calendar icon if message has an invite attachment
* Update background of read/un-read emails

bug 3351761

Change-Id: Id59573d25a6988e9e869335f95778aad28b43912
ndroid/email/ResourceHelper.java
ndroid/email/provider/WidgetProvider.java
985155fddd4735fa46d67e0d28fba704f459b25c 19-Jan-2011 Marc Blank <mblank@google.com> Merge "Fix regression re: bad folder sync key" into honeycomb
212a054804b79383b3daa3b2e49d8a5ea98e5c97 19-Jan-2011 Marc Blank <mblank@google.com> Fix regression re: bad folder sync key

Bug: 3368400
Change-Id: I8bbba33ea0149b6c19a333dcd739208cec6c0475
ndroid/exchange/adapter/FolderSyncParser.java
1911a782710d49fe31f2e3f9ceead5ee1c7a1905 19-Jan-2011 Adam Cohen <adamcohen@google.com> Merge "Updating widget due to API changes." into honeycomb
7a69ac781b445a5895d31be83d190a2b6ee9fdc6 19-Jan-2011 Marc Blank <mblank@google.com> Merge "Don't report connection error when account isn't initialized" into honeycomb
cb8a5544bfb2389ebd735f1575b481000d802eb4 19-Jan-2011 Winson Chung <winsonc@google.com> Updating widget due to API changes.

Change-Id: I8623c48e912330145cfd325c962574d322ccc6f0
ndroid/email/provider/WidgetProvider.java
aeea97275d27f42d724b17e37aed2d0302271007 18-Jan-2011 Marc Blank <mblank@google.com> Don't report connection error when account isn't initialized

* We report uninitialized for updateFolderList when no mailboxes
have been created

Bug: 3235788
Change-Id: I337cfeac83bf320e8078e5a837976414fdd93e0f
ndroid/email/Controller.java
f72f812f5bb5d14940b2b161eec417a9aa6950f8 18-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Use proper alert icons on dialogs" into honeycomb
6b21662ba8a76b9d713feda13e8da6ebb2b9745e 18-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Remove STOPSHIPs regarding CloseTraceCursorWrapper" into honeycomb
946239e8a0e01c628fae61894d3d48248b74cefc 18-Jan-2011 Andy Stadler <stadler@google.com> Add per-account preference for bkgnd attachments

* Add flag to Account record
* Add checkbox to Account Settings (IMAP & EAS)
* Add checkbox to Account Setup (IMAP & EAS)
* Add flag to backup/restore logic
* Update Account & AccountSetupOptions unit tests

Bug: 3360873
Change-Id: I0c407776ede4110f33716644f6f027938f21130a
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/GeneralPreferences.java
ndroid/email/provider/EmailContent.java
49518bb3605d6c8e3cc4801c452e4f8f63220f44 18-Jan-2011 Makoto Onuki <omakoto@google.com> Use proper alert icons on dialogs

Bug 3364447
Bug 3241281

Change-Id: Ie791d8d5eae26a848de08658a14d6a09d06d0846
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/DeleteMessageConfirmationDialog.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/DuplicateAccountDialogFragment.java
80a2e9109daa5d13cd748305b4c5f83578f33728 18-Jan-2011 Makoto Onuki <omakoto@google.com> Remove STOPSHIPs regarding CloseTraceCursorWrapper

The loader crash seems to have been gone.

Bug 3335072
Bug 3335067

Change-Id: Iefc5367e6e394840687b0c2c4f6b75f8e9661d26
ndroid/email/Utility.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessagesAdapter.java
2b6d0072df67a1d85ed9da29d1a4ed26fcd86ecd 17-Jan-2011 Todd Kennedy <toddke@google.com> Do not automatically open attached files after saving

After saving an attachment, we no longer automatically start the activity
associated with the attachment mime type. However, we still run the media
scanner to add supported media (e.g. music, pictures, etc...) to the media
content provider.

bug 3266378

Change-Id: I96985438316a33322437ff009fe7e9c597b1c70a
ndroid/email/activity/MediaOpener.java
ndroid/email/activity/MessageViewFragmentBase.java
31e25767918193217c884db72aaa98e50a4957d3 17-Jan-2011 Dianne Hackborn <hackbod@google.com> Follow API changes.

Change-Id: I1ca0fe365b953fa98a462912309a1c9647277ba7
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/data/ThrottlingCursorLoader.java
648e45176bd516d4712c069691999ab762b70e82 18-Jan-2011 Marc Blank <mblank@google.com> Merge "Read truncated data (even if it doesn't get parsed)" into honeycomb
a38f61bad7439d9b320242fe3c694d672a7d0ae9 18-Jan-2011 Marc Blank <mblank@google.com> Read truncated data (even if it doesn't get parsed)

Bug: 3362434
Change-Id: Ifaf992987a1ef0b866506834f8e87047ebb2f62b
ndroid/exchange/adapter/EmailSyncAdapter.java
5b2b2484666e36fa78907329736260cc760c6c96 17-Jan-2011 Marc Blank <mblank@google.com> Default status of added email to 1 (success)

Change-Id: I3825916001e5659fa5465156dbe2d796f0b25444
ndroid/exchange/adapter/EmailSyncAdapter.java
f32bb6e570ef365e8de8f04fd099539bdfd635ca 17-Jan-2011 Andy Stadler <stadler@google.com> Merge "Updates to follow DPM api changes" into honeycomb
c2e638351c19ab22ad9ab4cce2853414c34724c3 17-Jan-2011 Andy Stadler <stadler@google.com> Updates to follow DPM api changes

* Use getStorageEncryptionStatus() to check device status
* Also, check granted policy on USES_ENCRYPTED_STORAGE

Bug: 3346641

Change-Id: I9e9a45a6d1d3cf4714e27b69cdb5952c841c640d
ndroid/email/SecurityPolicy.java
755fa67d172501b95ed08bdf5af8890d1d1ecde3 17-Jan-2011 Marc Blank <mblank@google.com> Delete message when Sync/Fetch fails with "object not found"

Bug: 3361222
Change-Id: I885b18612e8b5b4e7b7f50bc73f2b6a76c2242ad
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
3dda4c4fdd343e2e2610fd7d10d9faa38ef6dfb4 17-Jan-2011 Marc Blank <mblank@google.com> Merge "Delete PIM data during folder sync/reset" into honeycomb
03d4363b518f8429069a9587b749e2c27fdec342 17-Jan-2011 Marc Blank <mblank@google.com> Merge "Mark Fetch'ed messages fully loaded, even if there's no text" into honeycomb
67d7a741cf4585cf09666eb8b8ec12bc26b2b6bf 17-Jan-2011 Marc Blank <mblank@google.com> Delete PIM data during folder sync/reset

Bug: 3361000
Change-Id: I95305467c17c5c4b75b96dfb06c3c3511eb3f15a
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/FolderSyncParser.java
c50b6f685ba26a38b8110f6ca0115b12f84d643c 14-Jan-2011 Makoto Onuki <omakoto@google.com> Use broadcast to detect system account update.

Instead of AccountsUpdatedListener.

Bug 3211657

Change-Id: I1e60092fc06fe80b9914ff7264c24fcbfa950745
ndroid/email/SingleRunningTask.java
ndroid/email/activity/Welcome.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/MailService.java
ndroid/exchange/ExchangeService.java
f944b6f0aa070408256f85ba8cef7e09fedb5d84 17-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Hide the entire tab section if no tabs are visible." into honeycomb
91a1cf1db0b2a6ee72e467c37e7845584354eaf2 15-Jan-2011 Todd Kennedy <toddke@google.com> Remove "view" button for .apk attachments

We don't need to allow users to install applications directly from the email
client. Instead, application installation is a two step process; the user
must first save the APK and then find it on the filesystem.

If the user does not want to allow installation of applications from unknown
sources, we don't provide the ability to save.

NOTE: After saving, we still try to open the APK which generates an error
toast. We will be removing the auto-open-after-save feature in a separate CL.

bug 3351137

Change-Id: I0eb1bc8224a154792fe852757e4b23a3059f4392
ndroid/email/Email.java
ndroid/email/activity/MessageViewFragmentBase.java
7ca950bd2ead77a05e001c18e3afbd73375aec60 17-Jan-2011 Marc Blank <mblank@google.com> Mark Fetch'ed messages fully loaded, even if there's no text

Bug: 3361171
Change-Id: I5994d2bd33845140b419ed95e194bcac92a8834f
ndroid/exchange/adapter/EmailSyncAdapter.java
d0e795af73f0d3654acbbed63e55c45664f5d3da 16-Jan-2011 Marc Blank <mblank@google.com> Merge "When syncing folders, read all data first, then process" into honeycomb
de196ca3da05ee1026cc7b5e26aaee7e219a63f1 15-Jan-2011 Marc Blank <mblank@google.com> When syncing folders, read all data first, then process

Bug: 3353035

Change-Id: I80212b225eae48d0351f47f0d601f77578d2fc96
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/FolderSyncParser.java
c890a4e4a2cbb489aea4847cf25368a723586530 13-Jan-2011 Todd Kennedy <toddke@google.com> Display dialog if unsaved settings would be lost

When navigating away from a preferences screen and unsaved settings would be
lost, display a confirmation dialog. The user can either accept or cancel the
action. If canceling, the user is returned to the settings screen they were
currently on. Otherwise, they are taken to a new fragment (the exact
destination depends upon whether the user navigated "back" or selected another
header)

There is one additional change that needs to be made. In the case of navigating
to another header, we are notified _after_ the new header is selected. In this
scenario, the action is not cancelable and the user will lose any changes. We
must display an appropriate message when this happens. [note: this is the same
behaviour as when the user selects a breadcrumb]

bug 3327737

Change-Id: I4bd3b393a6323f3e63510e3ed08e4e1e745b04c4
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
9d91b7ca04fbff8c6835509c6376dfdc83e47f42 14-Jan-2011 Makoto Onuki <omakoto@google.com> Hide the entire tab section if no tabs are visible.

Bug 3342441

Change-Id: I116baffdaa6bc18f00311aef2a0ee726288b19f0
ndroid/email/activity/MessageViewFragmentBase.java
36cc9c18edb7ee897d0d758788b6e338cb2ef126 14-Jan-2011 Makoto Onuki <omakoto@google.com> Fix NPE in AttachmentDownloadServiceTests.testDownloadSet

Bug 3353834

Change-Id: I5cf475ff174bffce80a435c80b1fd85c0be146e9
ndroid/email/service/AttachmentDownloadService.java
96497dc60e165b301a6270dadb27c1e69e250c3c 14-Jan-2011 Marc Blank <mblank@google.com> Merge "Support encryption in EAS provisioning" into honeycomb
4fa12e52fc464185a08b93db3f92510c7a54d3a4 13-Jan-2011 Marc Blank <mblank@google.com> Support encryption in EAS provisioning

* Confirmed that policies enforcing encryption are rejected as
unsupported (since full encryption plumbing is not in place)

Bug: 334652

Change-Id: I82340cfbd68a9663714a98824a5d8395f2c0da74
ndroid/exchange/adapter/ProvisionParser.java
1daf8766937e0d8dda6a35870b3e27435c92df9a 14-Jan-2011 Makoto Onuki <omakoto@google.com> Fix NPE in Controller.deleteMessageSync

Bug 3351148

Change-Id: I0015c84e5758504a66a4373668afea063f5b2e15
ndroid/email/Controller.java
d072f9905d8572f454be1f2ea5d7ba173d2b57d1 13-Jan-2011 Makoto Onuki <omakoto@google.com> Don't show trashed messages in Starred mailbox

Also show the *total* starred message count (excluding trashed starred)
in the mailbox list, not *per-account* starred count.

Bug 3346872
Bug 2149412

Change-Id: I2274f215f994b62280ac6138982b927cec22c677
ndroid/email/Utility.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/WidgetProvider.java
1ec737ce284526a19928bd68275fd37d237bf830 13-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Fix NPE in MessageViewFragmentBase" into honeycomb
9799b8fe4b35013b338da013cb5ee6d624500ffc 13-Jan-2011 Makoto Onuki <omakoto@google.com> Fix NPE in MessageViewFragmentBase

Add null check for all mMessageContentView accesses.

Also, addressed Andy's comment on I1374b81f; moved the zoom scale array out
of Preferences.

Bug 3350164

Change-Id: I689bd4146ecfffdbb98dccd433ba0c396996df4c
ndroid/email/Preferences.java
ndroid/email/activity/MessageViewFragmentBase.java
4f721a162521cb4b418d53143a15a29a0ec969cc 13-Jan-2011 Andy Stadler <stadler@google.com> Merge "Add encryption to SecurityPolicy" into honeycomb
469f2987dc11d153434e50eb04dd6b83b924d09d 13-Jan-2011 Andy Stadler <stadler@google.com> Add encryption to SecurityPolicy

* Add encrypted-storage to uses-policies
* Add new field to PolicySet
* Add "false" to all constructor callers
* Add unit tests (including fixing some existing unit tests)
* Add new logic to AccountSecurity activity t0 dispatch both password
and encryption requests.

Bug: 3346641
Change-Id: I54f39bc9b6fbe21c033a05b36b83081e5c78a296
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/exchange/adapter/ProvisionParser.java
24c068b912efd0b027f7842c4b98fa1482dba33c 12-Jan-2011 Marc Blank <mblank@google.com> Make message view text sizes consistent w/ Gmail

It's exactly the same as Marc's I1240f263, except how it sets the zoom scale.
Seems like WebView.setInitialScale() works...

Bug: 3215606
Change-Id: I1374b81fd7799faa261ba6a06df18f6a8ef9d122
ndroid/email/Preferences.java
ndroid/email/activity/MessageViewFragmentBase.java
ffdb8a7ea9f2bf46d7e6a611fdaf3ebf9dd95d6a 13-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Fix "load more messages"" into honeycomb
3903bd3a64c4b1a31c2b9c2ca5d35b71b2313ac0 13-Jan-2011 Andy Stadler <stadler@google.com> Merge "Make breadcrumbs work in server settings fragments" into honeycomb
81b6edc311f06e292cef6df7d0418e928db15ee2 13-Jan-2011 Marc Blank <mblank@google.com> Merge "Properly clean up after an EAS email wipe" into honeycomb
983e1ad53b3ca3105655bf6d961713c61060a7f8 13-Jan-2011 Andy Stadler <stadler@google.com> Make breadcrumbs work in server settings fragments

* Switch to newer startPreferenceActivity API
* Newer API lets us pass a string for the breadcrumb
* Get rid of newInstance() calls in all three server settings fragments

Bug: 3188951
Change-Id: I86ae91d63ff7bd32fa0eab96ac18686bb5e3e313
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
ee5780f79a6f83ad52cc7f049c9857324ddfe3ff 13-Jan-2011 Marc Blank <mblank@google.com> Merge "Properly handle style (and similar) tags in HTML snippets" into honeycomb
a796fbab0237c094aa943de68f85d201dd22503b 13-Jan-2011 Makoto Onuki <omakoto@google.com> Fix "load more messages"

Was simply broken.

Bug 3347062

Change-Id: Ic8d16be377ee5a9871f0019a0b008a4de2390f15
ndroid/email/RefreshManager.java
48eee2337671986311ffdda75885d000517d8cc4 13-Jan-2011 Marc Blank <mblank@google.com> Properly clean up after an EAS email wipe

* Clear the fetch request list
* Also, make sure we don't try to send local changes during an
initial sync

Bug: 3347078
Change-Id: Idba7bceb5919bea81bf5b48a69cd4331946505fe
ndroid/exchange/adapter/EmailSyncAdapter.java
609e47cc8e660d965b5d91a6da3e52e6989a3463 13-Jan-2011 Marc Blank <mblank@google.com> Merge "Cleanup WidgetProvider" into honeycomb
5a8be8e7ed4c1400e1d95c75faedc6d74c2e83f3 15-Dec-2010 Marc Blank <mblank@google.com> Properly handle style (and similar) tags in HTML snippets

Bug: 3285281
Change-Id: Ia45dbe39b47f1bcb647efbf1860ed4b933976df8
ndroid/email/Snippet.java
055dd6be8643727fa1bcf197f5e8438438f28284 13-Jan-2011 Marc Blank <mblank@google.com> Cleanup WidgetProvider

* Remove STOPSHIPs
* Don't use startService calls

Bug: 3341494
Bug: 3342662
Change-Id: I46fd60db40cf3476255f1af795da0b2a4bc34a7e
ndroid/email/provider/WidgetProvider.java
4c06c82b379d7b14263a456701fb9c45751cd5b2 12-Jan-2011 Todd Kennedy <toddke@google.com> Hide view/save buttons if attachment is unviewable

If none of the installed activities can handle the attachment type, don't let
the user view or save the attachment to the device.

bug 3338984

Change-Id: I6c158b7dd11ec48eec81f9a96289dd2c914f6a2c
ndroid/email/activity/MessageViewFragmentBase.java
1316ccdc2affc088b3e68e4a4e044dd29249271f 12-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Show the UP arrow on account settings" into honeycomb
82dd234f133387c40f30a9b7bcbaf5beb18ab411 12-Jan-2011 Makoto Onuki <omakoto@google.com> Improve "message details"

- Show subject/sender info
- Now all text fields are copyable

Bug 3342310

Change-Id: Ib9c4486aec36f192625c21602ea7406508ca0a49
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessageViewMessageDetailsDialog.java
38089f6c4222ab56582899f1f228966c5ebf75e8 12-Jan-2011 Makoto Onuki <omakoto@google.com> Show the UP arrow on account settings

Show the UP arrow on the action bar. Tapping it works as a back press for now.

Bug 3341634

Change-Id: I9fade234fd9878f701a601f4d016778fa032383b
ndroid/email/activity/setup/AccountSettingsXL.java
e5d9691ec5651d2da6555cb4fe2b0e3639bb4240 12-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Don't show starred mailbox, if account has no starred" into honeycomb
0bf1add59489d3400e95cb431013d69bc63e2487 12-Jan-2011 Marc Blank <mblank@google.com> Merge "Fix broken widget display (typo)" into honeycomb
1268bef712f13e19d7c5b94991c6eb7d800ea77a 12-Jan-2011 Marc Blank <mblank@google.com> Fix broken widget display (typo)

Bug: 3329906
Bug: 3342305
Change-Id: I1c1f2ae78ba86b28923d4fd9c7c390425de83af1
ndroid/email/provider/WidgetProvider.java
ae7119524b6032d8471f926c289703a33de2cbb9 11-Jan-2011 Christopher Tate <ctate@google.com> API CHANGE: startDrag() now takes "int flags" instead of "boolean localOnly"

startDrag() that crosses application boundaries will remain @hide until we get
more of the surrounding behaviors nailed down.

Change-Id: I2db8206b26d606d5592f185702380b889c029b19
ndroid/email/activity/MessageListFragment.java
0a73e8cd459f4839f7c54fd74c9085271a1fb806 12-Jan-2011 Makoto Onuki <omakoto@google.com> Fix NPE in MessageListItem

Not sure in what condition Message.displayName can be null, but addign this
check won't harm...

Bug 3339309

Change-Id: Ic2261fc33cf2be759411b998707a96eedd4e4fdb
ndroid/email/activity/MessageListItem.java
9c0da8b84f2e52b38134719fcbf80c9d3c777970 12-Jan-2011 Makoto Onuki <omakoto@google.com> Don't show starred mailbox, if account has no starred

Bug 3334963

Change-Id: I751e56731b990a6e94b8547a577a84c1a848cbc7
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/provider/EmailContent.java
f7b8bc1ed7894e1b35fcce632bb70813a12b4ab5 11-Jan-2011 Makoto Onuki <omakoto@google.com> Show newer/older in landscape as well, below message list

Now the button area is owned by the 3-pane layout, rather than the message view
fragment.

Bug 3327153

Change-Id: I9c262086c5a001cfe6e81b788c27d05d490c9830
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/ThreePaneLayout.java
071274f078ff6d8e16d3faedaac02e9f3eab64a8 11-Jan-2011 Andy Stadler <stadler@google.com> Merge "Update file type acceptance rules" into honeycomb
86753bc41c3957b3bba49846f6603ed29f13c84e 11-Jan-2011 Andy Stadler <stadler@google.com> Update file type acceptance rules

* Open up all types for view/save rules
* Add anti-malware block list (based on extensions)
* Clean up code that shows/hides view & save buttons
* Redo handling of load/cancel 1sec timer
* Unit test for new little utility
* Allow larger items when on wifi

Bug: 3338984
Bug: 3334950
Bug: 3338988
Bug: 3340835

Change-Id: I991135636d507f2660e2860720dbed21bd1a955b
ndroid/email/Email.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/provider/AttachmentProvider.java
421055a70a5b6378564f8d5708906068dbca9f83 11-Jan-2011 Marc Blank <mblank@google.com> Allow unlimited folders in EAS by batching folder changes

Bug: 3314445
Bug: 3325575
Bug: 3329867
Change-Id: Iefce7b334462919fd6391a449fc16196b9da168a
ndroid/exchange/adapter/FolderSyncParser.java
0faa37d7718dc0ff1af00cf37e2091a5001596e9 11-Jan-2011 Andy Stadler <stadler@google.com> Save attachments to /sdcard/Download

Bug: 3339015
Change-Id: Iee08f0c358e6680175c732ef0d5e416a86da5a5d
ndroid/email/activity/MessageViewFragmentBase.java
f6fe21b483ac4922ed9c0a2ec0cf7bed4760d82b 11-Jan-2011 Marc Blank <mblank@google.com> Merge "Check download request before trying to remove it from the queue" into honeycomb
3d87da33b8426af3813f81b0569405120dedf4f6 11-Jan-2011 Marc Blank <mblank@google.com> Merge "Add logging for widget view switching" into honeycomb
7fbe563f510eb3583f617b583ff126167e1cac14 11-Jan-2011 Marc Blank <mblank@google.com> Add logging for widget view switching

Change-Id: I5e39ffffa0860fb43a503e4ec00ddad8003f5ef4
ndroid/email/provider/WidgetProvider.java
92b50897d61bb1e07139ce24c94816591449fe03 11-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Pixel perfect: newer/older buttons" into honeycomb
b6171541b6b9436cee6b03a5720c6259a7e58ba8 11-Jan-2011 Makoto Onuki <omakoto@google.com> Pixel perfect: newer/older buttons

We haven't gotten all dimensions yet, but this is what I inferred from
the latest redlines.

Also fixed a margin above the message area on message view.
(Keep the margin even if there's no tabs.)

Bug 3138021

Change-Id: Iafff578f499737674ec10206b75566377cf2383b
ndroid/email/activity/MessageCommandButtonView.java
782c21e953f3a157b2771cb15e097ed812e27ab1 11-Jan-2011 Marc Blank <mblank@google.com> Check download request before trying to remove it from the queue

Bug: 3312633
Change-Id: I443d9a8f786f93c7cd72b6b96ea838bf0d05f4d4
ndroid/email/service/AttachmentDownloadService.java
43600c915f688d2befee2fa65ff58ac571d38695 11-Jan-2011 Todd Kennedy <toddke@google.com> Merge "Remove/fix STOPSHIP comments" into honeycomb
8a63a72104ff86cbfa1d99767bf4be1c6dae899f 11-Jan-2011 Todd Kennedy <toddke@google.com> Simplify drag-n-drop scrolling logic

Remove the concept of scroll speeds. According to Mark, multiple scroll speeds
is a "nice to have" feature and not a "must have". Besides, this did not work
(there was only ever one scroll speed), and, when fixed, the top scroll speed
was way too fast to be usable.

bug 3335062

Change-Id: I160bec2ca5de0b26da81ed31dfb96fc86e543988
ndroid/email/activity/MailboxListFragment.java
518124e47d8cf4510dd11c5ac3ee732f642004bd 10-Jan-2011 Todd Kennedy <toddke@google.com> Remove/fix STOPSHIP comments

* Remove the drag_background drawable as it is not referenced
* Correct icons for menus have been submitted; remove STOPSHIP
* Reverse target location check in MailboxListItem to fail fast if we do
not have a "down" touch event; STOPSHIP not necessary, removed
* Remove 10dip guard on mailbox list; this is near impossible to trigger

bug 3335078
bug 3335096
bug 3335065

Change-Id: I4bcc42ee03502c8a5c44d431e935dff92a648fb1
ndroid/email/activity/MailboxListItem.java
5fed5c8a59a5042817e4abbb1fb1855e809ab958 11-Jan-2011 Makoto Onuki <omakoto@google.com> Don't show "Stop" for loaded attachments

There's a case where we show both the "stop" and "view" buttons at the same
time.

Bug 3138021

Change-Id: Ib12f5dc1e522a04b1cc175626d084ed8bc5c8065
ndroid/email/activity/MessageViewFragmentBase.java
84c4ec4aef900fb5dea80515702433929b61f387 11-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Remove STOPSHIPs" into honeycomb
a826d3fb03f29a07ea12e44237b2c02ea1926c74 10-Jan-2011 Makoto Onuki <omakoto@google.com> Pixel perfect: Message view

Still waiting for a few missing assets, but it's done other than that.

The divider change is already merged; new layouts all use the framework style.

It's basically all layout changes, except for:
- Now the recepient address line has "Show details", which shows a dialog with
all to/cc/bcc addresses with the timestamp.
- Now invite response buttons are checkboxes.
(But the basic behavior doesn't change -- once you check a response,
the message will be gone, so you can't change the response later.)

Copied message_header_bg from gmail manuall. It'll look silly without it.

Bug 3138021
Bug 3307021

Change-Id: I6f7eb91d6104c3143a5c58b0c4c6c19929cea477
ndroid/email/Utility.java
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MessageViewMessageDetailsDialog.java
ndroid/email/mail/Address.java
07f5f60b8f84da92305d4f02ffedae9436f87787 09-Jan-2011 Todd Kennedy <toddke@google.com> Implement proper drag-n-drop

Still some tweaks to be done, but, we're real close to what it should
look like.

Bug 3322756
Change-Id: I8549ab59677a344e8f259c88bed950169d7381a8
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MessageListFragment.java
42c68814940591e5f5b572882efa023c41d15679 10-Jan-2011 Makoto Onuki <omakoto@google.com> Remove STOPSHIPs

Bug 3335094
Bug 3335069

Change-Id: I307a762a83ca7fa94cf62f1d80f32a2b3f30b27a
ndroid/email/activity/ThreePaneLayout.java
26cf5639e0e6677ee09a9aebd753d7e6e708da24 10-Jan-2011 Marc Blank <mblank@google.com> Remove STOPSHIP from WidgetProvider

Bug: 3335070
Change-Id: I838d5eeb795759da30946fbdb00fa3f0e4dbdb12
ndroid/email/provider/WidgetProvider.java
75396e175d2664f70ddd4dc4efbcb0957f8f8b80 10-Jan-2011 Marc Blank <mblank@google.com> Merge "Remove STOPSHIP from AttachmentDownloadService" into honeycomb
33799ad2d06236b95244337b5325aad5285f2560 10-Jan-2011 Marc Blank <mblank@google.com> Remove STOPSHIP from AttachmentDownloadService

Bug: 3335071
Change-Id: Ia6a8e2e7378510db234c4ec5164cb5ef39c529d7
ndroid/email/service/AttachmentDownloadService.java
d9d120bfe4d43f967c809acacda7108f6b8e79c9 10-Jan-2011 Marc Blank <mblank@google.com> Merge "Fix issues w/ security-related account data deletion" into honeycomb
69af769688acc28a20cdbad046cea2565456801c 08-Jan-2011 Marc Blank <mblank@google.com> Fix issues w/ security-related account data deletion

* Stop running syncs
* Delete all EmailProvider data except the account itself (with
cleared sync key) and the account mailbox (necessary for syncing
to sync after security hold is lifted

Bug: 3245779
Bug: 3253952
Change-Id: Idc208ef5ed85808b085ebab9c26a428fb0451e34
ndroid/email/Controller.java
ndroid/exchange/ExchangeService.java
85985b5db303946e3eb79507765562294e379c3f 10-Jan-2011 Brett Chabot <brettchabot@android.com> Merge "Use new public API to protect force account creation." into honeycomb
a8ef07fabc0a8ef07896d5ad4f795ad108f4f3dd 10-Jan-2011 Andy Stadler <stadler@google.com> Cleanup STOPSHIPs in strings.xml

* cleaned out old placeholders
* moved a bunch of unused strings into placeholders
* moved three strings into active status.

Bug: 3335092
Change-Id: Ibb0690f7cc9ddd1b8f7f337964faff6471be880c
ndroid/email/activity/MoveMessageToDialog.java
ea4c5642612803753fd221f33bbdf47fd40bc7dd 09-Jan-2011 Brett Chabot <brettchabot@android.com> Use new public API to protect force account creation.

Check value of ActivityManager.isRunningInTestHarness() before allowing force
account creation, instead of ActivityManager.isUserAMonkey().

Bug 3329873

Change-Id: I5028eef9caced2cacc9c187dfd746865939fdedd
ndroid/email/activity/setup/AccountSetupBasics.java
7271bbef13231d2bf64997f7e11a55ecb441266b 09-Jan-2011 Andy Stadler <stadler@google.com> Remove a couple of STOPSHIP notes

* Restore ActionBar based progress in phone UX
* Removed unused debugging method

Change-Id: Ia36847d27fe9c9fa121a29f1e6a65bd3da0c3ffc
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
0e50c33ec7e593ac6367ea5bafd499f73a8ab837 08-Jan-2011 Dianne Hackborn <hackbod@google.com> Merge "Remove use of old methods." into honeycomb
6c7075fb8644b390058f85efd09744e8964a242a 08-Jan-2011 Dianne Hackborn <hackbod@google.com> Remove use of old methods.

Change-Id: Ibc686a39cb2c481e6cd57b1d6029979cfd9f5b71
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
b50872abd04f1228ffb71bfb7db30e4f75ced8d5 07-Jan-2011 Christopher Tate <ctate@google.com> Rename drag "thumbnail" to the drag "shadow"

No functional changes; just a rename of the relevant class/method/parameters.

Change-Id: I80c0297d0ccbf1bb30196fb919ae68194e18d732
ndroid/email/activity/MessageListFragment.java
d6ce2998f7cfae510ccc2af72aa729aafc7a40ef 08-Jan-2011 Marc Blank <mblank@google.com> Merge "Fix widget view switching with > 1 account" into honeycomb
f6cb1b002e42d4082f9c650ea5d32377be34ed91 08-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Don't pass ACCOUNT_ID_COMBINED_VIEW to message compose." into honeycomb
f29ce4d37bc5f2d72062cbbeabb3b92bb055a166 07-Jan-2011 Makoto Onuki <omakoto@google.com> Don't pass ACCOUNT_ID_COMBINED_VIEW to message compose.

If you do so, MessageCompose won't be able to restore an account, so it'll
use null account...

Bug 3324472

Change-Id: Ic0e615b31e21246e41f6f2c709a8422bef230040
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
4b311dcdd43ce3a39258d389b0142abdef16f6aa 07-Jan-2011 Andy Stadler <stadler@google.com> Merge "Move account edit save settings off UI thread" into honeycomb
6e71978ec38add2edf3ac5f3dd1f9abeea9c1ab6 07-Jan-2011 Andy Stadler <stadler@google.com> Move account edit save settings off UI thread

* Caught by StrictMode
* The fix prevents ANR
* Removed vestigial cruft from the saveSettingsAfterEdit() implementations

Bug: 3133633
Change-Id: Id41fb74269a2b72cc17121e33684b459d3eec869
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
dc3f9f4d698267f8b2d44127d6c7bc8c1f450aba 07-Jan-2011 Marc Blank <mblank@google.com> Fix widget view switching with > 1 account

* Add test case for view switching

Bug: 3329906
Change-Id: I738bad118d7d7a8d2839fbd2a9fdc00af2af3153
ndroid/email/provider/WidgetProvider.java
1dde2253cbf2b6c9b483b4350b6fcb5447e870e0 07-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "PPing message view: use proper text size." into honeycomb
21a0c1798681037ca2b7376e99bbb24ea410a112 07-Jan-2011 Makoto Onuki <omakoto@google.com> PPing message view: use proper text size.

Also use the same date/time format as gmail to show the date part properly.

Bug 3138021

Change-Id: I24e45895de5330cd670a674f56eca5ccadcee9b5
ndroid/email/activity/MessageViewFragmentBase.java
7523930d3995983dec4fb0512dd5acb83ed02a4d 05-Jan-2011 Makoto Onuki <omakoto@google.com> Pixel perfect: message compose

Layout & action bar icons. Now I think it's close enough.

Bug 3138037

Change-Id: I0802f34ac23980e0faf8a0daffc016a012816d81
ndroid/email/activity/MessageCompose.java
5faff6c76a1a231807c0039b5af006114618dbf3 06-Jan-2011 Todd Kennedy <toddke@google.com> Merge "Use new holo light icons" into honeycomb
64ac7a6cc81ef6dc84354153b978bd5db944e8b0 06-Jan-2011 Todd Kennedy <toddke@google.com> Use new holo light icons

Use the new icons where appropriate. This is not a complete change as there are
still some icons missing.

Change-Id: I51d1458749343ddfc6456dc2a9853b8bc2540e26
ndroid/email/Utility.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageViewFragment.java
29d79adf4b4e716d40922d7e2008c5091460c143 06-Jan-2011 Andy Stadler <stadler@google.com> Fix cursor leaks when canceling AsyncTask

We discovered that AsyncTask.cancel() doesn't quite perform as expected;
In particular, if you call cancel() during a particularly slow background
worker, the result is discarded and onPostExecute() is never called. If
the result is an open cursor, then we "leak" by not closing it.

For AccountFolderList, which has a multi-step doInBackground():
1. Check for isCancelled() during the long doInBackground() which will
reduce the number of discarded cursors in the first place.
2. Check for isCancelled() at the end of the long doInBackground() and
if true, close the result cursors and return null.
3. In the existing isCancelled() code in onPostExecute(), close the
cursors.

For other AsyncTasks (with simpler configurations):
1. Check for isCancelled() at the end of doInBackground() and if true,
close the just-opened cursor and return null.

See also Change-Id: Ie63a3197af563baa8bb0fe6f1ef9423e281cbf4c
Bug: 3088870

Change-Id: I51b11bb5b23f209f8b61962500a063040484fd24
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageOrderManager.java
201a24f51e166f66f99c17da3356aa4fdb7fa54d 06-Jan-2011 Andy Stadler <stadler@google.com> Harden MailService against half-created accounts

* Add simple sanity checks to scanned accounts, skip over if bad
* Fix existing unit tests and add new unit test for this change
* Also fixed minor bug in EmailContent that was never triggered in
production code (only discovered it via a unit test).
* Also fixed minor bug in an existing unit test

Bug: 2937595
Change-Id: Id60bbb5d8bd923db043d46891c7f89d7debb0a11
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
2f1a7e8d0a9b4721275f3ac429ee47b885715c33 06-Jan-2011 Marc Blank <mblank@google.com> Fix typo in CL 87363

Change-Id: I7a52a2a5e93dd6ccde8b040ffb7b1d224f026ce7
ndroid/exchange/adapter/FolderSyncParser.java
ce9df41fc1f9ff157be5390fca9ee1269c9dfa08 06-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Pixel perfect: mailbox list"
2b3ac66f9fc3151fcf9da4f172cbd610b4d46127 06-Jan-2011 Marc Blank <mblank@google.com> Merge "Move onStartCommand processing to worker thread"
08065b2669794a50f26f5ea3a7ea723fed43f020 06-Jan-2011 Marc Blank <mblank@google.com> Merge "Limit user mailboxes for EAS (to 1000, for now)"
0187c3e203b58a83ceaa0b5854cc14466fbb98c3 06-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Message list item: Use "activated" background"
eaf748e6eecb4cb3644dcd950d56d1edb2d50a63 06-Jan-2011 Makoto Onuki <omakoto@google.com> Message list item: Use "activated" background

for the selected message.

This also fixes wired background flicker when you long-press.
(Apparently you can't share StateListDrawable among multiple items...)

Change-Id: I922f50a5b2a33731919e26a55bd3537d55057af5
ndroid/email/activity/MessageListItem.java
f72c4c2c2a5c9078449ceb5f1ee53d9c977d0388 06-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Fix NPE in loadAttachmentCallback"
80a98fd939f0760f2e2d8abb604c492125c0bbad 06-Jan-2011 Makoto Onuki <omakoto@google.com> Pixel perfect: mailbox list

Now it should be close enough...

Also fixed the "selected mailbox won't get hilighted" issue.

Bug 3137965

Change-Id: Ifba83783121e62363fac6428534394d2e0a4bee9
ndroid/email/activity/MailboxListItem.java
c56b246f8f0525049e5f5d84bd86b7c9edb52252 05-Jan-2011 Marc Blank <mblank@google.com> Limit user mailboxes for EAS (to 1000, for now)

* Sending too many mailboxes to EmailProvider in a single batch can
lead to a binder exception, so we limit them
* Move all provider updates into the commit() method

Bug: 3325331
Bug: 3314442

Change-Id: I1bd8d19a96f642b6e49e2f47a5ddcebaa55c0ec0
ndroid/exchange/adapter/FolderSyncParser.java
0bd7ab96aa867ce9d3e6743c42eb37213e5d645f 05-Jan-2011 Andy Stadler <stadler@google.com> Merge "Prevent duplicate mailbox creation"
6f2c724f2f484804ded62c3941170673e78860f4 05-Jan-2011 Marc Blank <mblank@google.com> Move onStartCommand processing to worker thread

* Also, reduce service logging

Bug: 3133763
Change-Id: Icc09ddb5966b78350b4485e52a3d8e1f92d9c576
ndroid/exchange/ExchangeService.java
900021dbeeb93409c069a04a740c2436e30d1b2a 05-Jan-2011 Andy Stadler <stadler@google.com> Prevent duplicate mailbox creation

* Synchronized findOrCreateMailboxOfType

Bug: 3291982
Change-Id: I7146458112296aa2b0f4b8f24d0c86f16a8b6626
ndroid/email/Controller.java
12247faa91a97f4c0e626977de7490bdb7dabc6c 05-Jan-2011 Marc Blank <mblank@google.com> Merge "Add final backgrounds to message list items"
bd9b2ff2b31b8db24471f74d35b4f6c220a1d2e3 05-Jan-2011 Marc Blank <mblank@google.com> Add final backgrounds to message list items

Bug: 3137994
Change-Id: Ife96b23815999290fc1d263ca6d8f4cedaef1b20
ndroid/email/activity/MessageListItem.java
f252d5d95e225a31f86d45b9f7d200dcd7eb5c16 05-Jan-2011 Andy Stadler <stadler@google.com> am 42749c91: am 1a791e67: Fix NPE when switching IMAP into TLS

* commit '42749c9105c663e035a0863d7a6bda111b5c7112':
Fix NPE when switching IMAP into TLS
8c45186b4783cb32794d764c0f34eba90e8793ff 05-Jan-2011 Andy Stadler <stadler@google.com> Merge "DO NOT MERGE Fix cursor leaks when canceling AsyncTask" into gingerbread
1a791e675ba5092569125bf09a9fcc721bd4c5e1 05-Jan-2011 Andy Stadler <stadler@google.com> Fix NPE when switching IMAP into TLS

* Update MockTransport to allow TLS connections
* Test TLS connection in ImapStore unit tests
* The bugfix: Re-query capabilities after closing/reopening parser for TLS

(Note: Actually, this is required by the IMAP RFC 3501, 6.2.1)

Bug: 3315939
Change-Id: I51f838043e87750b5712a1bd2e4f9c821b58c808
ndroid/email/mail/store/ImapStore.java
d2911c3e861a3fb9c92ff958f1cc4f78f3eeb896 05-Jan-2011 Andy Stadler <stadler@google.com> DO NOT MERGE Fix cursor leaks when canceling AsyncTask

We discovered that AsyncTask.cancel() doesn't quite perform as expected;
In particular, if you call cancel() during a particularly slow background
worker, the result is discarded and onPostExecute() is never called. If
the result is an open cursor, then we "leak" by not closing it.

For AccountFolderList, which has a multi-step doInBackground():
1. Check for isCancelled() during the long doInBackground() which will
reduce the number of discarded cursors in the first place.
2. Check for isCancelled() at the end of the long doInBackground() and
if true, close the result cursors and return null.
3. In the existing isCancelled() code in onPostExecute(), close the
cursors.

For other Activities (with simpler configurations):
1. Check for isCancelled() at the end of doInBackground() and if true,
close the just-opened cursor and return null.

Bug: 3088870
Change-Id: Ie63a3197af563baa8bb0fe6f1ef9423e281cbf4c
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
38a495fed9f106e0ac312a5a6d987a375f69dfff 05-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Attempt to fix StaleDataException"
1144e6c93f112be5008d0bb79d774c0de2134a87 04-Jan-2011 Makoto Onuki <omakoto@google.com> Fix NPE in loadAttachmentCallback

bug 3317175

Change-Id: Ib892af0b1bf00cd99c370e114dd8d98b6887933c
ndroid/email/activity/MessageViewFragmentBase.java
d4cd717e9d127b6aa2ea881f4054a6a88c14c8eb 04-Jan-2011 Makoto Onuki <omakoto@google.com> Merge "Hide refresh button on combined view"
dc1ac99210e2e2f7420359f6fbf9b27cb920b13d 04-Jan-2011 Makoto Onuki <omakoto@google.com> Hide refresh button on combined view

Bug 3317656

Change-Id: I63f6fcd0aae29f01e40780bd7f69294e629aa888
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
e447bea49b9a50ef76c35f6dc0f794a3fd147e79 04-Jan-2011 Makoto Onuki <omakoto@google.com> Attempt to fix StaleDataException

I'm not yet 100% sure what's going on, but the old code, not stopping
the scheduled forceLoad() in onReset() is apparently wrong.
onReset() is a new callback introduced in the recent loader change, so
this can explain why it started after the change.

Also, call super.onContentChanged() instead of directly calling forceLoad(),
as Loader.onContentChanged() now does more than just calling forceLoad.

Bug 3308465

Change-Id: Ica46bf994b571a26dd532734307a5c7ec6df0268
ndroid/email/data/ThrottlingCursorLoader.java
99de346ed3dca94fdac167af12fcbaf309f8b2db 04-Jan-2011 Marc Blank <mblank@google.com> Merge "Handle query with an id of -1 more gracefully"
8b5cd2beff18ff525c429f10acfdd78bc1e011bb 04-Jan-2011 Andy Stadler <stadler@android.com> Remove UI thread access in AccountSetupBasics

* Move getOwnerName to a FutureTask
* Use AsyncTask for call to Utility.findExistingAccount()

Change-Id: I85e35a12cc28b1dda8a0ccd930869316032a3b12
ndroid/email/activity/setup/AccountSetupBasics.java
e6027c46f7fd0d15a8c230afd48ba942873d31f5 31-Dec-2010 Marc Blank <mblank@google.com> More correct fix for EAS message list callback issue (3251757)

Bug: 3251757

Change-Id: I879a97e343e9522c7c11e10a1bdd3915fc6dbaac
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
cbdd9f78b2605e87e45e4f6761b0a8c444a8cd4c 21-Dec-2010 Marc Blank <mblank@google.com> Distinguish mailbox requests that are user requested

Bug: 3251757
Change-Id: Ie417ebf44c8b740db88e5854077782930359a958
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/RefreshManager.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/IEmailService.aidl
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
e70c2e05436c6f68a233b96dc48b68acaedd97fc 31-Dec-2010 Marc Blank <mblank@google.com> Merge "Fix format/draw issues with snippets"
d306ba34387f3a7e77a4b8d98c6ac45cc14b95ad 30-Dec-2010 Marc Blank <mblank@google.com> Handle query with an id of -1 more gracefully

* In query of an otherwise valid URI with -1 as an id, simply return
an empty cursor
* Add unit test to verify proper handling of invalid uri's

Bug: 3183245
Bug: 3292080

Change-Id: Ia0c35cbd0f5dd0dc4a8fc794226399644cf1fe13
ndroid/email/provider/EmailProvider.java
3d91924c99d108eaeeffe098cddfe71921e1aec3 30-Dec-2010 Marc Blank <mblank@google.com> Fix format/draw issues with snippets

Bug: 3315171
Change-Id: I8e44c1d64d2f3382fd1e03b35e3e59b048eca31d
ndroid/email/activity/MessageListItem.java
a2269e84c6134bfd3506e5489c7ccfd60c32d41f 30-Dec-2010 Andy Stadler <stadler@android.com> Remove disk access from DeviceAdminReceiver callbacks

* DeviceAdminReceiver is actually a BroadcastReceiver, must follow
guidelines to prevent ANR or early process kill.
* Remove all uses of AsyncTask from DeviceAdminReceiver
* Pass all calls through EmailBroadcastProcessorService
* Minor restructuring of EmailBroadcastProcessorService to support
this use.

Change-Id: Ic6257ea5eff1bd466a736e0f93cb89b1cf8aa73e
ndroid/email/SecurityPolicy.java
ndroid/email/service/EmailBroadcastProcessorService.java
5498296287032687240ef2ca0ed2a75c3ac0048a 30-Dec-2010 Marc Blank <mblank@google.com> Merge "Respect user's background download preference"
7fbcefff7d5a745335d1ec562e783a59087cc0b1 28-Dec-2010 Marc Blank <mblank@google.com> Respect user's background download preference

Bug: 3312462
Change-Id: Ibd77b8de8782c4681ed122ac2f30374ca695e0ef
ndroid/email/service/AttachmentDownloadService.java
1c1bd6a3eb2b7d99e30713648616c807ae20cbb5 30-Dec-2010 Marc Blank <mblank@google.com> Fix typo in debug code

Change-Id: Iffb3effa3fd659be3df3208bb587fea83bc9116e
ndroid/email/provider/EmailProvider.java
268597f68d1736e3a689808424fd277d2089fa26 26-Dec-2010 Marc Blank <mblank@google.com> Remove "Heartbeat" logging

Change-Id: Ib15451a9204a40b4bd74c55a348d732c8f43604a
ndroid/exchange/ExchangeService.java
c041c799f3dc804ef233bbf7b5725b4e92363433 28-Dec-2010 Marc Blank <mblank@google.com> Merge "Fix synchronization issue w/ closing CachedCursor"
788408dee4ef861a5b3196992984d7aad4889992 26-Dec-2010 Marc Blank <mblank@google.com> Fix synchronization issue w/ closing CachedCursor

Bug: 3306031

Change-Id: I3000cf92c27e93b2df94799492fb9960a3d795dc
ndroid/email/provider/ContentCache.java
926e7369d114f5747a81710987500ff407fba964 26-Dec-2010 Andy Stadler <stadler@android.com> Remove UI thread disk access from AccountSetupNames

* Remove unneeded DB read in onCreate (add runtime checks for problems)
* Move more exit/commit work to existing AsyncTask
* Add lockout of next & back keys while processing

Bug: 2792509 (probably others)
Change-Id: I0db030a1f1df94ba721510b5112519f260f5c0f9
ndroid/email/activity/setup/AccountSetupNames.java
4f6a507d9b5cfd7a9543d554243966e0ac982196 25-Dec-2010 Andy Stadler <stadler@google.com> Merge "Fix ANR's in AccountSetupOptions"
ec9398e7c6dc7a016b68ea3009fd950f898763a0 24-Dec-2010 Andy Stadler <stadler@google.com> Fix ANR's in AccountSetupOptions

* Move all db ops off UI thread
* Reorder methods in typical progression (they were random)

Bug: 3134660
Bug: 3134677
Change-Id: Idd4f411e937336bbd09bcc03d9ad036d22dc5e19
ndroid/email/activity/setup/AccountSetupOptions.java
adbb6f8bc4df787a8e589d505b3f2e7d9c47cea4 23-Dec-2010 Makoto Onuki <omakoto@google.com> Log cursor/adapter class name and such when detecting a crash

Also log where the cursor was closed, if it is.

To investigate bug 3308465 and bug 3305706

Change-Id: I2b0fd9ea14757b6cf7597cd7162686d050d43fe9
ndroid/email/Utility.java
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessagesAdapter.java
2959a7e073c87e2fa5fab42ec543b352a91cf187 23-Dec-2010 Andy Stadler <stadler@google.com> Fix ANRs from Email.setServicesEnabled()

* Create sync & async versions
* Rename all callsites so sync is very apparent
* Fix callsites appropriately
* Clean up interaction between reconciler and setServicesEnabled

Bug: 3133770
Bug: 3134677
Change-Id: Iefbc7814d9aa390baea6345e450e2a4768bf0a9a
ndroid/email/AccountBackupRestore.java
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/exchange/ExchangeService.java
6aec257fe7d3a4119a0aa81ddec0f9d167199e1d 23-Dec-2010 Andy Stadler <stadler@google.com> Merge "Fix NPE when changing server settings w/security dialog"
c4c3a71f9fdf8771a159ffc15964373990a51c3a 23-Dec-2010 Andy Stadler <stadler@google.com> Merge "Async code for read/unread and starred"
948bcad901ceadcad4841eca1930530e764d9c59 23-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Use swapCursor(null) instead of changeCursor(null)"
3b1cccf234cd95c3e1c4c568bc588ab06b06d3aa 23-Dec-2010 Andy Stadler <stadler@google.com> Async code for read/unread and starred

* Move each worker into async (combining common code)
* Update unit tests to match
* Make the message->account->controller lookups more efficient

Bug: 3134653
Change-Id: Icc82998a5d8eb07c7ebc7edbd28cd9308378d866
ndroid/email/Controller.java
d8f1d8f2ff75502b86c8ce7b8a738eddc731a607 23-Dec-2010 Andy Stadler <stadler@google.com> Fix NPE when changing server settings w/security dialog

Bug: 3302453
Change-Id: I8adb5166598b72f9eb4a26bbe47afc756e764159
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
8d22e85e459df3d94968389852859dacaf2baafe 23-Dec-2010 Andy Stadler <stadler@google.com> Reduce/eliminate DB access in server settings

* Create shared async worker to check for duplicate accounts
* Use it in AccountSetupIncomingFragment
* Use it in AccountSetupExchangeFragment
* Debounce proceed/next button because work is now async
* Also, upgrade leftover old-style code in AccountSetupOutgoingFragment

Bug: 3134666
Change-Id: I5c24a6546d1ab66aedc5c4ac826ddf4f1ff53446
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
e0f28d78532bca93c09061e97e5fc4c97f0ce7b7 23-Dec-2010 Makoto Onuki <omakoto@google.com> Use swapCursor(null) instead of changeCursor(null)

The later closes the old cursor while the former doesn't.
LoaderManager takes care of closing cursors, so no need to close
cursors by ourselves.

Change-Id: Ib652e6877dcfc1fea51ffc862254eaeed451cdfa
ndroid/email/activity/MessageListFragment.java
6ebaa90847e6e9c7624c18905971a003b2ee902b 23-Dec-2010 Andy Stadler <stadler@google.com> Reduce/eliminate UI thread access in MailService

* Make most calls to AccountBackupRestore return immediately w/o DB access
* Move most workers in MailService into async runnables
* Remove account restore / null check from ACTION_SEND_PENDING_EMAIL
* Strengthened unit test on Mailbox.findMailboxOfType() because after
removing the account check (above), sendPendingMessages depends on
findMailboxOfType() returning -1 on a missing account.
* Clean up a bunch of warnings (no longer use deprecated Config.LOGD)

Bug: 3133763 (and probably others)
Change-Id: Id39707bca7a8ebf5000f84d542013411ff0f422e
ndroid/email/AccountBackupRestore.java
ndroid/email/service/MailService.java
9f7e3982ada78ab64e82a797186633684d02dec5 22-Dec-2010 Andy Stadler <stadler@google.com> Reduce UI thread disk access in account settings

This change is in top-level settings for a given account:
* Call saveSettings async on UI changes, instead of synch at onDestroy()
* In loadSettings, get default account id async

Also sprinkled in some TODOs for future whack-a-mole fixes.

Bug: 3133639

Change-Id: I5216c78d28b35fe47e43b48ad0db3a3e57b25004
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
84dfef90850c53d093825bd42e56f2cfdf1b6993 22-Dec-2010 Marc Blank <mblank@google.com> Merge "Put individual account inboxes in widget rotation"
22b33a5a4a8c8315ebcd4111ac5c2d0bc78488c1 22-Dec-2010 Makoto Onuki <omakoto@google.com> Show stacktrace when failing to load message body

Change-Id: Ie6b2dda6fa32982e48e052f5f8fe2c699ebc8a01
ndroid/email/activity/MessageViewFragmentBase.java
66b6b956464a4ad357d4273b387f6a128e8add24 21-Dec-2010 Marc Blank <mblank@google.com> Put individual account inboxes in widget rotation

Change-Id: If1fddc107d9934849bbf273a67dd1db9c2063d99
ndroid/email/provider/WidgetProvider.java
ab1674a2d6deca2ef076d4d7e3458fc03860af2e 22-Dec-2010 Makoto Onuki <omakoto@google.com> Cosmetic changes to MessageView

- Don't show the progress icon unless loading from network
- Don't show the content until LoadAttachmentsTask finishes
- Disable the fade-in animation. It causes some weird positioning issue
with the GL accelerated webview.
- Use WebView.clearView() to clear its content.
- Use the "normal" layout mode, otherwise WebView won't use its entire
width
- Don't hide the vertical scrollbar

Bug 3287729
Bug 3225068
Bug 3295761
Bug 3304396

Change-Id: Ic4b8baac99b71dc0da58021849ff7c1dbd6dbe55
ndroid/email/activity/MessageViewFragmentBase.java
9c4458dcd71e62bbf51a7be934f12728f85afdd0 21-Dec-2010 Marc Blank <mblank@google.com> Don't try to show thumbnail for unloaded attachments

Bug: 3292689
Change-Id: I7575cb891f0b46c4a8564b5d2c4907025d91c639
ndroid/email/activity/MessageViewFragmentBase.java
8b9f2a7284337bfb23d5e2f8de9f1c70cb9532a1 21-Dec-2010 Dianne Hackborn <hackbod@google.com> Update to use new Loader callbacks.

Change-Id: Ib478c2f2314bbae4a380539e22892d85dd9a34b5
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/data/MailboxAccountLoader.java
ndroid/email/data/ThrottlingCursorLoader.java
d9b251d23b30e25cf388fbbc1a9bdbb3f7caeebd 20-Dec-2010 Marc Blank <mblank@google.com> Properly return zero-count cursor from getMatrixCursor

Change-Id: I574528bf56b5a82ecbaab3d3501b26e7afb974ec
ndroid/email/provider/ContentCache.java
0698f4027f099a017ad7815f16572ba422d3413d 20-Dec-2010 Dianne Hackborn <hackbod@google.com> Update to new Loader APIs.

Change-Id: Ic228f7b785f0d902a0188cfe995006b73b8a3c8b
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/data/MailboxAccountLoader.java
0fd8ae8808562fffb805f3c1206be286d7732e20 17-Dec-2010 Marc Blank <mblank@google.com> Pixel perfect Email widget

* Functionally correct and pixel perfect
* All current assets in place

Bug: 3292507
Bug: 3284201
Bug: 3135118
Bug: 3255036
Bug: 3252913

Change-Id: I8fa6752748c74b3a9789a3675da12f6c0c11975f
ndroid/email/provider/WidgetProvider.java
22fb45817b555d7796a02a5738f175d825071725 17-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Follow-up to the loader API change"
28d6e09575cc5b9091c5d29990792db3465cccf0 17-Dec-2010 Makoto Onuki <omakoto@google.com> Follow-up to the loader API change

This should fix the "attempt to re-open an already-closed object" exception
from SQLite.

(destroy()s don't have @Override becuase the base method is now depricated
and will be removed someday.)

Bug 3288666

Change-Id: I4780f6c8d89c7204b266608462c0833ad5af4e5f
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/data/MailboxAccountLoader.java
120674a05c05303f0eb93f6be2de5048ac6426cb 17-Dec-2010 Marc Blank <mblank@google.com> Merge "Harden AttachmentDownloadService; fix storage calculation"
edb05ca5ee21a9f410416b427141be59be01f5d2 15-Dec-2010 Marc Blank <mblank@google.com> Harden AttachmentDownloadService; fix storage calculation

Bug: 3292720
Bug: 3286634

Change-Id: I378aac369ee8317c0c41b1f021a3731b81bcb380
ndroid/email/service/AttachmentDownloadService.java
1504ef5fd1d077bedc40e93e8aa626dcc7a32c62 17-Dec-2010 Marc Blank <mblank@google.com> Merge "Remove unused debug flag"
f3ced5b8a55805984317499dd79da343bf1dfccb 17-Dec-2010 Marc Blank <mblank@google.com> Merge "Remove unnecessary logging in Utility.attachmentExists"
54250337a08dda0bf42b0e871ab8371c90243dbf 17-Dec-2010 Marc Blank <mblank@google.com> Remove unused debug flag

Change-Id: I88ef517a5b4860c30f1eb2a52f15d8f07c823797
ndroid/email/Email.java
f995f680a8ceb4a61a6f0db7324d558fc204a8fa 17-Dec-2010 Marc Blank <mblank@google.com> Merge "Throw exception on illegal URI's in EmailProvider operations"
d3fafabd0fd4bd547663d7339fd860b66dd7f130 17-Dec-2010 Marc Blank <mblank@google.com> Remove unnecessary logging in Utility.attachmentExists

Bug: 3292689
Change-Id: I937ef44b4576634fd870c759a13f3d27255112bd
ndroid/email/Utility.java
e6a22dff397e6453e1f56518d840c0bdd11f673b 16-Dec-2010 Marc Blank <mblank@google.com> Throw exception on illegal URI's in EmailProvider operations

Change-Id: I6354c03e7cead81df3764b7d0bd1be0e90271664
ndroid/email/provider/EmailProvider.java
5b393bfeceea2b8f028d83b765cacf4de14f38de 17-Dec-2010 Andy Stadler <stadler@google.com> Merge "Show attachment download progress/status properly"
66249095336834c341441b4909ba8d8767fd224c 17-Dec-2010 Andy Stadler <stadler@google.com> Show attachment download progress/status properly

Bug: 3291532
Change-Id: I3ceab8a67095190898273b9ccd5a1016218edcb2
ndroid/email/ControllerResultUiThreadWrapper.java
80769cefb3f34dfeccb38fb5b67b3ced172b830e 16-Dec-2010 Dianne Hackborn <hackbod@google.com> Prepare for some changes to LoaderManager/Loader.

Sorry it is a bit ugly, it is to allow this change to be
checked in prior to the first stage of the framework change
without breaking the build.

Change-Id: I1828579019ac0325d19c070a4c62cd79549e7d51
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/data/MailboxAccountLoader.java
303816534dfb3093b58670e79031991a3509ff2f 16-Dec-2010 Makoto Onuki <omakoto@google.com> Don't show app name on action bar

Need to hide the action bar title when showing account spinner.

Change-Id: Id85fa91f1b89fbd9d2a92bd2d175121176b8a2f0
ndroid/email/activity/MessageListXL.java
a9939ab165fbd16058b4b0612e757ca9f2a4b270 16-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Disable "upgrade accounts" for now."
497039234182170ada90e63e96650b5675429ff5 16-Dec-2010 Marc Blank <mblank@google.com> Synchronize properly with ContentCache; document synchronization

Bug: 3291682
Change-Id: I69c4a3b2ee62a41e6488b63deeb975e510a3f554
ndroid/email/provider/ContentCache.java
e6214d1f87eaf41254a7703fd5d721c5baf30770 16-Dec-2010 Andy Stadler <stadler@google.com> Merge "Restrict download/display to "attachment" and "inline""
b358da33444cdf2857d96ec69c89626a4cb9356d 16-Dec-2010 Makoto Onuki <omakoto@google.com> Disable "upgrade accounts" for now.

This will not be necessary on tablet.

Bug 3122020

Change-Id: Ifff59a11ccf628fdb5b6d007a7a6591db10153ce
ndroid/email/activity/UpgradeAccounts.java
2a63ac55e95df2e1c4e40ed5284bb8891c064f87 16-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Add null checks to investigate bug 3275738"
ebf0f18cbad20d39900d5ed165fff9978d929e5f 16-Dec-2010 Makoto Onuki <omakoto@google.com> Add null checks to investigate bug 3275738

Change-Id: I55f83336c5059b7ea6234b9451c60c4c062fdb06
ndroid/email/provider/WidgetProvider.java
014e31a62c66daca5175f962e18ac7ac91444ce2 16-Dec-2010 Andy Stadler <stadler@google.com> Merge "Use generic contact icon for notifications & messages"
c1c3b6f21ecddbb237195caedc36af442ebf00e8 16-Dec-2010 Andy Stadler <stadler@google.com> Use generic contact icon for notifications & messages

* Copies the icon from contacts
* Used whenever the sender doesn't have a local photo
* Used in notifications and in messageview

Bug: 3282187 (notification)
Bug: 3285156 (memory leak from the placeholder graphic)
Change-Id: I528cae20355aa8cce7be37b26f32aa90e092708b
ndroid/email/NotificationController.java
ndroid/email/activity/MessageViewFragmentBase.java
f7660220a836374f18a579422ded9aaae748db8c 15-Dec-2010 Marc Blank <mblank@google.com> Merge "Enable cache logging for debugging (w/ STOPSHIP)"
74596b3799093fa50603d4cd8df7ee1f74b46c05 15-Dec-2010 Marc Blank <mblank@google.com> Enable cache logging for debugging (w/ STOPSHIP)

Change-Id: I97493430f2aedcb070bc6d1789e47b562394eeb3
ndroid/email/provider/ContentCache.java
e3a17f1438e454518a58fc0841bb615344acf865 15-Dec-2010 Andy Stadler <stadler@google.com> Restrict download/display to "attachment" and "inline"

* Check content-disposition and restrict to these two types
* Add unit test
* Reformatting collectParts (code style cleanup)

Bug: 3242502
Change-Id: I5dcbdda5d4788502113771f4fd1b5fff834a402d
ndroid/email/mail/internet/MimeUtility.java
884589fddbef4dda6a69df58b645db2c6224d26e 15-Dec-2010 Andy Stadler <stadler@google.com> Merge "Only show attachments UI for downloadable attachments"
05340736daee23c1bbf3bfbe410e62ae5fe19192 15-Dec-2010 Andy Stadler <stadler@google.com> Only show attachments UI for downloadable attachments

Bug: 3286678
Change-Id: Ied64674cbfaef95228d5d3d8c99e5f5989b8a3c0
ndroid/email/activity/MessageViewFragmentBase.java
00d10299b5758d12dcd5e54cac72bd8b047167ac 15-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Store application context to avoid activity leak."
e1b4d2cd4a312594507a451f51d8230ef448af12 15-Dec-2010 Makoto Onuki <omakoto@google.com> Store application context to avoid activity leak.

Bug 3285156

Change-Id: I579cf628d178cabf999fc7cd63765298d2082944
ndroid/email/ResourceHelper.java
ef2261fa00eb214a7372111e720ce0975722d409 15-Dec-2010 Marc Blank <mblank@google.com> Merge "Fix placement of invite icon in narrow mode"
de39190bc18b3adb506c276486b8b49080a9d3eb 15-Dec-2010 Marc Blank <mblank@google.com> Fix placement of invite icon in narrow mode

Bug: 3285416
Change-Id: I36a78eb486a45b780663a8fb24ee092b964ba1b0
ndroid/email/activity/MessageListItem.java
8ec0dcfe0d241cdac946a8c131472913c7349492 14-Dec-2010 Andy Stadler <stadler@google.com> Fix NPE on rotation

* onAttach is called fairly early when rotating, so it needs to do
very little.
* or in this case, defer some work until onResume

Bug: 3170922
Change-Id: Ie760125c5f32b293f8ba1753f2993de0d7439b56
ndroid/email/activity/setup/AccountSettingsXL.java
9afd6bc59f23109849d5fdb5bd2c879fa0f55e13 14-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Fix unit tests"
f4b855c9bf9bcc1c0690ab6279a9754b72a473de 14-Dec-2010 Andy Stadler <stadler@google.com> Merge "Turn down email logging to shippable levels."
fd5a5f14eaf1b0058de32265744e070321ca1090 14-Dec-2010 Andy Stadler <stadler@google.com> Turn down email logging to shippable levels.

Change-Id: I8426743aebef2329c8958926d7b29abe1309feb0
ndroid/email/Email.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
c849936a36424645af73dc307b19778a89d6ee84 13-Dec-2010 Makoto Onuki <omakoto@google.com> Fix unit tests

- Now ProviderContextSetupHelper.getProviderContext() invalidates DB cache

* MailboxAccountLoaderTestCase
- Save hostauth properly
- (ProviderContextSetupHelper invalidates cache before each test)

Bug 3280911

* SmtpSenderUnitTests
- Use ProviderContextSetupHelper to create isolated context,
which now also invalidates DB cache

Bug 3280913

* MailboxFinderTest
- When kicking Controller.Result methods directly from tests,
call the raw callback, rather than the one wrapped with
ControllerResultUiThreadWrapper, to make it synchronous.

Bug 3280898

* MessageViewTest
- Disable testOpenMessage()
This test doesn't work because it sets up test data in an isolated
context but the activity/fragment don't see them because they
use the real context.
I have no idea why it worked before... Maybe because there were
accounts/mailbox/message with the same ID in the DB by chance.

Bug 3280905

Change-Id: I6beb08c58fff102e90bebd2c35f70820268b9e62
ndroid/email/activity/MailboxFinder.java
0f27b78669d769f84e070f11e9f4065b8eecda55 14-Dec-2010 Marc Blank <mblank@google.com> Merge "Implement prefetch of IMAP/EAS attachments"
75a873be8420e50f0aeb5a77716358ee0ca66b01 09-Dec-2010 Marc Blank <mblank@google.com> Implement prefetch of IMAP/EAS attachments

* Load attachments in the background for IMAP/EAS messages
* Download an attachment from account X if:
1) 25% of total storage free
2) Attachments for X use < 1/N of 25% of total storage, where N is
the number of AccountManager accounts
* Add accountKey to Attachment table for performance

Change-Id: I913aa710f34f48fcc4210ddf77393ab38323fe59
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
06a2f4a3b1322fb6fecb908bd04e777199529ce7 04-Dec-2010 Marc Blank <mblank@google.com> New message list formatting per pixel perfects

* Need icon assets (attachment, meeting, star on/off, and
checkbox on/off)

Change-Id: I6780fb354584ce5ea398b555a8485cf600617586
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
f946ff001914abce9ea06b1ceecd29cdb7e10ef3 13-Dec-2010 Andy Stadler <stadler@google.com> Fixed issues that cause rotation to NPE

* Add the checker fragment (instead of replacing)
* Don't refresh progress/error dialogs until onResume (a bit later)
* Don't recreate terminal error dialogs that were automatically
regenerated by the fragment manager.

Bug: 3020074
Change-Id: Ia2947965b758f6846c62ac394ce51da2432523ee
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
23d6d9cf24b47d8ba0742d02533db02a5061e863 13-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Controller.Result callbacks should all have accountId"
aef9515ee70f1f0b6cc4fa601078597b55831331 10-Dec-2010 Makoto Onuki <omakoto@google.com> Controller.Result callbacks should all have accountId

- Added accountId to loadAttachmentCallback/loadMessageForViewCallback

- Cleaned up LegacyListener/MessagingListener.
Removed the constructors which take messageId and attachmentId, which
are used to bridge loadAttachmentProgress, which the callsite doesn't know
these IDs. The inconsistency (only loadAttachmentProgress() uses the member
messageId) doesn't look too good, so extracted this into a separate class,
MessageRetrievalListenerBridge.

Change-Id: I46303e50df2b0e1fe8616e7c9cef632ac14f23aa
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/provider/EmailContent.java
8b818ea568ee553bc795ed89fdb473b9bfdd0866 09-Dec-2010 Marc Blank <mblank@google.com> Delete attachment files when wiping Email data

Bug: 3276145

Change-Id: I8fd48a7b2c312929e9a4caf3682dadd610c997e9
ndroid/exchange/adapter/EmailSyncAdapter.java
3dedc8b19172066e45a146f1e5065d7cdc00236a 09-Dec-2010 Andy Stadler <stadler@google.com> Defragment AccountSetupBasics

* This was an early attempt at fragmentation
* But it turned out that no fragment was needed here - it is
not shared or reused in any way.
* Precursor to doing final layouts for the activity.
* Tested working:
Automatic provider lookup
Manual
POP/IMAP and EAS flow modes (from accounts & sync)
Force account creation intent
Provider note
Duplicate account detection

Change-Id: I434edd4b152391d36e70440873932db3ec1a1c99
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
e7f4d3ebfcf497c015ba65be7ecebea8926b995c 09-Dec-2010 Andy Stadler <stadler@google.com> Handle upgrade path for adding DPM policies

* All active admin checks now go through common method
* Common code check both isAdminActive and the new (upgrade) policies

Bug: 3253179
Change-Id: Ie81f35906c164051f38c1f1f637d0c04b37eef16
ndroid/email/SecurityPolicy.java
a8133823ecb1744bfafe8f481473b78f9e8957aa 09-Dec-2010 Andy Stadler <stadler@android.com> Merge "Fix two errors reported by continous test"
68831e7c3470ef1ba76eee5367975c2d5d6f72b3 09-Dec-2010 Andy Stadler <stadler@google.com> Merge "Allow non-monkey creation of test accounts"
c1e8c95d053464e0821d45347704bd6c27e7e546 09-Dec-2010 Andy Stadler <stadler@android.com> Fix two errors reported by continous test

* Add "ForTest" to skip ProGuard stripping
* Remove an unused method

Change-Id: I2af04f39bfafc3b3abd433f158363e37d9daccdd
ndroid/email/RefreshManager.java
8f11b60190b576cb31e8c4cfea36a5896522f733 09-Dec-2010 Marc Blank <mblank@google.com> Merge "Move download cancel logic into helper"
69fc25244ba1b30856426c77c2e4be3964eb50da 08-Dec-2010 Marc Blank <mblank@google.com> Move download cancel logic into helper

Bug: 3255707
Change-Id: I7f92bd1bb90a4430426123551075746ba9d4af85
ndroid/email/service/AttachmentDownloadService.java
6175300474f01460523ccb3efc9f93722cadf2e0 09-Dec-2010 Andy Stadler <stadler@google.com> Allow non-monkey creation of test accounts

* Set the debugging flag to allow it
* Add STOPSHIP (it cannot go out like this)

Bug: 2735784
Change-Id: Id5d162f7f1879b76004a24d5d81e769b06ef8d29
ndroid/email/activity/setup/AccountSetupBasics.java
6a78be96231ff0731f4a5bb08a65bdf589801246 08-Dec-2010 Andy Stadler <stadler@android.com> Merge "Add preference for background downloading"
f983c75b447485fc64c073ab57239c5d15834b66 08-Dec-2010 Andy Stadler <stadler@android.com> Add preference for background downloading

* Defaults to false
* Placeholder text

Change-Id: I7c729eddb7b4d368a0ac47552c911d2ef11b3ee1
ndroid/email/Preferences.java
ndroid/email/activity/setup/GeneralPreferences.java
91431ca0779dfbcfdd75afc1f89610b255c21f6b 08-Dec-2010 Marc Blank <mblank@google.com> Merge "Clean up initialization of statics in WidgetProvider"
9d2e36412d92e148660d6847c4ce22674a47ce06 08-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Update error banner"
16badc0822ea04f9e53848795724b2f7b51347d1 08-Dec-2010 Marc Blank <mblank@google.com> Clean up initialization of statics in WidgetProvider

Change-Id: I432126a6f403c4d2f280aef5545d1638371ac755
ndroid/email/provider/WidgetProvider.java
3a4b9e140e6649062117f32d850951bd928f0fd7 08-Dec-2010 Andy Stadler <stadler@android.com> Fix failing tests in AccountSetupExchange

A recent change was short-circuiting the logic that loads
the UI from the account. This fix simply resets the flag
so the test can reload the UI multiple times as it tests things.

Change-Id: I7cc53e2766b78172e5a7b05088e94fdec99ae0d6
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
45e04b009d570235c542f3c97eaa7e1d00e6cc7b 08-Dec-2010 Makoto Onuki <omakoto@google.com> Update error banner

1. Error banner now pushes down the entire screen, rather than covers it.
2. Switch to the new ObjectAnimator for the animation to achieve #1.
(Traditional Animation doesn't do this)
3. Dismiss the banner when getting any callback with MessagingException == null
and progress > 0, only when the account is the one that caused the last error.
4. MessageListXL now registers its own ControllerResult to detect
connection errors, and more importantly, when they're cleared.

Bug 3240874
Bug 3240406

Change-Id: I07f8e2f589bb1d312859824f9ec398879003ba16
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/activity/BannerController.java
ndroid/email/activity/MessageListXL.java
4d02297f4a32409cc3861ed9d3e95c3f31602faf 07-Dec-2010 Makoto Onuki <omakoto@google.com> MessageView: Show progress icon while loading

To avoid flicker.

Bug 3225088

Change-Id: Ic5faea4e6fc810aa751b9f0b9d04537e5dc29970
ndroid/email/activity/MessageViewFragmentBase.java
2ac95b550df19617eace2e7436049926da5c606b 07-Dec-2010 Makoto Onuki <omakoto@google.com> Message view: Use system tab style

Bug 3138021

Change-Id: I18ec66966e984a4f2b9e330d0ef14dbca5cce5e3
ndroid/email/activity/MessageViewFragmentBase.java
0d8742dc14bfa55011897304f87081bdfe90cc7c 06-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "New style for the new message notification"
74e094834c6efd3260c717090a89232a892c411b 03-Dec-2010 Makoto Onuki <omakoto@google.com> New style for the new message notification

Bug 3176956

Change-Id: Id7418fb8bb942230266815167f0a2e79062a9116
ndroid/email/NotificationController.java
6a858c1be26a9881afdb1027bc2cf02acaf6fc65 04-Dec-2010 Makoto Onuki <omakoto@google.com> Make widget open appropriate screen

Widget should open MessageListXL on tablet.

Bug 3253813

Change-Id: I5cfa63b571e443a0217bc9332bb4a76a039143ac
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/Welcome.java
ndroid/email/provider/WidgetProvider.java
69cd842c07766c5c822fb9ad486d76b19be453b5 06-Dec-2010 Andy Stadler <stadler@android.com> Merge "Add magic intent to force account creation"
454f39f68b14b5cc70be290f01a6b8724a21e1c5 06-Dec-2010 Marc Blank <mblank@google.com> Merge "Revert "Workaround for improper timeout for Ping commands""
07891f011c5d01e7c9ca60453004e622deb2854c 06-Dec-2010 Marc Blank <mblank@google.com> Merge "Always return widget from onGetViewFactory"
d685b469c73c3479c09301da2e65cd7c11fd4ace 05-Dec-2010 Andy Stadler <stadler@android.com> Add magic intent to force account creation

* Add entry point via com.android.email.CREATE_ACCOUNT
* Enable when in monkey mode only
* Walks through setup screens as if auto-populated and as if
connection checking always succeeds.
* Refactored some common code in AccountSetupBasicsFragment
* Removed obsolete commentary about auto-population of EAS accts
* Also fix minor typo in FLOW_MODE_ACCOUNT_MANAGER_POP_IMAP

Bug: 2735784
Change-Id: Ie7363836cd267673e963e60ae8bc32cab422576e
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/SetupData.java
3181679e9578a492b595eeb5a7ecc11c407ca17e 04-Dec-2010 Marc Blank <mblank@google.com> Always return widget from onGetViewFactory

Bug: 3250431
Change-Id: I161189b6cec2d2a1fe0e511c1e78390673efb0b9
ndroid/email/provider/WidgetProvider.java
6b68bc19a6bd37bb5256efc4ebd0957982946f34 04-Dec-2010 Marc Blank <mblank@google.com> Merge I31258a5fbcca1f489c8bf6fb2ed8f3dcad5d2e26 into master

* This is the fix to bug 3008626 that was created in Gingerbread
and backported to Froyo for an MR release
* The bug prevented validation of EAS w/ Exchange Server 2010 SP1
* For some reason, this fix did not get merged forward into master
resulting in the bug referenced below

Bug: 3254512
Change-Id: I4e48a8f95b31048f09a036cc16db867da4116f04
ndroid/email/mail/store/ExchangeStore.java
3127277ad5833858a3b48398dbb282a07567116b 03-Dec-2010 Marc Blank <mblank@google.com> Merge "Never close underlying cursor if there are active users"
c159d32be05ee744f3726579d9cd8eed39545137 03-Dec-2010 Marc Blank <mblank@google.com> Never close underlying cursor if there are active users

Bug: 3249537
Bug: 3238216
Change-Id: I281f0b0d6319adaffd78fe8e4c3da6f126eb71da
ndroid/email/provider/ContentCache.java
a4853b9a8169319ab793fe6bf49e885784f31853 03-Dec-2010 Marc Blank <mblank@google.com> Revert "Workaround for improper timeout for Ping commands"

* The underlying bug was fixed by bdc in I080147b017b961502b3ba98d40841fea679491eb

This reverts commit 9166aa46da96d179b5124d96babf9a34c8e1d619.

Change-Id: I51e7e585e7b1624cc2b08ea81baba6f2602a76cf
ndroid/exchange/EasSyncService.java
01cffb74b3c7f637ce3a83bd819f90e64ce87f51 03-Dec-2010 Andy Stadler <stadler@android.com> Merge "Update server settings to current look"
9d5aaeacd6b222877f25924818317c9153708261 03-Dec-2010 Makoto Onuki <omakoto@google.com> Follow-up to Id18fb940. Tests, fix transaction.

Change-Id: If425db7d729e260102a9db82b98e14ff6f6be143
ndroid/email/provider/EmailProvider.java
112ed496f817ebeab6b1ee1d5117259ef80342b2 03-Dec-2010 Andy Stadler <stadler@android.com> Update server settings to current look

* For each of incoming, outgoing, exchange fragment, create a "settings
mode" which slightly alters the layout for use in AccountSettingsXL.
* Build a settings mode wrapper layout around the basic fragment
* Add new constructor to set "settings mode" and select layout
* Add wiring for cancel/next buttons in the fragment
* AccountSettingsXL configures each fragment in its settings mode
* Remove old actionbar "Next" options (no longer needed)

TODO: Pixel perfect adjustments, colors, fonts, etc.

Bug: 3188951
Change-Id: Iba26281b214333db301dd40d6c016b6c5a932c2d
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
a2593be72e72ac1ca37a8a18c378c89b5bb1c6c8 03-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Update/invalidate cache properly in update()"
edb8af826ca8fd1bb0fa42dacac4af90a65ed554 03-Dec-2010 Makoto Onuki <omakoto@google.com> Update/invalidate cache properly in update()

This prevented EAS accounts from showing the new message notification,
because Account.newMessageCount in the cache didn't get updated
properly.

Bug 3249319

Change-Id: Id18fb94083e2f441c293414f790a26f82869e3da
ndroid/email/provider/EmailProvider.java
09fb0ca0a991df8f43d08404e468205309f1d216 02-Dec-2010 Marc Blank <mblank@google.com> Don't send CONNECTION_ERROR in reloadFolderList callbacks

Bug: 3249051
Change-Id: I4c06f59a644cce979c52e0578c025eb71c781fdc
ndroid/exchange/EasSyncService.java
4fdebfa03c87c54b2ee6b53124e6f0b07646d236 02-Dec-2010 Marc Blank <mblank@google.com> Merge "Workaround for improper timeout for Ping commands"
9166aa46da96d179b5124d96babf9a34c8e1d619 02-Dec-2010 Marc Blank <mblank@google.com> Workaround for improper timeout for Ping commands

* We're seeing our ping timeouts complete after 30 seconds (although
set to 5-17 minutes), due to the fact that our reused sockets are
not having their timeouts reset (i.e. they use the original value
of 30 seconds from when the socket was first created)
* Until the underlying issue is resolved, we'll avoid reusing
sockets for Ping commands

Bug: 3241899
Change-Id: I90b53c0d28b866a91507efafacbb3c4c0df2324c
ndroid/exchange/EasSyncService.java
7c7bbafc161d3bae5e921c1551136392cf30eafe 02-Dec-2010 Andy Stadler <stadler@google.com> Merge "Make sure snippet is never null"
d9957db8741a617c48f86295f124c66c7260c6cc 02-Dec-2010 Makoto Onuki <omakoto@google.com> Merge "Don't enable "save draft" when a draft is just opened."
d3a9ab946caef4cdc8ef81f7fd8f445fdba3782f 02-Dec-2010 Andy Stadler <stadler@google.com> Leave empty inbox when clearing out account.

* Makes things simpler for UI state on a wiped account
* Also wipe sync keys from remaining account & inbox
* Unit tests

Bug: 3245274
Bug: 3245779
Change-Id: I74cc6d7859dad54961426b70ffe0541ce49e3b91
ndroid/email/Controller.java
6e8d964faac2c0a5e0f5d12943b900468de79efe 02-Dec-2010 Marc Blank <mblank@google.com> Make sure snippet is never null

Bug: 3241603
Change-Id: I5ef35e041b70e72005204ac242b46b5747617b87
ndroid/email/activity/MessagesAdapter.java
e633b9d7c2a78f0cdd2b6c7f8952bbffb5411a7d 01-Dec-2010 Christopher Tate <ctate@google.com> Merge "Track drag/drop API change; no behavioral change"
8686591aa89a63337ed42a504d4598329ec8fe5f 01-Dec-2010 Makoto Onuki <omakoto@google.com> Don't enable "save draft" when a draft is just opened.

The problem was that setIncludeQuotedText() always set mDraftNeedsSaving,
but it shouldn't be done when loading content.
(Do it only when it's toggled by the user.)

Bug 3162882

Change-Id: I6308376020f5be6d1a15b7865f8c7e02cf875eb9
ndroid/email/activity/MessageCompose.java
1b9337ea4f41c12cb108cbe67e0077169b1f0b8c 23-Sep-2010 Marc Blank <mblank@google.com> Wireframe email widget

* Formatting and assets are preliminary
* Functionality correct
* Needs cleanup, etc.

Change-Id: I75051df93d233ef529a616c7a9efae403d320bd2
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/WidgetProvider.java
4f4c902916d0a89952788a55c19d977fca478f82 01-Dec-2010 Adam Powell <adamp@google.com> Merge "Update for ActionBar API change"
4a54ec9b01cb83329ad17944689882bca5524cf6 01-Dec-2010 Adam Powell <adamp@google.com> Update for ActionBar API change

Change-Id: I209a4409180f45146423254ed36a9859daa86547
ndroid/email/activity/MessageListXL.java
2219bd004347851a8c4fa687920ca86da647046d 01-Dec-2010 Christopher Tate <ctate@google.com> Track drag/drop API change; no behavioral change

Change-Id: Id5a2e1aad453663f7b8baae7e5a1aab8209e0e74
ndroid/email/activity/MessageListFragment.java
1ca111c19c83d54ad23bd8615d9c648e09ec3366 01-Dec-2010 Andy Stadler <stadler@google.com> Add password expiration plumbing

* Set aggregated expiration values with DPM
* Fix min/max logic when aggregating, and fix unit test
* Add expiration tests when checking if policies are active
* Add expire-password to uses-policies set
* Handle password refresh (clear notifications and sec. holds)
* Handle password expiration (warning and/or wipe synced data)
* Unit tests for provider-level methods
* Refactor common security notification logic
* Placeholder notification strings (need final)

Bug: 3197935
Change-Id: Idf1975edd81dd7f55729156dc6b1002b7d09841f
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/provider/AttachmentProvider.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
d1ee5b8fa5fe92df1ded5953a9e3f001b38a1ac7 30-Nov-2010 Makoto Onuki <omakoto@google.com> EML viewer: Set title, and show arrow next to the app icon

- Set "Viewing FILENAME" as title.
- Home icon now has "back" arrow. Closes the activity when clicked.

Bug 3221312

Change-Id: I689499e10704d3c5d206df4aa12e21db9687c4c5
ndroid/email/Utility.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageFileView.java
b8419984f06ef428a1adadcd7ea409549be94b45 01-Dec-2010 Marc Blank <mblank@google.com> Merge "Fix typo in ExchangeService"
b1d511309a137d16bb2074fa066294dd0fb74ab2 01-Dec-2010 Marc Blank <mblank@google.com> Fix typo in ExchangeService

Bug: 3241867
Change-Id: If805196409837bb8e1eeaa2e4ec82c2d1fad2c38
ndroid/exchange/ExchangeService.java
1832ea8c58e695d43e4f0564675611fba57560c4 01-Dec-2010 Marc Blank <mblank@google.com> Merge "Don't throw exception on moveToPosition in CachedCursor"
17d07ecdf713a136c4a0383345c500f232d9657a 25-Nov-2010 Makoto Onuki <omakoto@google.com> Hide selection mode when message list is not visible.

...without clearing the selection.

Message list can be hidden on portrait.

Bug 3228718

Change-Id: Idc9eb3416e151ac0c2b851824fcee10b346d51c5
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXLFragmentManager.java
68dc380d62b29b4b6733bc1b20e44b8931c1d341 30-Nov-2010 Marc Blank <mblank@google.com> Don't throw exception on moveToPosition in CachedCursor

* Just return false

Bug: 3240290
Change-Id: I808ca88c7897c573d19c2c2c92b179b4106a6dd3
ndroid/email/provider/ContentCache.java
e29189e3eeea9c629777b3deed6ea2be67caa737 30-Nov-2010 Andy Stadler <stadler@google.com> Cleanups to Controller & AttachmentProvider

* New method in AttachmentProvider to delete all attachments for an
account, and unit test it.
* New method in Controller to delete all synced data for an account,
and unit test it.
* Fixed existing problem with Controller unit tests (needed cache clear)
* Fixed existing problems in Controller (mContext vs. mProviderContext)

Bug: 3197935
Change-Id: I79c6a03c21f18d37eeb8158cd1c2af0e0a6e9d2e
ndroid/email/Controller.java
ndroid/email/provider/AttachmentProvider.java
3bbc690600d5fe697f02b739d4fe18f0f9f03314 29-Nov-2010 Marc Blank <mblank@google.com> Add watchdog to AttachmentDownloadService

* Detect attachment downloads that have stalled and restart them
* Catch a couple of cases in which we weren't sending callbacks

Bug: 3122242

Change-Id: Id2bfd3b26182004b301cf8665f4feb6e62b98b73
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
2201b38fe35606095428f06163cd5b66ec6147fb 29-Nov-2010 Makoto Onuki <omakoto@google.com> Add error message UI

Show an error message in a yellow bar at the top of the activity.

Bug 3230116

Change-Id: I45dad233c1ab52de365c8caedb4eeff29aefac65
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragmentBase.java
2d648f4ceca06b44864c7f4495b96f549eaacbf8 30-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Make "mark unread" close current message"
d14f93f2b46465ef9f29b9e393f3b9fd3ef625f0 30-Nov-2010 Marc Blank <mblank@google.com> Merge "Make sure we send callbacks for UI requested syncs"
2148d9b2e6992fe67f50e50fb14fbb9b6716495c 30-Nov-2010 Andy Stadler <stadler@google.com> Merge "Move "Add Account" to ActionBar"
97874770fc7cbe6a89a6ea706658fb42dff77a95 30-Nov-2010 Andy Stadler <stadler@google.com> Move "Add Account" to ActionBar

Not currently enabling/disabling properly, filing a framework bug.

Bug: 3188951
Change-Id: I9c8900187048f548411a23c2a1b0208c79fc0a24
ndroid/email/activity/setup/AccountSettingsXL.java
f3d43641c985c8b2d0da4ae420f15b4dd7cf2891 29-Nov-2010 Makoto Onuki <omakoto@google.com> Make "mark unread" close current message

- XLFragmentManager.selectMailbox() used to hide the message view
when it's visible, but not anymore. Made goBackToMailbox() itself
hide it instead.

- Also made onMarkAsUnread() not call the unread callback, which was
already done in onMarkMessageAsRead().

Bug 3214538

Change-Id: I52fb8bb745cdaa517624a9aeec074122f10aac4a
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragment.java
1b6623b09265218c360a2a27d94e387d0d70f6b6 29-Nov-2010 Marc Blank <mblank@google.com> Make sure we send callbacks for UI requested syncs

* In the case in which a sync was requested during an already-running
sync, we weren't passing the request information into the service

Bug: 3143544
Change-Id: I098161830844f604e4aa5b9c067491d2777d78c3
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
36cf7017848b5a21fdf5fde2eb57785efdcada4b 24-Nov-2010 Makoto Onuki <omakoto@google.com> New back behavior

The home icon on action bar and the system back key work slightly differently
on portrait.

home: full-screen message view -> mailbox list + message list
back: full-screen message view -> expanded message list
-> mailbox list + message list

Bug 3228524

Change-Id: I9bb598315ee829c6a8300a35d194a29c7a26291f
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/ThreePaneLayout.java
54513ed740020be77dec7a1b1aa4e81ba03f317d 24-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "pixel-almost-perfect: mailbox list"
9d6d5b30917dcb8b4d90677f337cf4a230163239 24-Nov-2010 Makoto Onuki <omakoto@google.com> pixel-almost-perfect: mailbox list

Bug 3137965

Change-Id: Ic5aa3327ddbd456024e1938b74c7da0452b682f5
ndroid/email/activity/MailboxListFragment.java
0cefe81b470b43195bfcb56a07b3eb8dacd9ab69 24-Nov-2010 Andy Stadler <stadler@android.com> Merge "Update visual style shortcut picker and make it async"
2e1c3eaaf15fa14eb7824e8da1666ca6ea363871 24-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Don't show color chips when there's only one account"
e2201949bab24427aff4f5d85e36e96f6a2a8af6 24-Nov-2010 Makoto Onuki <omakoto@google.com> Don't show color chips when there's only one account

Bug 3225322

Change-Id: Idb299f54dc6f746e7d451a7a04fb971a432a869a
ndroid/email/activity/MessageListFragment.java
ndroid/email/data/MailboxAccountLoader.java
d87f81e901842f1cfc589fadcf7a88d1e452f1c9 24-Nov-2010 Andy Stadler <stadler@android.com> Update visual style shortcut picker and make it async

* Use dialog when in XL screen size
* Show different strings in launcher and in dialog/activity title
* Add cancel button to picker
* Move accounts query to AsyncTask
* Remove obsolete AccountsAdapter

Bug: 3093928
Change-Id: Ief771482c6db684c434c21cf92844c37a927d34a
ndroid/email/activity/AccountShortcutPicker.java
e47c12dba84a5831f8a2ade2f44744b085e98bf3 24-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Don't show account dropdown when there's only 1 account."
08e1f2f782140f454a8ffda65424da1270096d8a 24-Nov-2010 Makoto Onuki <omakoto@google.com> Don't show account dropdown when there's only 1 account.

Bug 3225851

Change-Id: I7b411f8047e3b26cfe53f17c46c3e2611fb8ae9d
ndroid/email/activity/AccountSelectorAdapter.java
2eaa910a653e0a0a8cd80cdd148864136ebd02f6 24-Nov-2010 Marc Blank <mblank@google.com> Merge "Handle upsync of EAS contact "group" (category) rename/delete"
fb3c389a141e39d26ef3cf2c2819342078741508 23-Nov-2010 Marc Blank <mblank@google.com> Handle upsync of EAS contact "group" (category) rename/delete

Bug: 3211907
Change-Id: I7bec90dae7c223b4bd0d0f366d18cac37e53fbcc
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
5b81690de1ea15035ab0539df683acd8e28b0ebd 22-Nov-2010 Makoto Onuki <omakoto@google.com> Show color chips for combined view.

Show color chips for account rows and message items on the combined view.

Moved hard-coded color values to resource.

Bug 3138001

Change-Id: Ib93fb9d6e9592ebd0c297f83c3dee2358a80508f
ndroid/email/Email.java
ndroid/email/ResourceHelper.java
ndroid/email/activity/AccountsAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
46e60b51e2699e407e96ec5b4ae62116e0ab324e 23-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Fix & cleanup on EML viewer (MessageFileView)"
4091ffe94f08d39c9ae849d5ea9ce70018771086 23-Nov-2010 Andy Stadler <stadler@google.com> Merge "Move application icon to mipmap-* directories"
5c4c0ab45699796028251767fc966f6b8af417ec 23-Nov-2010 Andy Stadler <stadler@google.com> Move application icon to mipmap-* directories

Change-Id: Idc5df7046d0fa64ffbfce2869dffb4fe0fd144a0
ndroid/email/activity/AccountShortcutPicker.java
70188b71aa8ee831ef9ad5ac69824104279e94fc 23-Nov-2010 Marc Blank <mblank@google.com> Merge "Fix deadlock in ContentCache"
5835dcecedb4f6a7bd3473cce172de0fb699cf98 23-Nov-2010 Marc Blank <mblank@google.com> Fix deadlock in ContentCache

* The situation is that putCursor() is called from a reading thread
while invalidate() is called from a writing thread
* putCursor() must not hold the monitor lock on ContentCache while
moving the underlying cursor to position 0

Bug: 3224203
Change-Id: I35b798dccf245c761dc79c39ced4fc8c0cfb9d78
ndroid/email/provider/ContentCache.java
a6998d39fa6b4515c8afaa4253ad81a2389ebe06 23-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Implement screen transition animation."
d2dac0fd6c7f8e9f6741e3b2d4cc333231a22082 19-Nov-2010 Makoto Onuki <omakoto@google.com> Implement screen transition animation.

Bug 3137919

Change-Id: I077768bffb1eb246fdaa7d2def30c7b132566d69
ndroid/email/activity/ThreePaneLayout.java
1f3e117951e5ffe97a30bdd61c1cf99759f15406 23-Nov-2010 Andy Stadler <stadler@google.com> Fix rotation problems in setup/settings

* Fix incomplete tracking of mLoaded flag
* Defer validation on automatic reload of fields (on rotation)
until reconstruction completes and we're ready to do validation.
* (For Incoming only) Split loadSettings into configure and reload phases;
We need to configure the UI every time we restart, but we don't want
to reload & overwrite user-entered values on rotation.
* (For Exchange only) Properly show/hide trust certificates options on
rotation, and show/hide divider too.

Bug: 3170922
Change-Id: If3de30ee2d4d5668b29698af73f545510692777e
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
c0604d9648c051ee097b65517fb44ad02a2b5353 23-Nov-2010 Marc Blank <mblank@google.com> Merge "Don't layout with 0 width if we've got a real width"
d98b42e767101a15a655f0fd497ddca92b04f921 23-Nov-2010 Marc Blank <mblank@google.com> Merge "Remove unnecessary MessageObserver"
4238524d6fd20d38a109a7f2c4881909f19aeef0 22-Nov-2010 Marc Blank <mblank@google.com> Remove unnecessary MessageObserver

* We used this to ensure that messages placed in the Outbox would
trigger a sync, but this is already handled by a call to
startSync on the Outbox

Change-Id: I90e1b56dd437bbb9e3341bbe4b1ae8245aede891
ndroid/exchange/ExchangeService.java
452b34772942f767e2ba1a14fa03bdd58b29d180 23-Nov-2010 Marc Blank <mblank@google.com> Don't layout with 0 width if we've got a real width

Bug: 3221168
Change-Id: I85562cad4afe7ce494cdb4cd348cad23c6103936
ndroid/email/activity/MessageListItem.java
b715ea1d768de273cc4bf0d6b052c61ee1245cba 23-Nov-2010 Makoto Onuki <omakoto@google.com> Fix & cleanup on EML viewer (MessageFileView)

- Fix the XL layout: Don't refer to "GONE" views in RelativeLayout.
- Don't always (re-)load message on onResume().
This will make it lose all state (e.g. webview's zoom level) when coming
back from other activities.
- Change the default visibility of some views so that it'll look okay
while loading the message.
- Remove the use of obsolete fragment APIs.
- And some other minor cleanups...

Bug 3221066

Change-Id: I475bc229f4ea9e0e480f528389f5180e1d63fcd6
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
c8e623b31e35e1b3e5b2e253d8acdc0ab813f748 23-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Fix NPE in MessageViewFragment"
deda053f7c78755f7ce9a87ae5d7df3355e95cd7 22-Nov-2010 Makoto Onuki <omakoto@google.com> Fix NPE in MessageViewFragment

Call clearContent() in onDestroy(), instead of cancelAllTasks().
(This is what I thought I was doing.)

Calling clearContent() tells the BG thread that the activity has already
been destroyed, and prevents them from loading a message.

Also as a precaution, don't load a message if getActivity() returns null,
which means the activity has already been destroyed.

Bug 3134403

Change-Id: I0d591e0dd147f73e70b0c027dc8037482197f7b4
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
51f5cd7c16d8504e84ad046ea82999ae55e24875 22-Nov-2010 Marc Blank <mblank@google.com> Merge "Use consumeContent() to ensure release of HttpClient resources"
79c5d35c1324521a940c4dca8f594f2632df8421 22-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Correctly set intent to new message notification"
7f35dd8da77b9c94a32706d9a2165067d996bc73 19-Nov-2010 Marc Blank <mblank@google.com> Use consumeContent() to ensure release of HttpClient resources

Bug: 3197531

Change-Id: I7376b438edb05411950249bbf34cffa3ad8cb5a7
ndroid/exchange/EasSyncService.java
8d3ef1d01e1d3ae548366fe7961af23ed66f1da5 22-Nov-2010 Makoto Onuki <omakoto@google.com> Correctly set intent to new message notification

Bug 3219763

Change-Id: I7826e762713228ee4ca1ca1d57b4d7603df81a66
ndroid/email/NotificationController.java
7c90fa014d9d89748105742d9dbcd10e16dc1690 22-Nov-2010 Marc Blank <mblank@google.com> Merge "Implement password expiration for EAS"
cf3fb71bc6fd795c10dc1d7467292532c19041ae 16-Nov-2010 Marc Blank <mblank@google.com> Implement password expiration for EAS

* Hoist wipe() method from AbstractSyncParser to AbstractSyncAdapter
* Add deleteAccountPIMData(accountId) to the EmailService API
* Implement deleteAccountPIMData for EAS

Change-Id: I1037cde25fc2b24419f399446cfa0906dc0174d1
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/IEmailService.aidl
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/AccountSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/ProvisionParser.java
9cb0ad3cd62533bbdf1c6057d9f8f84611bac260 22-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Don't reset message view when becoming active again."
2e578032d09b376a48146932146f88394f731077 19-Nov-2010 Joe Onorato <joeo@google.com> Use new notification API to get the new features.

Change-Id: I47a6c46ebb7999663ec16f049c99c418f4333213
ndroid/email/NotificationController.java
4c9e1a3fdef233112f810c03daf1da229144da89 20-Nov-2010 Makoto Onuki <omakoto@google.com> Don't reset message view when becoming active again.

- We used to (re-)load the content on every onStart(),
which is called too when coming back from other actibities.
So if you go home and come back with the task switcher,
all state get reset, including webview zoom/pan and the current tab.

- Introduce a new flag, mLoadWhenResumed, to tell if we really need to
load a message.

Also:
- Start loading a message in onResume() rather than onStart()
to keep it consistent with other fragments.

Bug 3215269

Change-Id: I1cc6e12c3cc3c08065da3696603a3247f341469a
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
00fb40768903742ce44c1d732b55c075cc69d3c5 19-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Show current mailbox name and unread count on action bar."
f108837c1df2f20acbf5cd33d97a45f6747cff0e 19-Nov-2010 Makoto Onuki <omakoto@google.com> Show current mailbox name and unread count on action bar.

- Show them when the mailbox list is hidden
- Data flow:
MailboxListFragment ->(Callback)-> MessageListXL ->
MessageListXLFragmentManager, which controls the action bar.
(I'm not too happy with this flow, but we can at least avoid
issuing yet another query to get these data.)

Also related:
- On the combined view, show the unread count for account rows

Bug 3137891

Change-Id: I37fa1258d946329905bbbc0da905928bcf2f4cb1
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
9f04fdc5550f643141d13b2b033c4b1fb7c369e5 19-Nov-2010 Makoto Onuki <omakoto@google.com> Make home icon on action bar clickable

- Make the home icon on action bar clickable, and show the back arrow with it.
- When clicked, it'll navigate you back to the main screen.

Bug 3138037

Change-Id: Ice783e6b594347bd73b94e71d29a61ad4f5ef972
ndroid/email/activity/MessageCompose.java
6143d026c05e3857253b4c7e269364a505861a38 18-Nov-2010 Andy Stadler <stadler@android.com> Re-enable activity progress indicator

Bug: 3137891
Change-Id: Iea65b69dd376fd0026cd53680b901805a07fa101
ndroid/email/activity/MessageListXL.java
4ca7580e5d0311b12e2e062056d675c7bc45b68b 17-Nov-2010 Makoto Onuki <omakoto@google.com> New portrait look for 3-pane

- Removed opener/collapser
- Now the "fogged glass" is 100% transparent
- Move the landscape layout to layout-land

Bug 3137919

Change-Id: I4918f905aca698c78489e340dd330c7d4da8b106
ndroid/email/activity/ThreePaneLayout.java
6ffdecfbbb08d8612dd75720062973f75761fd38 18-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Add XL layout for message view"
8e8e37126094735ead1187dfeb012e9ce4169d35 17-Nov-2010 Makoto Onuki <omakoto@google.com> Add XL layout for message view

- Added the xl layout
- Cleaned up the existing one

Bug 3138021

Change-Id: Ic6ab5e38c10ac12ffeeb6b12319d1e192ac2a40c
ndroid/email/activity/MessageViewFragmentBase.java
937ea4fc87eabd8fe785abeb2af1a38450e3fca9 10-Nov-2010 Marc Blank <mblank@google.com> Initial rewrite of MessageListItem for XL

* Drawing all done by MessageListItem, based on view width
* Completely functional, layout tweaks required

TODO: Consider caching drawing values for performance

Bug: 3137994

Change-Id: Ie3de79357bfe976b2fcebdedb71dea011252b445
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
349055aad47184b72cd86de1f37ac1b7557d2e70 17-Nov-2010 Marc Blank <mblank@google.com> Allow ProviderTests to work with ContentCache

Bug: 3204331
Change-Id: I5399345c2b759fb34d3dc7c694eb0eef8d7de493
ndroid/email/provider/ContentCache.java
8afdca0baca321eb40d67ce506e180f0039016f8 17-Nov-2010 Marc Blank <mblank@google.com> Merge "Minor cleanups for ContentCache"
2199c7ddf5d497e816bef1a1b7473098369a1bdf 17-Nov-2010 Andy Stadler <stadler@android.com> Minor cleanups for ContentCache

* Change CounterMap to not extend HashMap
* Renamed remove() to subtract()
* Comment out a failing test
* Add a flag that prevents any objects from being cached

Change-Id: I74754133b505178e8b0166390f69509f006a3da2
ndroid/email/provider/ContentCache.java
878a9da42000bba1032015fe76a05a76aa52a44b 17-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Three pane behavior changes"
d2289c2f193a529f5566487d17b992bc4150be08 16-Nov-2010 Makoto Onuki <omakoto@google.com> Three pane behavior changes

- Now pressing back on the message view on portrait expands the message
list. Pressing back again closes the message view and navigates
to the mailbox list + message list view.
- Fixed the bug where the app icon on the action bar will lose the back arrow
on screen rotation.
- Code clean up.

Bug 3137919
Bug 3198987

Change-Id: Ia452f90ebe5599a2a8de905f4dabec6bd3ceb4a2
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/ThreePaneLayout.java
e6c6587b04a589eeb04006f75759c09ea10811e0 17-Nov-2010 Andy Stadler <stadler@google.com> Create XL layouts for incoming, outgoing, exchange

* Create XL fragments (will be shared w/settings)
* Create XL landscape activities
* Create XL portrait activities
* Placeholders left for integration with settings - remove in settings CL
* Quick fixes (non shipping) for phone UX
* Update existing portait next/prev buttons per new wireframes

Bug: 3188940
Change-Id: Ied6e7fd1e968fd6db57607a68dabf7e00ba78ee6
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
15f46cc7152288d99295125afa5da8a4900b77af 15-Nov-2010 Makoto Onuki <omakoto@google.com> XL layout for message compose

The layout is not final, but it's closer to the wireframe.
- All dimensions and colors are not final. I just made them up.
- The "+cc/bcc" and "add attachment" buttons are in the wrong position.

I'll wait for the pixel perfect before addressing them.

Bug 3138037

Change-Id: I72fc7557c28e72df08a3751c3c93acfb35749d68
ndroid/email/activity/MessageCompose.java
28214840dcc361573bd348e756cbb7b9539af3fa 16-Nov-2010 Marc Blank <mblank@google.com> Merge "EmailProvider content caching"
fab77f147f85766d2f75d8aece0aaa4ffb3838e8 28-Oct-2010 Marc Blank <mblank@google.com> EmailProvider content caching

* In this CL, we cache individual rows, based on the CONTENT_PROJECTION
defined for the most common queries (Account, HostAuth, Mailbox, and
Message)
* Queries on individual rows (most often Class.restoreClassById()) will
look to the cache first, rather than querying the database
* Queries on smaller projections will build MatrixCursor's from cached
data
* Write-through caching updates the cache with changed columns
* Experiments with live data indicate that > 95% of queries that are
cacheable (single row, no selection) can be retrieved from the cache,
thereby saving a great deal of disk access.
* Timing experiments show that cache hits are > 40x faster than cache
misses
* Unit tests for the various classes exist, with more coming

TODO
----
* More unit tests

Change-Id: I386a948a2f4cc02b6548d07d9b2fefd1e018a262
ndroid/email/LegacyConversions.java
ndroid/email/provider/ContentCache.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
7fd78d8d6184384cd2393849a554cce58e71180a 16-Nov-2010 Andy Stadler <stadler@google.com> Create XL layouts for AccountSetupOptions

* Landscape and portrait layouts
* Quick fixes to phone UX (not shippable)
* Added some CHAR_LIMIT values

Bug: 3188940
Change-Id: I093d5a6dcde2da96c173b5878900114802aead3e
ndroid/email/activity/setup/AccountSetupOptions.java
01f8be9952fecb3470fb82c1c4b7e3035b3a0b83 16-Nov-2010 Marc Blank <mblank@google.com> Merge "Accept complex characters policy regardless of password mode"
17adb23fb41350370d7d138a9bc53abd3f203230 15-Nov-2010 Andy Stadler <stadler@android.com> Preliminary XL version of Account Names screen

* Add new account names layouts for XL devices
* Placeholder UX for phones

Bug: 3188940
Change-Id: I8c9d0793b004af5f5b66070fd18ecb46fc6f1612
ndroid/email/activity/setup/AccountSetupNames.java
65b1eef31b2dedc92841d01163361b35776e5aa2 12-Nov-2010 Makoto Onuki <omakoto@google.com> Message view code change

- Show sender email address
- Show BCC for sent messages
- Don't show the default quick contact badge frame.
(change QuickContact to ImageView)

Bug 1501239
Bug 3138021

Change-Id: I0e8d91ad3a6a3a021c8aff0945a1ce11d13b2728
ndroid/email/activity/MessageViewFragmentBase.java
17670b1194e0a17deea648f7855748dabf642201 15-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Small code change on MessageCompose"
27c70e332231aea5cbe7813d8256e9f873d13b39 15-Nov-2010 Andy Stadler <stadler@android.com> Preliminary XL version of Account Type screen

* Add new account type layout for XL devices

Bug: 3188940
Change-Id: I12ebe60075971fa14c7c55be65dccc0b7602f566
ndroid/email/activity/setup/AccountSetupAccountType.java
7988164ddfdf2837314fa1763614422bcc90867b 15-Nov-2010 Andy Stadler <stadler@android.com> First pass of XL account setup

* AccountSetupBasics now has an XL version
* This is from prelim wireframes
* Final colors, text size, and positioning all TBD
* Fixed a StrictMode violation (counting #accounts in onCreate)
* Lightweight (non-shippable) fixes for functional phone UX

Bug: 3188940
Change-Id: Idf6cb514208eba07eaa20b20abfd5fcc3dae1751
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
ac05d5e179763c614a37772bc27aebc757bb3c5e 13-Nov-2010 Marc Blank <mblank@google.com> Accept complex characters policy regardless of password mode

* We were rejecting complex characters policy if the mode was
none or simple, but this case is already handled in the
constructor for PolicySet

Bug: 3192973
Change-Id: I060b17401c58498d1597c9322be588020deca69c
ndroid/exchange/adapter/ProvisionParser.java
4977ce62f0bd367d8db2acb598e3d4046d5a3a09 12-Nov-2010 Makoto Onuki <omakoto@google.com> Small code change on MessageCompose

Change how we show/hide CC/BCC. The new way will work for the tab UI too,
where we show the labels to these fields as well.

Also hide the "+Cc/Bcc" button when they're visible.

Bug 3138037
Bug 3192841

Change-Id: Ic78b3200c418430c8eade3ca1238b0d0f1ee4731
ndroid/email/activity/MessageCompose.java
949138d482e617c60eebdd5c105ae04baeff5ab4 13-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Fix NPE on the phone UI"
05565d4e832a09df7732bf195fb1730692aee5ac 12-Nov-2010 Makoto Onuki <omakoto@google.com> Fix NPE on the phone UI

It still has a problem that no menu options show up on the activity,
but it's at least useable.

Bug 3192277

Change-Id: Ia891557020c863bfa53d45b7465d012aa411d67f
ndroid/email/activity/MessageList.java
9e34bb73f73a767524a78aa5754a158113936f45 12-Nov-2010 Makoto Onuki <omakoto@google.com> Action bar: Use the app icon as back.

Bug 3137891

Change-Id: I3d8e10f7a3a7880518127c4ed582bc2b7c96c8d6
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/ThreePaneLayout.java
6926cf85ef95a8c092dd312638ede501d835ea06 12-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Fix "Parcel@406cd448: Unmarshalling unknown type code...""
5f91dd12d886d1da53b2b1976e9c444f3c9725db 11-Nov-2010 Makoto Onuki <omakoto@google.com> Fix "Parcel@406cd448: Unmarshalling unknown type code..."

It was a mismatch between onSaveInstanceState and onRestoreInstanceState.

Bug 3158588

Change-Id: I36ff6ee8a666ff418f3cf0da50477f9347040322
ndroid/email/activity/ThreePaneLayout.java
ec795081466e733d921d46423c1594ab16b2e05a 11-Nov-2010 Marc Blank <mblank@google.com> Revert "Reuse mailbox cursor unless boxes have changed"

This reverts commit 6c3fa18356e3a050be89af32ae0d8c7b1b2097e0.
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
cb2b9748991fc807727c9098f64c96dacba6290f 11-Nov-2010 Marc Blank <mblank@google.com> Merge "Fix provisioning error with min complex characters"
313532ab060666e390e53597570a322ae0bb41e1 11-Nov-2010 Marc Blank <mblank@google.com> Fix provisioning error with min complex characters

Change-Id: I411cc97460561edee2269119225a41630a2d8444
ndroid/exchange/adapter/ProvisionParser.java
2ac1eaf8c3f7122da7900f0ea5a1198264631d74 10-Nov-2010 Makoto Onuki <omakoto@google.com> Account selector rework.

- Show email address
- Show inbox unread message count

Initially I thought of using a join to get accounts with their unread
counts with one query, but there were enough subtle issues that I gave up
on the idea.

Instead it uses a MatrixCursor to build a completely new cursor,
based on a regular accounts cursor.

Change-Id: I09e8762f131cc2bd3637e1a3d302088a3b5b2479
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/provider/EmailContent.java
fd8ee7bc50ef86d1de50eefd5255481d82601015 09-Nov-2010 Makoto Onuki <omakoto@google.com> Show confirmation dialog before discarding drafts.

1. This CL implements the most common case, which is pressing the discard
button on MessageCompose.

2. This CL doesn't change the discard on message list, which is much trickier.
(We need to check the message type of all messages in the selection,
as selection can contain any number of any kind of messges in "All Starred")

Bug 3072556

Change-Id: Ib270cae726f8fd5abf7e0e7dfc34ce97019d5301
ndroid/email/activity/DeleteMessageConfirmationDialog.java
ndroid/email/activity/MessageCompose.java
77303a483b383afcdf3952e9614c97232163b230 10-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "New message view command layout"
931ca67a1f1baa0c1fd115124e35183c7786fc63 09-Nov-2010 Makoto Onuki <omakoto@google.com> New message view command layout

UI Changes:
- "Move", "Delete" and "Mark as unread" became action bar commands.
- The message view bottom panel now only has "newer" and "older" buttons,
with the current position in the message list. (shown as POS of TOTAL)
- The buttom panel is now shown only on portrait

Non UI changes
- MessageOrderManager now keeps track of the current cursor position
as well as the total message count.

- Fixed the "move_action" string, which was wrongly marked as non-translatable.

Bug 3169454

Change-Id: I599543f9e11000a4ee283d31fbd407b2ab53ac44
ndroid/email/activity/MessageCommandButtonView.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageViewFragment.java
6f3d167cfa948d20153c2172c34cbede5ec83a1d 09-Nov-2010 Makoto Onuki <omakoto@google.com> Don't show non-incoming message in notification.

Filter out non-incoming messages using a subquery.
(because the message table doen't have the mailbox type.)

I was initially thinking of adding a new content URL for
the message table joined with the mailbox table, but it turned out
to be a bit of pain, so ended up using a subquery.
(one of the problems was that both tables had the "_id" field.)

Bug 3177220

Change-Id: I276efb70db1589835f3ddb8c7da4773e72d8691b
ndroid/email/NotificationController.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/provider/EmailContent.java
d12e56d321806f124c8a954c3e8a2313991ceebf 10-Nov-2010 Makoto Onuki <omakoto@google.com> Fix auto-refresh of mailbox list

sEnableUpdate should default to true.

Bug 3180421

Change-Id: I1145846d96bba9e962f598e785daf7ce7ad2404b
ndroid/email/activity/MailboxesAdapter.java
b70772daa5dcd9e98ed6defce22c3af664396722 09-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Code change for new mailbox list layout"
4ac5286eb993017dc495b0c4364056429ff84dd8 09-Nov-2010 Marc Blank <mblank@google.com> Merge "Don't allow d&d move from boxes that don't support it"
e857ff50ec6806204888bdb1bedc006df88581af 09-Nov-2010 Marc Blank <mblank@google.com> Don't allow d&d move from boxes that don't support it

Bug: 3177021
Change-Id: Ib5cfcef05794d6f83884d97f2096f3d4f6b3295c
ndroid/email/activity/MessageListFragment.java
9c39deef4e513554e0f8564d5c2ef3deddc87793 09-Nov-2010 Makoto Onuki <omakoto@google.com> Code change for new mailbox list layout

- Don't show a folder icon for regular mailboxes
- Change the count look
- Don't show counts for Sent/Trash.

Bug 3137965
Bug 3073147

Change-Id: I8fc0af8fc2d51968605fe4b570e5704453092ac7
ndroid/email/Utility.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxesAdapter.java
44904aee533f458857c5096d05a02a74415fa25f 09-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Don't call dismiss() in onLoadFinished()."
8197d847343c6c20e6a98b2354bde5392b1c4542 08-Nov-2010 Makoto Onuki <omakoto@google.com> Don't call dismiss() in onLoadFinished().

It's prohibited. Instead use a Handler to delay-call it.

Bug 3173317

Change-Id: Ic5ef245a65b3a4eeebabcebd6323b9a7921f34d5
ndroid/email/activity/MoveMessageToDialog.java
ad222dc6bb5995f55030117ca0e9dc87271435b0 06-Nov-2010 Marc Blank <mblank@google.com> Remove heartbeat logging in ExchangeService

Change-Id: I76be32340811a6a64fb404964d424d881b4db7c5
ndroid/exchange/ExchangeService.java
6c3fa18356e3a050be89af32ae0d8c7b1b2097e0 08-Nov-2010 Marc Blank <mblank@google.com> Reuse mailbox cursor unless boxes have changed

Change-Id: Ic91b1d7bd72e9faf04d3448c1e194663db2c889a
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
dc8f1afeb62db6dd6acf01b350ebdaa9b99ecbb3 06-Nov-2010 Marc Blank <mblank@google.com> Merge "Prevent unnecessary database queries in ExchangeService"
79ff660aa2b98b776c13b687b3bc9f7b93b78123 06-Nov-2010 Marc Blank <mblank@google.com> Prevent unnecessary database queries in ExchangeService

Change-Id: Idc3cbc272bd96598b7c7a5de644786bddf1ce03e
ndroid/exchange/ExchangeService.java
aa1259b4cf96ab78b9a2f836cab39b579d80ab31 06-Nov-2010 Andy Stadler <stadler@android.com> Merge "Handle clicks outside of the "checking..." dialog"
992b7e7ed34334a622d8ccb1d2f692a83a15360e 05-Nov-2010 Andy Stadler <stadler@android.com> Handle clicks outside of the "checking..." dialog

* Clicking outside of the dialog actually "cancels" it
* Need to shut down the checker so it doesn't keep trying to
update it or close it when done.

Bug: 3120019
Change-Id: I5faa3c78b64d2aafc472b03b8086695edaf0b3fd
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
30ba828784e8db2735c9a88ef926a67e20ed9af2 05-Nov-2010 Makoto Onuki <omakoto@google.com> Make the account dropdown visible again.

Workaround for the framework issue that the app context doesn't
use the right theme.

Also removed the use of obsolete methods.

Bug 3169944

Change-Id: Ic8d3ba2edb9300df549cb902855025815021ff49
ndroid/email/activity/MessageListXL.java
4535237e3b3432e48703bf33b98649ea8a32f3eb 05-Nov-2010 Andy Stadler <stadler@android.com> Merge "Fix NPE in pop3 checkcapabilities"
467eb0cceb0663357a9e20843c948c307f13c27c 05-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Reverse FLAG_INCLUDE_QUOTED_TEXT"
54ab7a27a3756a241ba06f0762969cf5a338bf60 05-Nov-2010 Andy Stadler <stadler@android.com> Fix NPE in pop3 checkcapabilities

* This happens if an open fails immediately (error message in the
initial banner) followed by a checkSettings.
* The fix is to harden checkSettings to force a clean connection
every time.

Bug: 2170147
Change-Id: If7403bf517477d2b03b21d71caab511fe45e234c
ndroid/email/mail/store/Pop3Store.java
9ce244b2e3382f20e762154e23cb623bc0151fc9 05-Nov-2010 Andy Stadler <stadler@android.com> Hide vibrate notification option on no-vibrate devices

* Check for existence of vibrator, hide option if appropriate
* Notifications with vibration are still OK, they are just ignored
* Minor cleanups & renaming

Bug: 2988758
Change-Id: Ia1fd259f57d33a75a54cf1016f66a1c072aba579
ndroid/email/activity/setup/AccountSettingsFragment.java
bad09c18d9d7e5e9722866a7cb847e1965186a2a 04-Nov-2010 Marc Blank <mblank@google.com> Correct drag & drop mechanics; implement multiple selection

* This CL brings drag&drop move in line with the current document
describing its functionality in the Email app

Bug: 3135124

TODO: Assets and proper creation of the drag thumbnail based on
those assets
TODO: Review long-press behavior re: press on subject vs sender

Change-Id: I6e1ee1a1f055feb041a0338f2f5c775a88620595
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
138abe82e6cb370c48f4668c1271ef8d4e6203f8 05-Nov-2010 Makoto Onuki <omakoto@google.com> Make "Send all messages" a menu option

- Now it's a menu command rather than a button.
- Also string changed from "Send outgoing messages".

Bug 3166218

Change-Id: I82f6188365f9f6bc5a6d40fb23d774eebe181445
ndroid/email/activity/MessageListFragment.java
0e6254223a0bf6ce06447dedc5e14d77cf8aa3c0 05-Nov-2010 Makoto Onuki <omakoto@google.com> Reverse FLAG_INCLUDE_QUOTED_TEXT

To make it compatible with old databases.

(Follow-up to Ie7bcca23)

Bug 3162967

Change-Id: Ie3bbb5089900bb9dbd0834adbdd466fa009245f9
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailContent.java
bf678771b795e1505d0a966cde1b3197317a3be6 03-Nov-2010 Makoto Onuki <omakoto@google.com> UI change: MassageCompose

Basic changes for the new UI. At this point we don't know what the new phone
UI will look like, so I didn't bother trying to preserve the old behavior on
the phone UI. The changes will affect both the phone UI and the tablet UI.

- Send, Save Draft, and Discard are now action bar commands.
- Add CC/BCC and Add Attachment are now regular buttons.
- Activity title changed to "Compose"
- Some string changes per new wireframe

Further changes (actual layout changes for the latest wireframe) should be made
only for the xlarge layout.

Change-Id: I68c9c37dfdca6736b1e35053e7f196800fcfce2e
ndroid/email/activity/MessageCompose.java
c81bef672089654e6da3babbeb0172bd636564b2 14-Oct-2010 Marc Blank <mblank@google.com> Drag & Drop "move to folder"

* Drag & Drop "move to folder" preliminary implementation
* Use "drag handle" button to initiate drag
* Use the message list item itself as the drag thumbnail for
one item; "Move N messages" for multiple (not implemented)
* Disable MailboxList update during drag
* Use ListView itself as drag/drop target

Bug: 3138004
Change-Id: I9243e4f583cf91caa1b9dd04fd64d52e8b28fa30
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
e4f81110014604f5c14cfefb4570a8fff54369b1 04-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Fix & clean up intent handling"
5ade775c8fe676e471254fafd9d09e3652ae21b5 04-Nov-2010 Marc Blank <mblank@google.com> Merge "Send sync start/finish callbacks in pairs"
997a022c9b1ee84c0a5e67bcab5b0e465075234c 03-Nov-2010 Andrew Stadler <stadler@android.com> Enable zooming in MessageView

Bug: 2282390
Change-Id: Ie5be3c4adb8cc3bef5ccf4fccbfefe8a40872b17
ndroid/email/activity/MessageViewFragmentBase.java
12b398fac359521daffb6e0209e77ba944adb1b4 03-Nov-2010 Marc Blank <mblank@google.com> Send sync start/finish callbacks in pairs

Bug: 3143544
Change-Id: Ifb8c3c4c12e32df6a7d058446a0279c26048e0f3
ndroid/exchange/EasSyncService.java
ba4e72a9474bcbe33a8001a1964a02cb41ea08bb 03-Nov-2010 Andy Stadler <stadler@android.com> Cleanup various IMAP/POP manual account setup defaults

These defaults affect manual setup only. There should be no changes
observed in automatic setup, and no changes observed in EAS setup.

* user $email instead of $user as default login
* guess "imap." or "pop3." for server name
* propagate the incoming server name to the outgoing server name, and
replace "imap.", "pop3." or "pop." with "smtp."

Also, fixed a couple of leftover places where we were trimming
passwords (and should not be, since some people insist on having
spaces in their passwords.)

Bug: 2978634
Change-Id: I9b0e345aa9550b5e1cc29aaa22109f03da61af20
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
7126e5ae53082e1f16eb0624208b6ab7edebd392 03-Nov-2010 Makoto Onuki <omakoto@google.com> Fix & clean up intent handling

- Make sure an account shortcut really opens the account by
adding the FLAG_ACTIVITY_CLEAR_TOP flag to shortcuts

* Shortcuts have to be re-created for this fix to take effect.

- Remove Welcome.createOpenCombinedInbox/OutboxIntent, which don't work
with the new combined view.

* createOpenCombinedInboxIntent() is not used already
* createOpenCombinedOutboxIntent() is used, but is not final UI, so
removing it is okay.

- Fix MessageListXL.actionOpenMailbox -- now it really uses the passed
mailbox ID.

Bug 3144066

Change-Id: I2ee3f84c62a135351c10266c7ca6d5178c3a0ca2
ndroid/email/NotificationController.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/Welcome.java
c50f912676d16e075fbef81fea0b70b6faa775e9 03-Nov-2010 Andrew Stadler <stadler@android.com> Inhibit "send" when user is a monkey.

While monkey is active, any clicks on "send" will be mapped to "save".
Drafts will pile up, but nothing will get out.

Bug: 2799956
Change-Id: I300d50001b43c8b61062143f9a0ac914aa2deaca
ndroid/email/activity/MessageCompose.java
ba0b1bbc8d7cd546d548cea1e4f097462e1fb324 02-Nov-2010 Andrew Stadler <stadler@android.com> Implement text zoom for Message View

* Add preference for default text size
* Move saveSettings logic into onPreferenceChange handler
* Per user tests, default setting is large (not "normal") for XL devices.
* Use setting in MessageView's WebView

TODO: Investigate zooming header (to/from/subject/etc) as well.

Bug: 2282390
Change-Id: If32ed3626244b046941a461f974b3dbdb535f592
ndroid/email/Preferences.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/setup/GeneralPreferences.java
278cb8e3d5f4427ccd0e6d6f8f6996e10bede87c 02-Nov-2010 Marc Blank <mblank@google.com> Merge "Support EAS in providers.xml files"
cd09545b87979fa6b4337f17b5a001f0ef7b5269 02-Nov-2010 Andrew Stadler <stadler@android.com> Provide runtime switch for GL acceleration

* new checkbox in debug fragment
* saved value in prefs so it's sticky
* each Activity calls a helper to enable/disable per that flag

Change-Id: I1af1ae9f401bc746cc97da00dfb0e06407b79d46
ndroid/email/Email.java
ndroid/email/Preferences.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/DebugFragment.java
da0d12ca3618a76f3235766c447fe2f47ffea912 01-Nov-2010 Makoto Onuki <omakoto@google.com> Merge "Add null check to investigate an NPE in restoreMessageWithId."
d28172670602cde61ef900fac74f72b52b35a387 01-Nov-2010 Makoto Onuki <omakoto@google.com> Add null check to investigate an NPE in restoreMessageWithId.

We're getting an NPE in restoreMessageWithId(EmailContent.java:670)
called from MessageFileViewFragment.openMessageSync().

However, there're only two things that can be null in this line,
context and context.getContentResolver(), and either one really
can't be null. Add explicit null checks to investigate what's going
on.

Bug 3134403

Change-Id: I463b039b6afeda32729f7e6a93edfdb9abf12093
ndroid/email/provider/EmailContent.java
26e01b4ad258cc18a267e947bd7dfd24be8c9197 01-Nov-2010 Marc Blank <mblank@google.com> Merge "Delay appearance of "stop" button when loading attachments"
fdc41d4ffc29d29c9c6d8e0b81db98aaf7afa92e 23-Oct-2010 Marc Blank <mblank@google.com> Delay appearance of "stop" button when loading attachments

Bug: 3082804
Change-Id: Ib8b0fcec36a7303b2094bd0e49645d11aa2ff2db
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/service/AttachmentDownloadService.java
bbe25adfc87bf72cd031969bb736833780c1dd1d 01-Nov-2010 Makoto Onuki <omakoto@google.com> Fix crashes related to readParcelable

We need to pass the actual class loader. Passing null makes it use
the boot class loader, which can't find our classes.

Bug 3073304

Change-Id: I1c72c1d352cfc0a730aba1d83eb048a8cfa95b67
ndroid/email/Utility.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/setup/SetupData.java
730cc6724ae0fde63d6f11615338d2e01aef7e4b 26-Oct-2010 Makoto Onuki <omakoto@google.com> Add "Combined view".

- Don't show combined mailboxes with regular mailboxes in the mailbox list.
- Add "Combined view" to the account selector instead.
- "Combined view" has all the combined mailboxes and accounts.
- Renambed these combined boxes. (e.g. "Combined inbox" -> "Inbox")
- Regular account view still has "Starred" mailbox, but it's actually
"combined" and not per-account.
- Re-order special mailboxes per latest wireframe.

Bug 3138004

Change-Id: I4c5860c6774b10c55ba0ca599373e51105432cf8
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/provider/EmailContent.java
f0ce3ea911591fe919f1cf0775af155243199cc1 01-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Merge "SharedPreferences commit -> apply"
bd29c3090305ce415fb29ba7af339a1359c746d3 01-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> SharedPreferences commit -> apply

Change-Id: Icdca00268a8b5ea274c91366867172ee7e3841d4
ndroid/email/Account.java
ndroid/email/Preferences.java
ndroid/email/activity/setup/AccountSettingsFragment.java
4afdd19e20e99e60ef98f5239c91c0d1f848c324 29-Oct-2010 Marc Blank <mblank@google.com> Support EAS in providers.xml files

Bug: 2962123

Change-Id: I661c52afcf36e337e29bb10fd878196a3b0147ae
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
a7fbf44511019ed77501a7c9069646bcc610baf9 30-Oct-2010 Marc Blank <mblank@google.com> Merge "Harden AttachmentDownloadService"
34e6205d4432c8b591c35fbcfc504852608f35a6 28-Oct-2010 Andrew Stadler <stadler@android.com> Simplify setupSyncReportsLocked

* Remove three unneeded DB lookups
* Eliminate race condition that could cause NPE
* Remove protocol field from report, it wasn't needed (we already
set the sync interval to -1 which has the same effect.)

Note, the problems were introduced unintentionally, due to the merged
result of three different CL's:
I168b3db49bf422b33d05f25cfff1c7be15150c2b
I74a3dae21d9ec16f9903bdf2a1c28092ae89cc50
I53e935f8bf08e0bda6e2cd483229a6377ed39d74

Bug: 3139451
Change-Id: Iadbed267f88808aeace0a2f011e4acf79074af70
ndroid/email/service/MailService.java
b961c78ff4bd250d4a25497158162cb230a55057 29-Oct-2010 Marc Blank <mblank@google.com> Harden AttachmentDownloadService

* It's possible that endDownload will be called for a request
that has been dequeued.
* Harden endDownload against this eventuality, so that we clean
up properly without throwing exceptions

Bug: 3142618
Change-Id: If61136ed1ea972248fc5f9388beaaf84754f9931
ndroid/email/service/AttachmentDownloadService.java
4f1480369c6d9add6ae9be832054d2649e3497fb 29-Oct-2010 Marc Blank <mblank@google.com> Ensure that finishBroadcast is called in broadcastCallbacks

* An unexpected (runtime) exception during a callback left the
broadcast unfinished, leading to a fatal exception
* Ensure that we always call finishBroadcast()
* Catch RuntimeException in a broadcast call, so that other calls
can be executed
* Addresses one of two issues in the referenced bug

Bug: 3142618
Change-Id: I77166bf927560681a2b189906cd687a6e3585223
ndroid/exchange/ExchangeService.java
affe44f14c8bad71dfe83e80af0c6626f51b88a4 28-Oct-2010 Marc Blank <mblank@google.com> Merge "Revert "Fix strict mode violation in maybeStartExchangeServiceThread""
f74e2578aaf31882a95b41eb608e4194afb49daa 28-Oct-2010 Marc Blank <mblank@google.com> Merge "Revert "Correct strict-mode fix CL""
13fe88f38d8273061bda469f306532df1dcad2ab 28-Oct-2010 Marc Blank <mblank@google.com> Revert "Fix strict mode violation in maybeStartExchangeServiceThread"

This reverts commit 0e1ffb033a2e2701e99e05d2f8abdfc62444faa9.
ndroid/exchange/ExchangeService.java
dac9c152663e2c8e99d5b53ecde8bbd0024a5e4e 28-Oct-2010 Marc Blank <mblank@google.com> Revert "Correct strict-mode fix CL"

This reverts commit 87a7f84580023bc301bf6ce2ce4315a318ec3e68.
ndroid/exchange/ExchangeService.java
4f71ade96e9dda5b2ffaac4e563de915f2be4234 28-Oct-2010 Andrew Stadler <stadler@android.com> Remove BOOT_COMPLETED log.

Change-Id: I3eb06076ad61dab0f38e32e736e7dbbcf8dde065
ndroid/email/service/EmailBroadcastProcessorService.java
87a7f84580023bc301bf6ce2ce4315a318ec3e68 27-Oct-2010 Marc Blank <mblank@google.com> Correct strict-mode fix CL

Change-Id: I233b77ec02d0b9519b4dba57458b1b5cf9a97561
ndroid/exchange/ExchangeService.java
45b15734d886c817752adfcaf8a4c2223e79af08 27-Oct-2010 Marc Blank <mblank@google.com> Merge "Delete secured accounts if device admin is disabled"
02d59d21949a77c60859b615312f02e6d8003490 25-Oct-2010 Marc Blank <mblank@google.com> Delete secured accounts if device admin is disabled

* Update unit test

Bug: 2817683
Change-Id: Ia7117c34e7bbba13ac4f2ff375d19b3ef94ef49c
ndroid/email/Controller.java
ndroid/email/SecurityPolicy.java
0e1ffb033a2e2701e99e05d2f8abdfc62444faa9 26-Oct-2010 Marc Blank <mblank@google.com> Fix strict mode violation in maybeStartExchangeServiceThread

Bug: 3133688
Change-Id: I94d0b6269c6ebffa54f4a0b29689004feccb01d6
ndroid/exchange/ExchangeService.java
53e9f81822a5f6708e658af71c2e868592b7f5b5 27-Oct-2010 Marc Blank <mblank@google.com> Merge "Only callback with sync error if sync was a service request"
eed42e83ab1808a523e614cb6096e169d8122b95 26-Oct-2010 Marc Blank <mblank@google.com> Cleanup for dump() in AttachmentDownloadService

Change-Id: Id875d3278953ecb3a98ab8b1d290f3883e974c4f
ndroid/email/service/AttachmentDownloadService.java
4a66884b74dab846c76cb284d10be1d7ac85971d 27-Oct-2010 Marc Blank <mblank@google.com> Merge "Use notifications for login failures"
d3e4f3ca7e43fb7ebaa140f93a44a1fb96a0577e 18-Oct-2010 Marc Blank <mblank@google.com> Use notifications for login failures

* For now, clicking on the notification takes the user to the
Welcome activity, as we don't have final flows for the new
account setup UI
* Need comment on strings; the problem is that notification
text must be rather short if we're to use the standard
notification display. It looks like newer UI will allow
3 lines instead of 2, however.
* Tested w/ IMAP, POP3, EAS, and SMTP

Bug: 2322253
Change-Id: I7ed6fa5599179870cbcdb14af062e956eff37ec5
ndroid/email/MessagingController.java
ndroid/email/NotificationController.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/MailService.java
ndroid/exchange/ExchangeService.java
b07a6fcf33b77f0762ad2304a771785c9bbcea27 27-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Merge "Disable picker/shortcuts for Exchange GAL"
ffd258d8736a1371f4d832c06a1aa0da5c05fc59 26-Oct-2010 Makoto Onuki <omakoto@google.com> Fix the class name in the log.

Change-Id: Ie672f2e65b28dc742cce561d13aa3016d8bbb1f1
ndroid/email/activity/setup/AccountSettingsFragment.java
ad5c2ac04bc7725e66e8cde1df4ad6b69650cf84 26-Oct-2010 Marc Blank <mblank@google.com> Only callback with sync error if sync was a service request

* EasSyncService was using the callback for all syncs, including
those running in the background. We really only want to report
back when syncs initiated by Controller fail...

Bug: 2239661
Change-Id: I7c4aceb74fe94ca38f5bdbbabe5dda62ccac60ec
ndroid/exchange/EasSyncService.java
e9cea322189afbeb1de870ad6c9118ffd4a5d58a 26-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Disable picker/shortcuts for Exchange GAL

Bug: 3130733

Change-Id: Ib2f324fde3471b76e95ee98aad518fc38c27b9fb
ndroid/exchange/provider/ExchangeDirectoryProvider.java
5b072f912979ffc8b7a048be999f3ab0627a774f 25-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Don't use sendMailCallback() -- don't track outbox status"
965e9953b67851ec209db6ebca9b9cb23a37b268 25-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Fix NoSuchMethodError in test"
4c49d7a302e3a10a961a9b8580571ee80feaeedc 25-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Fix reply/forward on EAS"
023285796b5d626fe2a03692aa9c1965d96cdf6f 25-Oct-2010 Marc Blank <mblank@google.com> Merge "Add dump of AttachmentDownloadService"
da0bdb7cec6f85fadc8887d0c78c0f5dade07944 25-Oct-2010 Marc Blank <mblank@google.com> Don't upsync empty contact tags

* EAS 12.0/12.1 don't mind these, but EAS 2.5 objects in some cases
(title and prefix, certainly) and the upsync fails
* The error case occurs because the ContentValues provided by
ContactsProvider actually has a value; the value, however, is an
empty string
* Prevent this by checking for empty values before serializing

Bug: 2607778
Change-Id: I853ce711024a414f53861720000cc87a7349d660
ndroid/exchange/adapter/ContactsSyncAdapter.java
a162668f2350f681258fb0949a7fa228f2021ed8 23-Oct-2010 Marc Blank <mblank@google.com> Add dump of AttachmentDownloadService

* Will be helpful for debugging our new background service

Change-Id: Ia865c7c6cb418bd1a1f3d593421b98664c041e07
ndroid/email/service/AttachmentDownloadService.java
0e00160074abffe03285b355dce8b6ae2a6e3138 23-Oct-2010 Makoto Onuki <omakoto@google.com> Fix NoSuchMethodError in test

I should have been used the one without default in the main code,
which uses the other one (with a default), so both can safely be used
in tests.

Bug 3107191

Change-Id: I2011d96f6824a1a6e99e81f5c8e60c966a444d92
ndroid/email/Utility.java
ndroid/email/provider/EmailContent.java
be1aa37dc516a9c3dd4af65b11f92a5951f5c5c3 23-Oct-2010 Makoto Onuki <omakoto@google.com> Don't use sendMailCallback() -- don't track outbox status

There're differences between how SMTP and EAS use this callback.
We should eventually unify the behavior, but till then let's not
use sendMailCallback().

Bug 3116377

Change-Id: Ic5ecf16251c11ab2bd2e16e29bd417f1ece67f14
ndroid/email/Controller.java
ndroid/email/RefreshManager.java
ndroid/email/activity/MessageListXL.java
a76c9cdcc72958408bde0294ca5b8703eebc1f8f 22-Oct-2010 Makoto Onuki <omakoto@google.com> Fix reply/forward on EAS

When removing the original, need to clear FLAG_TYPE_REPLY and FLAG_TYPE_FORWARD
flags too.

Bug 3125167

Change-Id: I64be98bc10b5e1a0b9242c1c528ed96bb0a24fc1
ndroid/email/activity/MessageCompose.java
9a9c725174e6abd8ee23d01cdac8776517efa99f 22-Oct-2010 Jean-Baptiste Queru <jbq@google.com> Merge a059c4a1 from gingerbread-plus-aosp

Change-Id: I955120aff44d69bcd6fde165ac7ac974acbd3c78
2a08ef0d285ebf9e8fe86afec1ac4732586b7bb5 22-Oct-2010 Marc Blank <mblank@google.com> Don't allow MailService to schedule EAS accounts

Bug: 3120208
Change-Id: I53e935f8bf08e0bda6e2cd483229a6377ed39d74
ndroid/email/service/MailService.java
4a546f5f6e22747304a07ab6892aa318447b5fe7 12-Aug-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Backport AttachmentProvider security fix

* Apps trying to open attachments using AttachmentProvider were
seeing SecurityExceptions due to the fact that internal calls
from AttachmentProvider to EmailProvider didn't have their
calling identity saved/restored.
* Updated provider calls so that these calls use the Email
process' identity.
* Backport of Ifb71ad834530c6232728e1aad31439991f8ed379, fixing
2908737

Bug: 3121146
Change-Id: Ifa3a0ca8d3e34733c937d7f8c60f068984e1f4f2
ndroid/email/provider/AttachmentProvider.java
ca065c3927eb30766186107335445d29598bc16c 21-Oct-2010 Marc Blank <mblank@google.com> Merge "Respect the RESPONSE_REQUESTED tag in meeting invite mail"
a44c0349fa851df5c9138af2a18e3a3d5b556671 21-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Don't move drafts to trash"
6a2265eff292021f4a940334c079b84e17241ac7 20-Oct-2010 Makoto Onuki <omakoto@google.com> Add checkbox to include original text or not.

Added the "Include text" checkbox according to the latest mock.

Before:
- We removed original message when the user pressed X.

Now:
- We save the original message all the way till the draft is sent.
- The "Include text" check state is saved in the db. (to Message.mFlags)

Bug 3072414

Change-Id: Ie7bcca23bb6a02d676700027b0b6cb94b6627236
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailContent.java
8d70372e0ae7fe5496cef8889c593d36492f4f15 20-Oct-2010 Marc Blank <mblank@google.com> Merge "Don't duplicate attachments when saving drafts"
e14aa7dacba0a8fc6c87fe655202a0550d4669ef 20-Oct-2010 Marc Blank <mblank@google.com> Merge "Add account name to temporary sync error UI to help debugging"
3bdba62f5804b91a95a5ec48c1c61342c5703587 20-Oct-2010 Marc Blank <mblank@google.com> Don't duplicate attachments when saving drafts

Bug: 3070196
Change-Id: Ic9dffe57cdc81615e07b1c593fc71085e1281718
ndroid/email/activity/MessageCompose.java
deb51f824e00080c5dd1c15e8c1d44a55b81b993 19-Oct-2010 Marc Blank <mblank@google.com> Add account name to temporary sync error UI to help debugging

* At this point, there are a lot of toasts shown that relate to
sync failures (e.g. "Unable to connect to server"). To help
find where they're coming from, add the display name of the
account
* UX folks: Please consider what this UI should be

Change-Id: Id9b76cd22178727bedaf67ad0b7450edff99a791
ndroid/email/activity/MessageListXL.java
a8bb34fd624e84a55de39d0cedab773dd0ea4fd6 19-Oct-2010 Marc Blank <mblank@google.com> Respect the RESPONSE_REQUESTED tag in meeting invite mail

Bug: 2639037
Change-Id: I4bd73f23ba270fa0ead72971b5a79d9db678a8dd
ndroid/email/mail/MeetingInfo.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
77aabd951992057a543f1699150971bf1f2d4394 15-Oct-2010 Makoto Onuki <omakoto@google.com> Don't move drafts to trash

Now deleted drafts are really deleted, rather than getting moved to trash.

Also rewrote the test to avoid creating AsyncTasks on the test thread.
In this case it seems to be running fine, but I've had problems doing this
before.

Bug 3099179

Change-Id: Ice5298bf94312ce764d90aa35c5a6c5262ec5b42
ndroid/email/Controller.java
eb4965942387619c1b44c751affda83c4a2401dc 17-Oct-2010 Marc Blank <mblank@google.com> Prevent MailService from spamming AccountManager during reconcile

* When any Account is modified, MailService gets a content notification and
runs reconciliation in an AsyncTask. Reconciliation ends up calling the
AccountManager, which also runs asynchronously. The net effect is that,
especially during unit tests, where we create/destroy accounts rapidly,
these calls can "back up", ending in a situation in which the worker pool
for AsyncTask is filled, with a resulting RejectedExecutionException
* We fix this by preventing more than one request for reconciliation to
be queued at a time
* Added a unit test that thrashes the notification handler

Bug: 2937628
Change-Id: Iaf25806efb46831f31704604360df091752d9525
ndroid/email/service/MailService.java
7fdd88e37cdf778e25e5a0431a31e8126564cf06 15-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Put the dest mailbox name in the "message moved" toast"
ee7205d100eff01a75c292b80f41cd24a2b19b84 14-Oct-2010 Makoto Onuki <omakoto@google.com> Put the dest mailbox name in the "message moved" toast

Also removed obsolete todo

Bug 3075984

Change-Id: I10ce9df29c4913c328d2a962151d4a9f2e6e1408
ndroid/email/Utility.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/provider/EmailContent.java
b0ffb3e39a7193b0067dddca5e758462bfc9af19 14-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Don't use negative IDs with ListView"
9b5001a34c82ea59b57a790fc221eec3af89e254 13-Oct-2010 Makoto Onuki <omakoto@google.com> Don't use negative IDs with ListView

ListView uses the _id column for some operations, including
onSave/RestoreInstanceState, and if the column contains negative values
they don't work as expected. The same assumption seems to be in other places
as well, so let's just avoid using negative IDs.

With this CL we now use two different IDs, one for ListView, which will
never be negative, and the other for us, the actual mailbox ID.

Bug 3049315

Change-Id: I263b4895212b5f8bb80c98acaf5c4eccd0bfef55
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
a5fcefd179b074390ddb9e36d228980e873b7805 14-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Fix potential crash in MessageViewFragment.openMessageSync"
214c6c6c8173cf90a3e45615a6896a48dc643e68 14-Oct-2010 Andy Stadler <stadler@android.com> Fix remote wipe with mobile sync server

* It appears as if our running multiple sync threads can confuse the
mobile sync server during a remote wipe (the server expects the next
client response to be an acknowledgment, whereas it might well be
a command or response from a different thread)
* To avoid this, we first put the account on security hold and then
shut down all other sync threads for the account
* After this, we send the acknowledgment and the remote wipe proceeds
normally.
* NOTE: It's possible that, due to the vagaries of multithreaded
operation, one of the other syncing threads could still send a non-
acknowledgment response to the server before our provisioning thread
gets a chance to send its acknowledgment. However, since the other
syncing threads will terminate (and not restart, because of the hold),
the provision/remote wipe/ack sequence will work on the subsequent
attempt

Bug: 2844888
Backport From: Ib4ffbbc67b681e69176b6c1d5515fa80c7d1e121

Change-Id: Ie9e944bd39f331c2ddc0f0ba303a3d5684f6f033
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/FolderSyncParser.java
efcde27bf74acdd82bb0aad0ad1fd0b767ca5f18 14-Oct-2010 Andy Stadler <stadler@android.com> Use original all-day flag when upsyncing exceptions DO NOT MERGE

Bug: 3087410
Backport of: I4bed0039758e98d4b85054876f192605eb00ee82

Change-Id: Ibc875d58c2f6c5317ce8e4fee97b96c2fd6b2ecf
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
9c2baaabd2feff633db3ed1b782282667e541927 14-Oct-2010 Andy Stadler <stadler@android.com> Fix upsync of exceptions in EAS 2.5 (Exchange 2003) DO NOT MERGE

* Apparently, Exchange 2003 doesn't like to see Visibility set in
Exceptions
* Apparently, Exchange 2003 likes to see Exception Deleted and
ExceptionStartTime prior to other data
* The word "apparently" is used above to indicate that these
findings are not part of any specification, but have been
determined empirically

Bug: 2775885
Backport of: I163f156675f65c494a59d5233b2b6e23b3f1d6a0

Change-Id: I5d32dea5c3903147725b8df87a71e961a4d78c60
ndroid/exchange/adapter/CalendarSyncAdapter.java
9ce8f4d2a3f6f842cd7ae6ffa70e420a14ea6162 13-Oct-2010 Marc Blank <mblank@google.com> Use original all-day flag when upsyncing exceptions

Bug: 3087410
Change-Id: I4bed0039758e98d4b85054876f192605eb00ee82
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
09eb977c062787a18a0c1ec96d929bb2279d14ad 12-Oct-2010 Makoto Onuki <omakoto@google.com> Fix potential crash in MessageViewFragment.openMessageSync

The problem is that ths method is called in a worker thread, so
there's nothing to prevent it from running just after/at the same
time as clearContent() (which sets -1 to mMessageIdToOpen).
If it does, it passes -1 to restoreMessageWithId() and crashes.

Also removed a half-obsolete comment which is a bit too obvious for its length.

Bug 3077387

Change-Id: I736d696046e6d8964a16c80515544c582aca3943
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
9c293eb65a3737d55d24fdf64333c1fa6ba98650 08-Oct-2010 Makoto Onuki <omakoto@google.com> Show "No messages" when there's no items on message list

Show this when there's no messages, and no "Load more messages" footer.
i.e. Only Outbox, Drafts, and exchange mailboxes can show "No messages".

Also removed an obsolete comment.

Bug 2363624

Change-Id: If483d33cfacb186d0fe54b4f4382333a332be84c
ndroid/email/activity/MessageListFragment.java
92f30bedf2891c73924e715d19b27cc57730cad4 11-Oct-2010 Marc Blank <mblank@google.com> Merge "Fix remote wipe with mobile sync server"
3afa93c0543f231f61620ec8a04ca54edb8c7ae4 11-Oct-2010 Marc Blank <mblank@google.com> Fix remote wipe with mobile sync server

* It appears as if our running multiple sync threads can confuse the
mobile sync server during a remote wipe (the server expects the next
client response to be an acknowledgment, whereas it might well be
a command or response from a different thread)
* To avoid this, we first put the account on security hold and then
shut down all other sync threads for the account
* After this, we send the acknowledgment and the remote wipe proceeds
normally.
* NOTE: It's possible that, due to the vagaries of multithreaded
operation, one of the other syncing threads could still send a non-
acknowledgment response to the server before our provisioning thread
gets a chance to send its acknowledgment. However, since the other
syncing threads will terminate (and not restart, because of the hold),
the provision/remote wipe/ack sequence will work on the subsequent
attempt

Bug: 2844888
Change-Id: Ib4ffbbc67b681e69176b6c1d5515fa80c7d1e121
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/FolderSyncParser.java
43f2321d10a9ec3efd649cd257aee8d88ea87e08 11-Oct-2010 Daisuke Miyakawa <dmiyakawa@google.com> Modify code style.

Change-Id: I40eeb738ca2dcc7f21ddbc603b03debde5ac27d3
ndroid/email/activity/setup/AccountSetupBasics.java
c8af3175df27eb326c78d66f2896a0faa4ba72c8 11-Oct-2010 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Use AccountAuthenticatorResponse properly."
a0692b16e1bc8b6b6f70c7182b5f3c8b20b67655 08-Oct-2010 Marc Blank <mblank@google.com> Fix upsync of exceptions in EAS 2.5 (Exchange 2003)

* Apparently, Exchange 2003 doesn't like to see Visibility set in
Exceptions
* Apparently, Exchange 2003 likes to see Exception Deleted and
ExceptionStartTime prior to other data
* The word "apparently" is used above to indicate that these
findings are not part of any specification, but have been
determined empirically

Bug: 2775885
Change-Id: I163f156675f65c494a59d5233b2b6e23b3f1d6a0
ndroid/exchange/adapter/CalendarSyncAdapter.java
30c99e0dc34b36d2547eb01c67fd35bf48fac87d 09-Oct-2010 Marc Blank <mblank@google.com> Merge "Make sure updatePolicies is always called during provisioning"
9dac94975f31013d4b31ffb15eba27f352b2e758 07-Oct-2010 Daisuke Miyakawa <dmiyakawa@google.com> Use AccountAuthenticatorResponse properly.

Current implementation ignores callbacks coming from
AccountManager, which should be called everytime
when this Activity finishes its job.

Bug: 3069222
Change-Id: Iea03cf94bdfe8da184e415bf7e759ddeb46ecdd9
ndroid/email/activity/setup/AccountSetupBasics.java
6993130a7cb089da642ee689603a2f8487b3fd39 09-Oct-2010 Makoto Onuki <omakoto@google.com> Auto-refresh mailbox list

Refresh mailbox list when changing the account, if it's been more than
5 minutes since the last refresh.

Change-Id: I5b1400bb881197e117b8863f850c368c2d1ccbc6
ndroid/email/RefreshManager.java
ndroid/email/activity/MailboxListFragment.java
241f18f237171a804f849262533d3cddb08e45c7 08-Oct-2010 Makoto Onuki <omakoto@google.com> Fix when to clear notification

I was assuming MailService.resetNewMessageCount cleared notification,
but it didn't.

Doing it in Activity.onResume is clearly wrong because we don't always
have an account ID there. If we don't, we're passing -1, which clears
all notifications for all accounts.

We're now calling resetNewMessageCount() in MessageListFragment,
when we refresh the list, so we can remove it from onResume() for the Phone
UI as well.

Bug 3074056

Change-Id: Ib0bb2fbb0309a0784fb3a525927102f423e930df
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/service/MailService.java
0215d739d5dc6e9f650ea2637e40be309a7e1f2d 08-Oct-2010 Marc Blank <mblank@google.com> Make sure updatePolicies is always called during provisioning

Bug: 3055269
Change-Id: Ia266de108847923c01b5e0838a249aa9ee8f2d85
ndroid/exchange/EasSyncService.java
f8630bfb82d9f35a997baaab935cfea228f542e3 08-Oct-2010 Marc Blank <mblank@google.com> Merge "Fix issue w/ duplicated messages after move (to trash/folder)"
5151ca5341b6f55e8ab8334d8a7aab45987de49f 08-Oct-2010 Marc Blank <mblank@google.com> Merge "Handle "Sync Email" properly from AccountSettingsFragment"
47087049f0cb3790d83e38e06b17826ea095c5cc 06-Oct-2010 Marc Blank <mblank@google.com> Fix issue w/ duplicated messages after move (to trash/folder)

Bug: 2994014
Change-Id: Ia223447f799ebd6490da2dc5caf1d1270b446a44
ndroid/email/provider/EmailContent.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/MoveItemsParser.java
4b0d4f9f4d778e3e3896c6b2a8fd6ca250d9e4a5 08-Oct-2010 Makoto Onuki <omakoto@google.com> Fix "+ -1 more" in notification.

Need to reset lastUnseenMessageCount with unseenMessageCount.

Bug 3069406

Change-Id: I867dfaeb2d39cfd3511f956d60d2187031291780
ndroid/email/service/MailService.java
cae8626fb93f4ac3ada998a7f8de22ecc3d9a052 08-Oct-2010 Marc Blank <mblank@google.com> Handle "Sync Email" properly from AccountSettingsFragment

Bug: 3055326
Change-Id: I7ecc7eda975f0ec03d3d81ed042842eab2c94d4e
ndroid/email/activity/setup/AccountSettingsFragment.java
998e3f5eca04bb1c960006f670769cf64193b7df 07-Oct-2010 Marc Blank <mblank@google.com> Merge "Fix MailService unit test"
fe6e3eae2a318f89634c82222acfdaac32ee6cf1 07-Oct-2010 Marc Blank <mblank@google.com> Fix MailService unit test

Bug: 2844726
Change-Id: I168b3db49bf422b33d05f25cfff1c7be15150c2b
ndroid/email/service/MailService.java
07dc502e26b4f87876f1e3b9c6c6840f7c9a6116 07-Oct-2010 Marc Blank <mblank@google.com> am d04ef0fd: am 5c5f3a0d: Fix issue w/ race condition leading to log spam

Merge commit 'd04ef0fd19e06d6ee2afb39f571b720a28478936'

* commit 'd04ef0fd19e06d6ee2afb39f571b720a28478936':
Fix issue w/ race condition leading to log spam
60c6dc47115f76e4287de4e58c18131d373629a5 07-Oct-2010 Makoto Onuki <omakoto@google.com> Sparse message list item layout for XL

- Tested on N1 as well
- Also fixes bug 2546662 -- show both invitation & attachment icons

Change-Id: Ic2f42370be32a0beb43f9018cefdce86028e8189
ndroid/email/activity/MessagesAdapter.java
de936b83ac76a390ae04827d7eba1f3b8f238a0c 07-Oct-2010 Makoto Onuki <omakoto@google.com> Fix race condition regarding message reload.

The method to start ReloadMessageTask() when detecting content
changed events is delay-called, so need to make sure the fragment
is still in the valid state.

Bug 3069896

Change-Id: I1991d902e8044b4f8ca3ffd7d3e2e66005f1e960
ndroid/email/activity/MessageViewFragmentBase.java
bb5fd95e753e3a25e2161c83eaf0deeaa4034f44 06-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Introduce tabs to view message, attachment and invite separately"
f54e08eaee0717cd60766797dd878d2588ff981a 05-Oct-2010 Makoto Onuki <omakoto@google.com> Introduce tabs to view message, attachment and invite separately

Added "tabs" to the message view according to the latset mock.
This removes the necessity of putting a WebView inside a ScrollView,
which caused the infinitely-growing email bug (issue 6882).

Right now the tabs are actually just Buttons. Complete visual refresh
should follow it.

http://code.google.com/p/android/issues/detail?id=6882
Bug 2349275

Change-Id: I897a3a32e0dd7a90d637ac5ea1d47e5e65a1eabe
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
feb8869c4f0681a6e202d8db8a77aa3c2ba4b667 06-Oct-2010 Makoto Onuki <omakoto@google.com> Remove unused method Utility.getIconIds()

And redirected the related tests to getIcon().

Bug 2894555

Change-Id: I1d90f01e7476ca79bddd644e123ad979d6ebe987
ndroid/email/Utility.java
5c5f3a0dbcef00bc1a20f16f924bab85133e4407 05-Oct-2010 Marc Blank <mblank@google.com> Fix issue w/ race condition leading to log spam

Bug: 3064901
Change-Id: I115fa6878ae9b4464b3f0b9cace1f200e2e5f47c
ndroid/exchange/SyncManager.java
d058f8abcd27f454f065f4a802a8bb42e413451b 02-Oct-2010 Makoto Onuki <omakoto@google.com> Auto-refresh message view

Now MessageViewFragment detects changes made to the current message,
and update the UI.
(Although it doesn't really know if the message is really changed, or just
something else was changed in the DB. It updates the header regardless.)

Change-Id: I35627c7aff129723b83605fc84521da907078571
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
591e8fa0c92a944aa3fc3cfd1a13132913733d1d 05-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Fix "move to" dialog style"
7bfa32dbc52a4f055db9430fec4fbd4b42e2a3bf 05-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Move reply/forward buttons to header"
01b7e67f78d2b722c66d71716b499024b3a42a5e 30-Sep-2010 Makoto Onuki <omakoto@google.com> Move reply/forward buttons to header

Moved the buttons to the header. All other buttons below the message view
go away, so I just hid the old buttons.

Also now we stop trying to hide these buttons when entering contextual mode,
which fixes bug 3044284: Message view buttons get disabled when closing
quick contact

Assets were temporarily copied from gmail.

Change-Id: Ib178c6221dfab02832a10d0c0441044e4969fb70
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/provider/EmailContent.java
573e0c5ffd7a062695d8650461446f88243ddb19 05-Oct-2010 Makoto Onuki <omakoto@google.com> Merge "Extract the throttling part from ThrottlingCursorLoader"
d7876681a85a4cc799feec775bdfe7927f983464 05-Oct-2010 Andy Stadler <stadler@android.com> Reorganize startup/shutdown code in SyncManager DO NOT MERGE

* Move all thread-related startup code into run()
* Move all thread-related shutdown code into new method shutdown()
* Add appropriate synchronization during startup/shutdown
* Add thread names to worker threads

Bug: 2790929
Bug: 2645835

Backport of: Idbd35892cea3de5fbd365102a62103b2f0bdf6c9
Backport of: Ib12a70222ac3fd9e65bec3834c0aae061858776c

Change-Id: Idfd1c9ac7fbe8ce6859b1933ab6d287e3cb0d2e9
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
085f7eb1219f270faa8317a5c6069a562213cb83 02-Oct-2010 Makoto Onuki <omakoto@google.com> Extract the throttling part from ThrottlingCursorLoader

Extracted into the Throttle class as I'll need this logic elsewhere.

Bonus: Now it has tests.

Change-Id: Ie9a5933f8e5015dda6985ba76814f1f945266178
ndroid/email/Throttle.java
ndroid/email/data/ThrottlingCursorLoader.java
56034cab2022fe78ccbf4635617b1a54b4cc16b8 01-Oct-2010 Makoto Onuki <omakoto@google.com> Fix "move to" dialog style

- Pass the correct context to the adapter to make the text visible.
- MailboxesAdapter itself now has two modes (normal mode for MailboxList,
and "move to" mode), and use different views for them.

Change-Id: I2bd8a7d3a99d7fa3a047e653a77ec958e37e563b
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MoveMessageToDialog.java
1a0b0092e0deba07b7dcb543a837fbc116584389 01-Oct-2010 Makoto Onuki <omakoto@google.com> Add "Clear WebView cache" button to debug preference

Change-Id: I317b57cb06b071f9574077b58998aafcb5e0dff8
ndroid/email/activity/setup/DebugFragment.java
14a5d8d947972f8a05bed80549bde2b99cfb2a8b 30-Sep-2010 Marc Blank <mblank@google.com> Provide better information w/ 500 error in EAS validation

* HTTP error 500 occurs with Exchange 2003 when the user tries to
authenticate with wrong credentials; we report this as "Cannot
connect to server", which is wrong
* Error 500 is supposed to mean "internal server error", but since
we know that an authentication error can cause this, we now put
up a better error message

Bug: 2933381
Change-Id: I9319a5ed6fbf4c92739f305b42b6b1cad7036a4b
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/mail/MessagingException.java
ndroid/exchange/EasSyncService.java
624081f3732dc9bc59f31bd6dc6e15f40350aae3 30-Sep-2010 Marc Blank <mblank@google.com> Merge "Fix build break."
b21db41b1f0b5401fff4f7c781a55e7c0e1753ea 30-Sep-2010 Marc Blank <mblank@google.com> Fix build break.

Change-Id: Ica28b1e234e2c6966408efc7151ea517a18aa72f
ndroid/exchange/adapter/Serializer.java
61eec98d398358f61cf601e805e8bfd01e4b3418 30-Sep-2010 Makoto Onuki <omakoto@google.com> Switch to static fragments

- Now we declare all fragments in the layouts.
- Added clearContent() to MessageList/MessageView to keep them calm when not
used. (e.g. MessageView.clearContent() will be called when closing message
view and going back to the mailbox list+message list screen.)

- Some of the processes have moved from onStop to onPause.
- Now that we don't use the fragment transaction, the "restored fragments"
has been removed, and the separation between selectXxx() methods and
updateXxx() methods are gone.

Bug 3045555
Bug 3041502

Change-Id: I958897a8a38bccea1dfed7cfcd900e6dd52d2eed
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
beb3a06fd73bf306d134db80690283cceb62f72a 30-Sep-2010 Marc Blank <mblank@google.com> Merge "Allow Serializer logging via isLoggable"
05530d4c3389f3107d1b8c0060110c95a75ef5bc 30-Sep-2010 Marc Blank <mblank@google.com> Allow Serializer logging via isLoggable

Change-Id: Ie6c0257a3fa854d7abc92a82b690884ce2a4cb4c
ndroid/exchange/adapter/Serializer.java
4e400caab4ba5034141da35df3ce34290b4e9b93 30-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Switch to tablet style notification"
899c5b866192a4c4a12413446d10e5d98dbf94fa 27-Sep-2010 Makoto Onuki <omakoto@google.com> Switch to tablet style notification

- Now we show separate notification for each account
- New notification has sender photo, sender name, and subject
of the latest email
- Added the NotificationController class, which is intended to manage
all notifications besides "new message" eventually.

The framework doesn't seem to be 100% ready, and it's not clear how to
add the 3rd line in the expanded notification at this point. Need to
revisit it later to verify UI details.

Change-Id: I40193ee372cb6b2b7245c1588890f238b2469699
ndroid/email/NotificationController.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/MailService.java
ndroid/exchange/CalendarSyncEnabler.java
62c9df806e6c165c9ffdc6b5c5372670e24e00df 29-Sep-2010 Makoto Onuki <omakoto@google.com> Two bug fixes related to preserving list scroll position

* When changing account/mailbox, reset scroll position.
Applied same change as I4b368f51 to MailboxListFragment.

Also fixed a bug introduced in the same CL.
When CursorLoader detects content changed events and reloads itself,
only onLoadFinished() gets called, and in this case we should keep the scroll
position. This means mMailboxChanging should be cleared once data is loaded
for the next content changed reload.

Bug 3015916

* Don't try to make the selection visible when reloading the list for content
changed events.

We should make the selection visible only when account/mailbox is explicitly
selected. We can use the same mXxxChanging flags for this.

Bug 3036317

Change-Id: I93e3653da6816f491c1e99c9ef6d6b947be4de37
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
8818a658a167001d7b5cd182412d0cb9031acba2 24-Sep-2010 Makoto Onuki <omakoto@google.com> Three pane layout

Implement basic behavior of the new layout. Supports collapsing/expanding
message list on portrait.

TODO Collapsing the middle pane should cancel the selection mode on
message list
TODO Implement animation
TODO On STATE_PORTRAIT_MIDDLE_EXPANDED state, right pane should be pushed out,
rather than squished.

Change-Id: I0306516845de3a1f05a102864c3dc4aba809a49a
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/ThreePaneLayout.java
cd2e98d000389c9f94e6524ce69643933d73469c 29-Sep-2010 Marc Blank <mblank@google.com> Merge "Use LIMIT parameter in getFirstRowX calls"
2711c16a46034341fee81dc906162169764197f2 29-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Don't use QuickContactBadge.assignContactFromEmail"
6740c7b5acd96d960ed720b00213e90aab70925e 29-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Don't restore list view state when changing mailbox."
bc9253fb9afce2fdc8aeffa0398640dc2723dacd 29-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Rely on the fact that display name won't be empty"
07597e547bc02cd2247caa866d25b94745dcd448 29-Sep-2010 Marc Blank <mblank@google.com> Use LIMIT parameter in getFirstRowX calls

* Also, rename the LIMIT parameter to be consistent with naming
conventions

Bug: 3046494

Change-Id: Iafc7f7d76f45bc7988e5d63783359082756b7ffa
ndroid/email/Utility.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
d22651ccd14939dc287cb32bf5403f5bb51aaeac 29-Sep-2010 Andy Stadler <stadler@android.com> am 060b1df0: am a9bc41f5: Show server name instead of account name

Merge commit '060b1df06954be1d72a659b0f00e30b8057484e0'

* commit '060b1df06954be1d72a659b0f00e30b8057484e0':
Show server name instead of account name
1d2c88738d77401caa9538b61b968f8c7de7e2a8 29-Sep-2010 Marc Blank <mblank@google.com> Merge "Add Uri for Message queries that include a LIMIT"
a9bc41f5ecea991d06b88ce861a412288303e9dd 29-Sep-2010 Andy Stadler <stadler@android.com> Show server name instead of account name

The format string "The server %s requires that you allow it to remotely
control some security features of your phone." was being displayed with
the account name instead of the server name.

Bug: 3011124
Change-Id: I1aadb5790297777831dd69f04ea89641240b7b87
ndroid/email/activity/setup/AccountSecurity.java
e33a317db034c89f84d986e6e3c895bbef0f57f5 29-Sep-2010 Makoto Onuki <omakoto@google.com> Expand hit-area for checkbox and star on message list

Bug 2561779

Change-Id: I4b71d48c9440e0f3c308fbe8ff16ada04b9df54e
ndroid/email/activity/MessageListItem.java
ddfae933da3134a5d8a5d487045cdb99c67013fa 29-Sep-2010 Makoto Onuki <omakoto@google.com> Don't use QuickContactBadge.assignContactFromEmail

* assignContactFromEmail("") was causing the following exception on logcat.
"java.lang.IllegalArgumentException: URI: content://com.android.contacts/data/emails/lookup/,"

* This method is to set the contact to open when the badge is tapped,
but we trigger quick contact by ourselves, so don't have to do call this.

Bug 3013527

Change-Id: I16e1573bd82ffe5c39d30b69361354010f508f91
ndroid/email/activity/MessageViewFragmentBase.java
dc33d50a244f2b455e75f55f8b64add37093fce5 29-Sep-2010 Makoto Onuki <omakoto@google.com> Don't restore list view state when changing mailbox.

Bug 3015916

Change-Id: I4b368f511a94ec83723b571d1cfca1b3d39e4d04
ndroid/email/activity/MessageListFragment.java
c3b3b7a0a3eedccfeba78aea42f1143d0298489f 28-Sep-2010 Makoto Onuki <omakoto@google.com> Rely on the fact that display name won't be empty

Change-Id: Ifd17daac472c1d439ddc4bd8e6811bb13a9018fa
ndroid/email/activity/AccountSelectorAdapter.java
0efe738e05a31e0c1ebfba645bd2364a373a3f33 28-Sep-2010 Marc Blank <mblank@google.com> Add Uri for Message queries that include a LIMIT

* Use a query parameter (e.g. ?limit=2); LIMIT works with any
query

Change-Id: Idd106ab4b61aec237ac9676a201e797c4f65f15b
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
f25236b61e98635fb0dc7718a196f2b1544770fa 28-Sep-2010 Marc Blank <mblank@google.com> Merge "Remove obsolete EAS logging"
82c944ef3aa7bb10bef7ec2b9daeb745844a856d 28-Sep-2010 Marc Blank <mblank@google.com> Remove obsolete EAS logging

Change-Id: I549957c92aa05f98581441c1a7631f87040c5078
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/AbstractSyncParser.java
e242578a49f54a9f46d0bd68de53c98d7dc460fb 28-Sep-2010 Andy Stadler <stadler@android.com> Make WebViews clickable DO NOT MERGE

* Makes the side-scrollable again
* Required after making them non-long-clickable

Requires companion change in WebView, to allow touch events while
clickable or long clickable (it had been requiring both)

Bug: 3036477
Change-Id: I4cae46d047f825d2aab08d254287855b187e9207
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ac916da48e2a550815ac13445038528aa4011442 28-Sep-2010 Andy Stadler <stadler@android.com> Improve handling of content-disposition DO NOT MERGE

* Check array returned by split("=")
* Add unit tests for this case
* Also add unit tests for quoting removal

Bug: 3040796
Backport from: I170f3cd483fe35186194edeb0c3142fb0e2e9b75

Change-Id: I32ccbdbc7264a95a9cd279218cae390e65e82eeb
ndroid/email/mail/internet/MimeUtility.java
bbac024785b9a07c9ef3d095bce9468ac3c9707c 28-Sep-2010 Andrew Stadler <stadler@android.com> Merge "Improve handling of content-disposition"
87fcd03a1b266d3f6030347143f242b1eb524cf8 28-Sep-2010 Andrew Stadler <stadler@android.com> Improve handling of content-disposition

* Check array returned by split("=")
* Add unit tests for this case
* Also add unit tests for quoting removal

Bug: 3040796
Change-Id: I170f3cd483fe35186194edeb0c3142fb0e2e9b75
ndroid/email/mail/internet/MimeUtility.java
02a0edb60d0a0dfeffd2bf09ed2ba51f34926ded 27-Sep-2010 Andy Stadler <stadler@android.com> Allow spaces in passwords DO NOT MERGE

* Separate/identical fixes for incoming, outgoing, exchange
* Unit tests
* Some protocols will fail anyway (e.g. POP3)

Bug: 2981433
Backport from: I82984e5912fc7fcb88e747815d0fe33cb36605e7

Change-Id: I49d5c13137e4f78b6fa0f9ce288c1a78ff028f88
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
e96c09c55b2738b234faacab1ac0a0b1fd4863c5 27-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Adding StopWatch class to measure elapsed time"
7687f05f7bd02a4400e340eeb05cd296c34da42a 27-Sep-2010 Makoto Onuki <omakoto@google.com> Adding StopWatch class to measure elapsed time

Change-Id: I0f38e89ffc030ba5105af50b147d783d71bd5f8f
ndroid/email/StopWatch.java
fb4333b3a5051b08d3a255000bb1b8331e2a1d43 25-Sep-2010 Andrew Stadler <stadler@android.com> Allow spaces in passwords

* Separate/identical fixes for incoming, outgoing, exchange
* Unit tests
* Some protocols will fail anyway (e.g. POP3)

TODO: Some sort of warning (master only - won't backport that)
Bug: 2981433

Change-Id: I82984e5912fc7fcb88e747815d0fe33cb36605e7
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
d25d87c7ba8bbbbcad771695a7085f227bac8a1b 24-Sep-2010 Makoto Onuki <omakoto@google.com> Fix NPE with use of getFirstRowXxx

Make sure not to cast null into a primitive type.
(i.e. If null isn't expected as a return value, make sure to set a non-null
default value.)

Bug 3032143

Change-Id: I9a344d765c75a66f529ad8d99b00b2b919139f9c
ndroid/email/provider/EmailContent.java
1f6126313692efd29460b96b3980a62229f18053 25-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Refactor for new notification UI"
224442906b6ce92e04d27f22b6afc18cf4506b07 25-Sep-2010 Marc Blank <mblank@google.com> Merge "Handle EAS type 1 folders (user-created)"
08346b67b8aa3e36057fa4e439275efa8c3a8098 25-Sep-2010 Makoto Onuki <omakoto@google.com> Refactor for new notification UI

- Move the notifiaction code into a bg thread.
We need to access db to fetch the latest message
- Extracted ContactStatusLoader.load to synchronously load contact
pictures.

Change-Id: I282ffb706ea8e14558bf29880a0fb952868b27e5
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/service/MailService.java
082443978595bee3b7907563dc7665f908872e20 24-Sep-2010 Makoto Onuki <omakoto@google.com> Workaround for ListView bug related to smoothScrollToPosition

Hopefully it'll soon be fixed in the framework, but it's blocking what
I want to do now.

Bug 3028455

Change-Id: I43ed059b7766a3bfc29166464bd449d905b207e4
ndroid/email/Utility.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
23f8d3be7dad09dca750c482ddb03c80780d896d 16-Sep-2010 Marc Blank <mblank@google.com> Handle EAS type 1 folders (user-created)

* If a type 1 folder has an mail folder as a parent (at any level),
it is also a mail folder (and therefore, we should have it in our
folder list)
* Before rejecting type 1 folders, look for parents and accept those
that are mail folders
* Add unit test to verify logic

Bug: 2978410
Change-Id: I44cda1d1c1fd7f3976af53a1672736201cc995ff
ndroid/email/provider/EmailContent.java
ndroid/exchange/adapter/FolderSyncParser.java
4209ea36b0602d4f1dca0e9057e6a6b58d7d907d 22-Sep-2010 Makoto Onuki <omakoto@google.com> Make ThrottlingCursorLoader smarter

Now the class initially uses smaller timeout, and expand it when detecting
multiple changes in a short period.

This CL makes the UI look more responsive especially on the message list +
message view mode. e.g. Starring on the message view will quickly be
reflected to the message list.

Bug 3024799
Bug 3027832

Change-Id: Ie2d44c3769d43e3fd0f54ee526556eb3bad5e288
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/data/ThrottlingCursorLoader.java
2dbb510657f42768dd215ac98ecfc17b7b0d39aa 23-Sep-2010 Makoto Onuki <omakoto@google.com> Hide bottom buttons when message list enters selection mode

Hide the command buttons at the bottom of the message view when the message
list enters the selection mode.

Change-Id: Id825bb5183673e9def055b6480fa180beab51178
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
c8fb75035f59cd2f5f48bc233f311fe3ec55bd68 23-Sep-2010 Makoto Onuki <omakoto@google.com> Implement latest selection mode behavior

On the message list,
- Longpress toggles selection.
- Tap opens message

Now it should be in line with gmail.

Change-Id: I1ce441a13fd9b41e3d7d10c2f2e4d43e580db708
ndroid/email/activity/MessageListFragment.java
e069246d48bf5f90dfe20dacd709d495173ebb47 23-Sep-2010 Makoto Onuki <omakoto@google.com> Make sure callback is still registered when calling wrappee

This caused callback methods getting run after onDestroy() problem.

Bug 2799534
Bug 3011802

Change-Id: Id505e328bbff096a9f7474c033443ff6663a5fdf
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
58843f0dc336983bde54307d7387dcfcfc461017 22-Sep-2010 Makoto Onuki <omakoto@google.com> Highlight selected message on message list

Also make sure the highlighted mailbox is always visible on the mailbox list.

MessageListFragment now just uses the default background color, which means
it no longer changes background color for unread messages or checked messages.
This should be re-implemented if necessary with the newer wireframe.

Change-Id: I9bfbe9f0711ea4ab56be27778b00298d3033123b
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessagesAdapter.java
793c6639ec7ee0806852d5ad5aedafa79737cf79 22-Sep-2010 Marc Blank <mblank@google.com> am 9b5c615c: am deed4505: Merge "Increase EAS command timeout from 20 to 30 seconds" into gingerbread

Merge commit '9b5c615ceea0270878a5b89fc0a063eeb9ffdd3e'

* commit '9b5c615ceea0270878a5b89fc0a063eeb9ffdd3e':
Increase EAS command timeout from 20 to 30 seconds
0813c7051ff91e569c7100977502247d848283a1 22-Sep-2010 Andrew Stadler <stadler@android.com> resolved conflicts for merge of 0d9ed341 to master

Change-Id: I198f760ef1734cf4a64c875236a2352859dc1a72
b4dacf2acfb8a07216c285af87e34a37619af50a 22-Sep-2010 Makoto Onuki <omakoto@google.com> Don't show only special mailboxes on mailbox list

When a new account has just been set up and the app is still loading
mailboxes, keep the mailbox list empty and let ListFragment show
the progress icon, rather than showing "Combined Inbox" "All Starred" etc
without acutal inboxes, which looks like it's broken.

Change-Id: Ia3de4377b701f0033c5dc92f8b6b14651d4d8e1e
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
deed4505e9ad11626a8163653def57318b2d7d39 22-Sep-2010 Marc Blank <mblank@google.com> Merge "Increase EAS command timeout from 20 to 30 seconds" into gingerbread
ed824a07ae8389f1d9fb2214ad91356109b35a05 22-Sep-2010 Andy Stadler <stadler@android.com> DO NOT MERGE Harden thumbnail creation

* Catch some errors earlier; Log all errors.

Bug: 2905324
Backport from master: Icdf4ec881f404787a0621e606d7e611d5e50aab1

Change-Id: I817a770da2d158984476cfa2b10a5de6bc0b43f8
ndroid/email/activity/MessageView.java
ndroid/email/provider/AttachmentProvider.java
16657c9c201089d480feff0e8938ffbde3ffddde 22-Sep-2010 Andy Stadler <stadler@android.com> Merge "Fix test failures" into gingerbread
250ca15b882c7df996f590a134ec92ffca26a9ff 22-Sep-2010 Makoto Onuki <omakoto@google.com> Show MessageList with MessageView, rather than MailboxList

In message view mode, show MessageListFragment on the left pane.

TODO: Highlight opened message on message list
TODO: If the opened message is moved/deleted/starred/etc, update
message view
TODO: Collapsible left pane on portrait

Change-Id: I9b26f7291648da0e08bc526b79305ab65ce4d926
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragmentBase.java
353b75b04be276895b6d109ca5c1a5be8b68ab4b 22-Sep-2010 Makoto Onuki <omakoto@google.com> Fix NPE -- check isCancelled in onPostExecute

Bug 3024665

Change-Id: I97c122a6c66a7d4245187961cb90ea874d0e305d
ndroid/email/activity/MessageViewFragmentBase.java
1ef511dafd01d99468a95b75ee5c3169513df184 22-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Ignore and log OOM during bitmap creation"
65a10186a5ad50edf8febd448397bd6ef203974f 22-Sep-2010 Marc Blank <mblank@google.com> Increase EAS command timeout from 20 to 30 seconds

Bug: 3027271
Change-Id: Ic58fea147d179ffd18f28a8ce5d290a1b37302ce
ndroid/exchange/EasSyncService.java
6278dcdeafadc55fe1a57eec42a0807874377f62 22-Sep-2010 Andy Stadler <stadler@android.com> Fix test failures

Methods were used by tests only and being stripped by PG.

Bug: 2894378
Change-Id: Ieb1dd0daa8bd380c66a7b1e6151c5e5b22cbe38c
ndroid/email/SecurityPolicy.java
ebba88e4f4b3dd8001c6e1d2e4c1944aef613795 22-Sep-2010 Andy Stadler <stadler@android.com> Merge "DO NOT MERGE disallow longpress in WebView" into gingerbread
625451ed25747d2637bd45274b0ec1f7d1bbb93c 22-Sep-2010 Andrew Stadler <stadler@android.com> Harden thumbnail creation

* Catch some errors earlier; Log all errors.

Bug: 2905324
Change-Id: Icdf4ec881f404787a0621e606d7e611d5e50aab1
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/provider/AttachmentProvider.java
d46952e7b0d47a4150d140502caf34e3a5276dd8 22-Sep-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Test validity of port numbers in account setup

Bug: 1712475
Change-Id: Iced4875379a804b5072e4df0af25db7bf9473131
ndroid/email/Utility.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
d7f886c5c80c98179054c2e02014dc088f925bc2 22-Sep-2010 Makoto Onuki <omakoto@google.com> Ignore and log OOM during bitmap creation

Change-Id: I00ca40d98e425eb267b601cc9049af6ecfd2883d
ndroid/email/activity/ContactStatusLoader.java
ccfc1c29c2f9fff7ee824d342bde1e5d7138722b 22-Sep-2010 Marc Blank <mblank@google.com> Merge "DO NOT MERGE: Don't disable account box if sync freq -> "Never"" into gingerbread
4580c3136d6dc82e3816cca104046a4a7af2aaf7 22-Sep-2010 Makoto Onuki <omakoto@google.com> Rename misnomered constant

Change-Id: I8d1024a85ad02ba7ce7ecf22f719cab34bf70307
ndroid/email/activity/MailboxListFragment.java
6f207f5df2a1b4190e5da243fd497dcf168899af 02-Jul-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Interpret "busy" on new events to mean "no response"

* The meaning of a busy status of "Busy" is uncertain; it could mean
"Accepted" or "Tentative", depending on whether the event was
created via OWA/Outlook or EAS
* We have interpreted it as "Accepted", which prevents the user from
actually accepting the event (as a state change is required for us
to send updates to the server/organizer)
* This CL changes the behavior such that a newly arriving event with
a "Busy" status is shown as "No response" in the Calendar, thereby
allowing the user to pick from any of the three possible options.

Bug: 2811859
Change-Id: I321f714e54e66ee8f40f5e2c00587b98bad71a63
ndroid/exchange/adapter/CalendarSyncAdapter.java
77259fab1b97d517b2ab724a1d27f4f9f0be3181 03-Sep-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Don't disable account box if sync freq -> "Never"

Bug: 2905667
Change-Id: Iec214b0fed093ff39dc70d5d821577bcf15f00ed
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
70880a7f2951b8372841726cc2f3d7abd87f0ab5 22-Sep-2010 Andy Stadler <stadler@android.com> DO NOT MERGE disallow longpress in WebView

* This gets very confused by the new text copy logic
* Downside is that copy from received message does not work at all
(it didn't work anyway).
* Will fix in next release by redesigning MessageView layout and no
longer wrapping in ScrollView

Bug: 2998892
Change-Id: Icd1219f3c45fd4da9259499e9c8a31ed0d3c4c30
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
263ef7ddd4fb44eb4a53d6f1bd599d0d5bbb584d 17-Sep-2010 Makoto Onuki <omakoto@google.com> Small change to MessageViewFragment

resetView() shouldn't kick LoadMessageTask(). (it's not what its name implies)
Added a TODO.

Change-Id: I0523696f3883a905d9732626824efda598bf10ed
ndroid/email/activity/MessageViewFragmentBase.java
0e89a9a64012c00fbf129c7237e7fefa3fe2efca 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Use the default theme for selected mailbox."
c6299fc0788afb9a066389f239cdfe630fc5c021 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Fix ANR in one time initializer and unify BroadccastReceivers." into gingerbread
9523ecf27e35dc7b05bde68d2711459a43f373d2 28-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Fix ANR in one time initializer and unify BroadccastReceivers.

- Merged all three BroadcastReceivers into one.
(Changed class name because old ones may have been disabled.)

- Use IntentService to perform the tasks in a worker thread.

Note the new receiver will never be disabled. We always need to start
exchange.SyncManager.

Bug 2722155
Bug 2416929

Backport of I8241880fc1ee38d85dcdca7e1d46fc2f6b2d375b

Change-Id: I9835cf86846d842e6f2d23014bc0912c3b888a05
ndroid/email/Email.java
ndroid/email/OneTimeInitializer.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailBroadcastReceiver.java
ndroid/exchange/BootReceiver.java
b3eefca0e1c7fffe1b015e18050aee6867bfbcdd 11-Jun-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Fix NPE in Controller and MessagingController.

Bug 2553401
Bug 2186777
Bug 2721133
Bug 2684365
Bug 2530534

Backport of I5185d9196deab5ba3a9866e2de2a9be04a04ca03

Change-Id: I192267d7d48d377fe1fc083797cb199f8e94c0c4
ndroid/email/Controller.java
ndroid/email/MessagingController.java
0be6c7c5cf53d53ecd43f3ea51885c485525ccfb 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Fix handling IOException in ImapStore" into gingerbread
32517753ea61b12b0971329f375fdd304d12d003 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Handle multiple IMAP SEARCH results." into gingerbread
75c6a611aa9a35a5d938ced3674e559bf47a1ddf 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Test for interaction between ImapStore and vendor policy." into gingerbread
7fbdc44c580aa146cec1b91d60bf38e0df641c12 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Extract MockVendorPolicy, add standard mechanism to inject it." into gingerbread
2ef9710e0226aff64ad2772a511a57e9d6fe05ea 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Implement destroy() for all ImapElement classes." into gingerbread
56d04724fe50562653ccd967db6268580e826352 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Always destroy ImapResponses." into gingerbread
8c02a81722b23bb31f05f4753d6b044ced74c62c 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Add TODOs to ImapStore." into gingerbread
415b27fbd3ef02d8a71b99b5f2ec0922a22c00f1 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Follow-up to the new IMAP parser." into gingerbread
005db01c745eb7af7abb5e16eb5e568946faf2ed 21-Sep-2010 Marc Blank <mblank@google.com> Merge "Restore sync window to PIM syncs"
66bcd34f457988bbfc68dec00c38f99a8b3ad387 16-Sep-2010 Marc Blank <mblank@google.com> Use MimeUtility to parse EAS 2.5 MIME data

* Functionality is effectively unchanged, but we reuse existing
code rather than custom code created for this purpose
* Fix bug related to setting mFlagLoaded after loading a plain
text body

Change-Id: Iaaf647c0560827f318c8b7a00fb18a6570783c99
ndroid/email/LegacyConversions.java
ndroid/exchange/adapter/EmailSyncAdapter.java
685901b03bba9c95f2c4335ee6ae7dcd611c9b52 21-Sep-2010 Marc Blank <mblank@google.com> Restore sync window to PIM syncs

* The code to enforce a sync window (limit to the number of items
synced per request) was inadvertently removed in an earlier
CL; restore it here

Bug: 3018568
Change-Id: Ib2377b36999b92d0bcef1b159416f46016137100
ndroid/exchange/adapter/AbstractSyncAdapter.java
ef70c9872b90d0980260a9be020cbfcc286d405f 21-Sep-2010 Marc Blank <mblank@google.com> Merge "DO NOT MERGE: Send intro text with SmartForward" into gingerbread
9afbf947de36f07c6da704f83a0067993005c163 06-Jul-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Send intro text with SmartForward

* We need to include the intro text (--Original Message--, etc.) to
SmartForwards, and somehow this got in a past updat
* Add unit test for forwarding
* Fix unit test for reply so that it works localized

Backport of I8d92f00d37a434840ec3eb237f3901cd5dc7ad09

Bug: 2477988
Bug: 2685784
Change-Id: I2b6654413a8eb5ca900f958f49ec9eee5161a365
ndroid/email/mail/transport/Rfc822Output.java
65124587840b840bc00ddb6d8670018a92644739 05-Jul-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Make sure signature is added to reply/forward

* Add this to processSourceMessage in the reply/forward cases
* Add unit tests for reply and forward case

Backport of I6be8383fe5f217a4bda8e669cb69f439bc8e96b6

Bug: 2734321
Change-Id: Ia59e8c4e2f9663f2a10cff066eddeff80bc06cef
ndroid/email/activity/MessageCompose.java
f255081a85bd1680c6a2d2b7225aa45cd104cb66 06-Aug-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Fix handling IOException in ImapStore

- mConnection.destroyResponses() should be protected with
if (mConnection != null).
When we get an IOException, we close the connection and null it out in
ioExceptionHandler(). So mConnection can be null at any point after
where ioExceptionHandler() first appears.

- ioExceptionHandler should close its parent ImapFolder only if the argument
connection is mConnection.
Methods like exists() may pass an ImapConnection which is not mConnection
to ioExceptionHandler. In which case we don't have to close the ImapFolder.

Bug 2898211

Backport of I8f9f45d91f596bb8da1a1575593e652d66deb643

Change-Id: I070458b5535540aba69ad7eee88bd2af8ad5f7b1
ndroid/email/mail/store/ImapStore.java
29f0638f4d12db2e42fce7b8a74495d6f368417e 11-Aug-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Handle multiple IMAP SEARCH results.

Apparently IMAP servers may return multiple SEARCH responses for a
single SEARCH command, and we need to handle all of them.

Before the IMAP rework there was 3 methods that issued the SEARCH command.
Two of them ware doing it right, but the other wasn't, which was what
I copied from, unfortunately!

In case you're wondering, originally the test for this method was done through
upper methods, e.g. getMessage().

Bug 2911647

Backport of Ia50072944d5b01c1e59541c3a966067b13910cc4

Change-Id: Iab5d3fa21e403f2e1043990112154fbb72322b02
ndroid/email/mail/store/ImapStore.java
8aa79ba695391c975cdac90676e68e97097d3a21 14-Jun-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Test for interaction between ImapStore and vendor policy.

Backport of I092b3a0f2f40d9aa19f2f61066362099c8b3f50b

Change-Id: I492f975e66d67aae62024804a294e796f23d2aad
ndroid/email/mail/store/ImapStore.java
618f1d8ac513f9cf3d12fb9d773bc457a8f7259b 11-Jun-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Extract MockVendorPolicy, add standard mechanism to inject it.

One thing that bothers me regarding the new ImapStore is that there is no
tests to verify if the way how getImapId() uses a vendor policy hasn't changed.
This part is hard to test with a real vendor policy, and it can easily be
overlooked even if it's broken.

This CL offers ImapStoreUnitTests a way to test the interaction between
getImapId() and a vendor policy.

Also fixed a bug in VendorPolicyLoaderTest where it assumed the test apk
package name is "com.android.email.tests", but it may actually be
"com.google.android.email.tests" now. (Broken since the test makefile
used inherit-package.)

Backport of I8feb616ea28cb5cae5b4fba57e363771014ac599

Change-Id: I59536bc9a0e5c09c23eab21cdfb2f8283ef01a42
ndroid/email/VendorPolicyLoader.java
ee6d0d47f58ac8d010cbc68014e6786da696e726 01-Jun-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Implement destroy() for all ImapElement classes.

- This is to make sure we're not touching any ImapResponse that's
already been destroyed.

- I didn't add "is it already destroyed?" check to them
(except for ImapTempFileLiteral), because it can be costly.
Just let NPE be thrown.

Backport of Idc7b88c4844727922841cbad8a106bf781181d45

Change-Id: I9932e78a49784e4218e939a12ebcb9a497c4eb57
ndroid/email/mail/store/imap/ImapElement.java
ndroid/email/mail/store/imap/ImapList.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
6275e8b1441b9fb87dd3cc623e90ea61a180013b 01-Jun-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Always destroy ImapResponses.

Unfortunately it's hard to write tests for this change, but at least
all tests pass with Idc7b88c4.

Backport of If0335a848dfcc23aecea22c21b2cce73dac7ff6f

Change-Id: I6cb3525bc3c67bbf2fb101488bf95edbead5d299
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
565f58b9aaa66c218df862ca6e3ee3fa1530ab0e 01-Jun-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Add TODOs to ImapStore.

Backport of I5a9f246eb81cfca6008f82e8c2ffff8b7f28ba1d

Change-Id: I1422e8ae35e2ba560d1227669b9f720b937033a7
ndroid/email/mail/store/ImapStore.java
57ab324a115352bff019ec4c74520a1b5116c1b9 29-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Follow-up to the new IMAP parser.

- Replace string literals in ImapStore with constants.
- Simplifies ImapStore.en/decodeFolderName
- Mix cases in the test data to test for case-insensitivity

Backport of I88424357227bcf78528df5e6a1c4ba45d54cc65b

Change-Id: I254fe82324f6ff530e40ca0cff7073f670cf9aa3
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapConstants.java
ff0712cb1e2e1902d754ac37ab637b94b8cc8933 20-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: New IMAP parser to fix long-lasting problems.

- Almost completely re-wrote ImapResponseParser layer
- We no longer use simple ArrayList and String to represent
imap response. We have classes for that. (Type safe!)
These classes are also NPE-free.
(which isn't necessarily a good thing, though)
- A lot of clean-ups and fixes in ImapStore.
- More tests for ImapStore.

Now ImapResponseParser moved to com.android.email.mail.store.imap.parser,
but inside, it's 99% new code.

This CL introduces many new classes, but most of them are small classes
to represent the IMAP response.

Problems that this CL fixes includes:
- Special characters in OK response
- Handling BYE response
- Case sensitivity
- ClassCast/ArrayIndexOutOfBound/NumberFormatException
- Handling NIL/literals at any position

Bug 2480227
Bug 2244049
Bug 2138981
Bug 1351896
Bug 2591435
Bug 2173061
Bug 2370627
Bug 2524881
Bug 2525902
Bug 2538076

Backport of I7116f57fba079b8a5ef8d5439a9b3d9a9af8e6ed

Change-Id: I38b6da7b82110181dc78a2c63c6837c57afa81ae
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/Utility.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Message.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapConstants.java
ndroid/email/mail/store/imap/ImapElement.java
ndroid/email/mail/store/imap/ImapList.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapResponse.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
80202a9599d25fe9f01e23897938e7280ce1c554 20-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Clean up ImapStore and related classes.

- Introduce Fetchable
- Made static some methods/nested classes in ImapStore
- Removed ImapBodyPart
- Fixed lien breaks

Backport of Iec1aff2771faa28717753d6e2d9db96d940233a9

Change-Id: Ia97257c40a6edbe0abc4937068e9cd20e6c558d8
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Fetchable.java
ndroid/email/mail/Part.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/store/ImapStore.java
286eafcf5fa7d37c9100567c8e550c3092106d93 19-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: More tests for IMAP, clean up, and a few bug fixes.

- A few new tests in ImapStoreUnitTests.
- Added TODOs to ImapStoreUnitTests (for mainly NO response handling)
- Renamed ImapStore.releaseConnection to poolConnection.
- Fixed a bug in getConnection where it'd return a closed connection.
- Now getConnection() hanles BYE response for NOOP correctly and treat the
connection as closed.

Backport of I48e5b89049338f7d4f1ac77cd7ac7243945a9575

Change-Id: I529c6667a1e60c67285b7050b2b1e4b67eccc104
ndroid/email/mail/store/ImapStore.java
cd0b60e97ae739555413b2bfd543e4f452a005c6 18-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: More test for ImapStore/ImapFolder.

- Also, fixed a potential crash in getMessages().
It could happen when a client is gettign a message list while
another client is removing messages.

Backport of I04b1de6bc384cffb7a5286bcec0a349a3d62a623

Change-Id: I227ecbf5bd68c999ba0ab8cd50ef798ef4ef35e4
ndroid/email/mail/store/ImapStore.java
a599ee773d3bb6350ca775db717123faffbdbfe3 18-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Tests for IMAP FETCH

Adding regression test for the new IMAP parser.

Backport of Iac7f5c022e44ca5f06f735e145af15cc459eb61f

Change-Id: Ic84172b6793a9837c2fc4a894fee141da3d19f1d
ndroid/email/mail/internet/MimeMultipart.java
18d331898f77e15ce8587e6f04cc91a7742ed61a 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Relax MIME date parser." into gingerbread
090489b3953ff824cee812bae1114ba7ff7b30ca 21-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "DO NOT MERGE: Fix flaky tests" into gingerbread
be2ef97220619a3acf6c3dd4eb4b8add26ff452a 21-Sep-2010 Andy Stadler <stadler@android.com> DO NOT MERGE Send local IP address with EHLO instead of "localhost".

Bug 1515345

Backport of: I181c9f0d79fbdf62f7df77f72a1ec9653797b6dd

Change-Id: If9da2d9f717814bff6a3aa7e6f1a0a44a49f34d6
ndroid/email/mail/Transport.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
d711bab919535b46b48bf007048568771c5c9a23 21-Sep-2010 Andy Stadler <stadler@android.com> DO NOT MERGE Fix debug logging controls

* Assign "enable exchange parser logging" from Eas.PARSER_LOG instead
of from EAS.USER_LOG.
* Reorder setup to assign listeners last; This avoids unnecessary calls
to Email.updateLoggingFlags() during setup.

Note: The bug exists as far back as eclair, but the fix will need to be
made in a different file in earlier versions (pre DebugFragment)

Bug: 3003813
Backport from: I5d8f66747a86139dd593ac16ea421ab1e33b8795

Change-Id: Ifd427d697347894d0f584ae04142434c30724e92
ndroid/email/activity/Debug.java
a780e12db2dba2f4b4fe3ea878171bc34f26e962 23-Apr-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Relax MIME date parser.

Make the date parser accept invalid dates like
"Thu, 10 Dec 09 15:08:08 GMT-0700" which was observed in an email from eBay.

Per RFC, timezone must be either obs-zone (e.g. "GMT") or +/- with 4 digits.
The GMT+/-digits format is not permitted.

Bug 2367124

Backport of I59968274160aeadea70223208b463ee692660056

Change-Id: I3c80eee28d1dcf4c0c211f773a50de0f0839e4ad
ndroid/email/Utility.java
a8a68b827de9e7e335d8b95dcbb3c36af87db06b 17-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Fix flaky tests

Follow up to I3bf7d340. Make sure temp directory is set before running tests.

Turned out Application.onCreate doesn't seem to be guaranteed to be run
before unit tests.

Without this, some tests may fail saying: "TempDirectory not set.
Application hasn't started??", if onCreate runs too late.

Backport of Ic5aee939a2c21f9579a643d0729dd0e9ba81022e

Change-Id: I7526e3205fc78a5eb79f0786b831c4f642cbda70
ndroid/email/Email.java
e4cfdfd05962a743319a401fb02161567b26cb8c 13-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Simplify MessageRetrievalListener.

Main motivation: not to make the new IMAP parser too complecated.

- Removed messageRetrieved.
Motivation:
- It's not easy to call messageRetrieved() at the proper timing
from the new IMAP parser, and this method wasn't used anyway.

- Renamed messageFinished to messageRetrieved.
And removed the "number" and "ofTotal" arguments.
Motivation:
- They weren't used. Also there was inconsistency about
what to pass as "numebr". (i.e. 0-based or 1-based?) There was
even a bug that caused passing a wrong number.

Backport of If92dbfe681b78a0eea8125188ede63a8f00dcf49

Change-Id: Icdea45e0a9ac567b1cdfb44e975e60bb11815472
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
ndroid/email/mail/MessageRetrievalListener.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
7040017624b697559ed6a342ca685702208d58ea 14-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Add static method to get temp dir in Email.

I need to be able to get the temp dir from anywhere without Context
for the new IMAP parser.

Backport of I3bf7d34059399a8253c0760ebc392804ea434412

Change-Id: Idf7f8dffe9d6dd040d1b2311d053d4fc292ba18e
ndroid/email/Email.java
ndroid/email/mail/internet/BinaryTempFileBody.java
550aa6163fdb9681d6adee018a313d5f82629b34 10-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Clean up member variables.

- Fix misnomered fields. (e.g. static mMember -> static sMember)
- Reduce visibility. (e.g. mark as private)
- Mark final / static if possible.

Note it's on master.

There's a lot more cleanup oppotunities in the activities, but they're going
to go through a major overhaul, so I didn't bother.

Backport of b3f7dd0169a35221184b9327c8ce337b09dc6d1f

Change-Id: Ic33f9518f23805716e2aec0ab42edb92107e066c
ndroid/email/Account.java
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/PeekableInputStream.java
ndroid/email/Preferences.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/AddressTextView.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SpinnerOption.java
ndroid/email/mail/Address.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/MailService.java
316447925e3b63ddeb84664b8d066484023c2ea5 20-Sep-2010 Marc Blank <mblank@google.com> am 75cfe25d: Increase EmailServiceProxy timeout for validation attempts

Merge commit '75cfe25d3b97f83d8711260a5ed9bd82fa3cc7da' into gingerbread

* commit '75cfe25d3b97f83d8711260a5ed9bd82fa3cc7da':
Increase EmailServiceProxy timeout for validation attempts
2e7a84ff26cdfb0f37d6e0a24ed6b2c5a44989f4 01-Sep-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Fix error upsyncing exceptions to all-day events

* Backport of I471e487ec1f7ce11cccdde86f8d8bd8435edd27d (master)

Bug: 2893712
Change-Id: Iaada0969f77a8e41a66426f58ca2886529d3fd8f
ndroid/exchange/adapter/CalendarSyncAdapter.java
90f1198f674bc6b72796aba9f20957a41b912259 20-Sep-2010 Marc Blank <mblank@google.com> Merge "DO NOT MERGE: Fix repeating notifications for synced messages" into gingerbread
a6f694635f8989d3e5d8f0d0ac46c39f1a12edb7 05-Sep-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Fix repeating notifications for synced messages

* Existing code reloads long POP/IMAP messages at every sync
* If the server is POP3, or the IMAP message is unread, this
will lead to redundant notifications of new message arrival
* The fix avoids repeated message reload
* Backport of I8dc22966282655c8645362d672a083a1c37f554c (master)

Bug: 2892705
Change-Id: I1ce7de0dc25abc8ace544849dc3d437fcd1459f0
ndroid/email/MessagingController.java
4e03d94cccc2e798a08162c270b39233f39be093 25-Aug-2010 Marc Blank <mblank@google.com> DO NOT MERGE: Set HAS_ATTENDEE_DATA to 0 for exceptions

Bug: 2891708
Change-Id: I4eb26a6fe7be13dda34ba39a766a03c901276b73
ndroid/exchange/adapter/CalendarSyncAdapter.java
75cfe25d3b97f83d8711260a5ed9bd82fa3cc7da 18-Sep-2010 Marc Blank <mblank@google.com> Increase EmailServiceProxy timeout for validation attempts

* Use 90 seconds (instead of 45 seconds)

Bug: 3008626
Change-Id: I31258a5fbcca1f489c8bf6fb2ed8f3dcad5d2e26
ndroid/email/mail/store/ExchangeStore.java
ndroid/exchange/EasSyncService.java
0af92c0c39d20e5b83321017c78f3c96d732bbdf 18-Sep-2010 Makoto Onuki <omakoto@google.com> Use the default theme for selected mailbox.

The latest framework change made it very easy to do this.
We no longer need to implement Checkable by ourselves.

Change-Id: I9264b157b6600659597ca8d525a4288d7bb9c470
ndroid/email/activity/CheckableFrameLayout.java
ndroid/email/activity/MailboxListItem.java
0435a0775e3d6637304a5a4e93675e7462397eb1 16-Sep-2010 Makoto Onuki <omakoto@google.com> Let MessageViewFragment own bottom buttons.

Create a custom view containing the bottons below MVF
(delete, move, reply, etc) and let MVF own this.

These buttons used to be owned by the XL activity itself, because
the UI for these commands will most likely be totally different
from the tablet UI, so the fragment having them looked wrong.

However, this made it harder to make changes suggested by the latest
mock, such as "put reply/forward in the message header".
I think the buttons are semantically part of the message view anyway,
so the fragment owning UI for these commands is probably the way to go.
(And let's worry about the phone UI later.)

Reason for the use of a custom view is that it will make it easier
to make non-trivial UI changes, e.g. "combine reply, reply-all and
forward and make it dropdown."

Also removed obsolete TODOs from MessageListXL.

Change-Id: Ibf93f4c70fe07bdbbe33d2adb6bbd2b96812830d
ndroid/email/activity/MessageCommandButtonView.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragmentBase.java
2039cba065bad49267656a8b669d27f2006a2c4b 16-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Make "load more" work"
8a79d2ab4fcdff2809771c6925f8988aa10b2737 16-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Show account names (nickname) on action bar"
517c4f39b734249f1418860dfd3d5bc92badcc7f 13-Sep-2010 Marc Blank <mblank@google.com> HTML support for EAS 2.5 email

* Load MIME data for these messages and parse, looking for a body either
in HTML or plain text or both
* If the MIME data had been trunctated and we can't find text, mark the
message as partially loaded and load the body text as we did before
(i.e. get the plain text body); this should be a rare case

TODO: Consider what is testable in the new EmailSyncAdapter code

Change-Id: I00a3066a373a0596431335593de356a4dda7f036
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AccountSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
626e2180bebb48b37f2b2f13e50e85a796e103ab 16-Sep-2010 Marc Blank <mblank@google.com> Merge "Remove GAL lookup dependency on running ExchangeService"
74444e73c23cde84a9b2e6a78472a16efbd6e461 15-Sep-2010 Marc Blank <mblank@google.com> Remove GAL lookup dependency on running ExchangeService

Change-Id: I4ff4017bcbb29862e07fde63e2ac01e3552ccd83
ndroid/exchange/EasSyncService.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
130c7bdec1df90bb7f6eac454266c969b83c21d7 16-Sep-2010 Makoto Onuki <omakoto@google.com> Fix "Sent outgoing messages"

sendPendingMessages() takes account IDs. Don't pass mailbox IDs.

Bug 2985577

Change-Id: Id4abce6de67f55809aad9d4bd2aa6419b4530e3a
ndroid/email/activity/MessageListFragment.java
0d21aa395ae21857fb5ab74db7c284eda49729d4 16-Sep-2010 Makoto Onuki <omakoto@google.com> Make "load more" work

Wasn't implemented...

Bug 3004954

Change-Id: Id44bcf936fab2965b032bbc5621045825aab5292
ndroid/email/RefreshManager.java
a2090964202bf9a8c683f2880c5e1a72189f6947 16-Sep-2010 Makoto Onuki <omakoto@google.com> Show account names (nickname) on action bar

if available, instead of email addresses.
Also make sure the change to the display name will be reflected to
the UI.

Bug 2149083
Bug 3002398

Change-Id: I4aa4ffcec3a81688b3fb11182aacd546c310f117
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageListXL.java
0b24baa1302e2d23bcab8886ff8cd9a9b0d71ce1 15-Sep-2010 Andrew Stadler <stadler@android.com> Merge "Fix debug logging controls"
e36b6ff4fa808afa84dc09fa82587dae106c8d3d 15-Sep-2010 Andrew Stadler <stadler@android.com> Fix debug logging controls

* Assign "enable exchange parser logging" from Eas.PARSER_LOG instead
of from EAS.USER_LOG.
* Reorder setup to assign listeners last; This avoids unnecessary calls
to Email.updateLoggingFlags() during setup.

Note: The bug exists as far back as eclair, but the fix will need to be
made in a different file in earlier versions (pre DebugFragment)

Bug: 3003813
Change-Id: I5d8f66747a86139dd593ac16ea421ab1e33b8795
ndroid/email/activity/setup/DebugFragment.java
d701ff131f70cd6cad5516b5d0b0525eeab35acc 15-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Fix potential NPE"
261d6c3f0c97a12256519a2c3b131a56e57ab45f 15-Sep-2010 Makoto Onuki <omakoto@google.com> Notify only account cursors when resetting new msg count

- Resetting the new message count is now correctly done on a BG thread.
- Added special content provider URI to reset the count.
(/resetNewMessageCount)
- This URI only supports update, which will notify only account
cursors.
- Fixed a problem that an insert with MAILBOX_ID/MESSAGE_ID/ACCOUNT_ID
triggers two notifications.

- This CL changes how we use notification URIs, but unfortunately
no tests for this part. It turned out MockContentResolver doesn't
support the notification mechanism, which made it very hard
to write tests.

Bug 2911646

Change-Id: I35b30a7e6bf2d57510486c7ed19b9f263d8c9b58
ndroid/email/activity/MessageListFragment.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/MailService.java
1ed2c7a15d41bad620e2fbbbdbb8bb72ae0dcdf4 15-Sep-2010 Makoto Onuki <omakoto@google.com> Fix potential NPE

Happened to find this.

Change-Id: I0b71d80a421adad196d8cd113001f2f9fe5a9445
ndroid/email/MessagingController.java
cc91619b6a4ebdb8bb61912229125de92891617d 14-Sep-2010 Makoto Onuki <omakoto@google.com> Kick syncMailboxStatus callback when syncing Trash/Drafts

Drafts/Trash are not syncable on EAS, but let's kick the callbacks
as the UI is expecting them.

Bug 2989403

Change-Id: I4feac1f0e5471995c14260be6d12329659385e23
ndroid/exchange/ExchangeService.java
a2cc46c810eb802c172a4af8ecc67fca53dd584f 13-Sep-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2967969: Crash rotating screen on "delete account" dialog

Update settings to use to PreferenceActivity APIs to retain its
current state across instances. Removes
inheritance of Header (to work well with new framework impl that
retains these across instances), avoid resetting the current header
after a state change (we want to keep showing whatever the user
last viewed), put the dialog on the back stack (so it will get
removed if the back stack is cleared).

Change-Id: Ie35b1c0eb9b06277165f2b9cadb0e2999bb8af47
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
40b2d92851001afac70888b7f6bd7404e179ccb5 14-Sep-2010 Makoto Onuki <omakoto@google.com> Make sure "refresh" button animation refrects actual state

When selecting a different mailbox, start/stop the refresh button animation
as necessary.

Bug 2997302

Change-Id: If29d7ec37348d527698685503b7b4fbf0ed0c35f
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
52930bfda36b502c8a5cd70700012e83bd7ac48b 14-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Enable "auto-refresh" for EAS accounts as well."
fe7dd2df56a1439fd8e2676ae1479f9a4f30eb26 14-Sep-2010 Makoto Onuki <omakoto@google.com> Enable "auto-refresh" for EAS accounts as well.

bug 2990997

Change-Id: Ia8481c806ee6f2e8d9308dacee67c982e1caaa69
ndroid/email/activity/MessageListFragment.java
599cc11e9eb5c8ca66e3a27034a35a61938e6936 14-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Use the auto-advance setting after move."
5b2424bf6f32fdfd65b02a9a311e7226dc48f1c1 13-Sep-2010 Andrew Stadler <stadler@android.com> Cleanup of Account setup flows

* Remove AccountSetupCheckSettings and related resources
* Remove all handling of EDIT flow in setup activities

Change-Id: I7b87d87978533b52b9c974d006920749389418d8
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
00d5cf97c6aed73426a4f8c393bccb380cff8135 13-Sep-2010 Makoto Onuki <omakoto@google.com> Use the auto-advance setting after move.

Change-Id: I835211589897410be7003a276a3278d43d940c38
ndroid/email/activity/MessageListXL.java
2731aef45c6f2f9792ae698ebf7d65ca6338a02c 13-Sep-2010 Andrew Stadler <stadler@android.com> Convert exchange setup to use checker fragment

* AccountCheckSettingsFragment now supports AutoDiscover
* Clean up callbacks for account check & autodiscover errors
* AccountSetupExchange now supports rotation
* Remove dead code in SetupData & AccountSetupBasics

TODO next CL: Remove all edit flows from setup activities
TODO next CL: Remove old CheckSettings activity

Change-Id: I3c9884856ca6e70226374fdb28400bfb3588387e
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/mail/MessagingException.java
d4aac1e8477029c84cd357af61a11d4584b7d137 13-Sep-2010 Makoto Onuki <omakoto@google.com> Always show Combined Inbox

Even if unread count == 0.

Bug 2992923

Change-Id: I2c2bd9781630e7664a7bd4b6fcb5012e9ebe2dc6
ndroid/email/activity/MailboxesAdapter.java
ff110a30cadb39f2d02c4aae0eb2cf07932802b7 13-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "EmailProvider related clean up"
11d37a7fa971d0a39ad42517db8a49f1fdd56a1c 12-Sep-2010 Marc Blank <mblank@google.com> Check file name before allowing attachment save

Bug: 2992710
Change-Id: I56893366226168669788b78b53bfd3f996dd96cd
ndroid/email/activity/MessageViewFragmentBase.java
fd14496c494a0d38c35c3788c9cc55f1984592e4 11-Sep-2010 Andrew Stadler <stadler@android.com> Convert setup to use checker fragment

* Activities modified to use new check-settings fragment:
* AccountSetupBasics (auto-setup for imap/pop)
* AccountSetupIncoming
* AccountSetupOutgoing

Next CL: Same work for exchange, and terminate old CheckSettings activity.

Change-Id: If5c5bfe331161b2429f7d7a4bd13290932f03c47
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
7bcf1882bcb33b690f0b104f7605c9a6da39f344 11-Sep-2010 Makoto Onuki <omakoto@google.com> EmailProvider related clean up

- Removed unused URI definitions.
- Added SuppressWarnings to CONTENT_URI's in EmailContent

Change-Id: Id1e746ef5ab86dd76dc1b7dd38a5a00d052bddab
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ad0c1253c7e902ac3a99965c0a9cabd44625e044 11-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Fix tests broken by I2bf5de4e (Clean-ups for EmailProvider)"
07fc10ae2269d6ffc05e1b51d935825b5e8b8254 10-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Implement "auto-advance" on two-pane"
8f78d57a1f407476250b53a28d13c980512a90d8 10-Sep-2010 Makoto Onuki <omakoto@google.com> Implement "auto-advance" on two-pane

- Two-pane now respects the auto-advance setting.
- Added another TODO for one-pane.
- Removed unused method.

Change-Id: If2cfb8cc1de04c48cd2f6075bc01bef830425662
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageView.java
5b0c2c7f344e72915ac63ff45cf3d65885373a39 10-Sep-2010 Makoto Onuki <omakoto@google.com> Fix tests broken by I2bf5de4e (Clean-ups for EmailProvider)

My previous CL broke some tests.
- make sure to set 0 to unreadCount when adding a new row
- when updating messageCount in the tests, directly manipulate
the DB. (the provider no longer allows this)

Change-Id: Ib569349707007badf4f23600fbca37110c78fa6d
ndroid/email/provider/EmailProvider.java
9e9113b9b8b4629da7a2f569f2c3b559ecadebc7 10-Sep-2010 Marc Blank <mblank@google.com> Fix MessageList formatting bug when subject is empty

Change-Id: Ia2ab247935a4882a308fb393f5484bfe3ea10d86
ndroid/email/activity/MessagesAdapter.java
f678a8e67ace74ea285dcec9727d0117e23a5c73 10-Sep-2010 Makoto Onuki <omakoto@google.com> Clean-ups for EmailProvider

- Don't allow manual modification of unreadCount/messageCount
(We used to check only unreadCount in update().)
- Do the integrity check at the very first in update().
I think the old place was really problematic because we opened
the database in a few lines above and kept it in a local variable.

Change-Id: I2bf5de4e4e45b40c11b951dd2255f8193c26f1aa
ndroid/email/provider/EmailProvider.java
7183724276e0d829fd01a5bc1f2f6d0f6b6a8818 09-Sep-2010 Makoto Onuki <omakoto@google.com> Don't check flagLoaded for outbox message list

We found a case where messages in outbox have flagLoaded=FLAG_LOADED_UNLOADED,
where it should be FLAG_LOADED_COMPLETE. Haven't found the root problem, but
remove the flagLoaded test to mitigate the problem.

Also moved the buildMailboxIdSelection call to a worker thread.
(this method issues some queries.)

Bug 2984285

Change-Id: I2a5be300fb3da703698512262cc38bea75d0f7ba
ndroid/email/Utility.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessagesAdapter.java
6d51b7eb630d3b2632b44699e14730eb7b995f78 06-Sep-2010 Marc Blank <mblank@google.com> Properly report EAS protocol version failures

Bug: 2528554
Change-Id: I9ac2520528ebe23dc0d465aee65ab470f8f429a7
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
0f52e546ef662e126b7360ad69c8c8f838789ef3 10-Sep-2010 Makoto Onuki <omakoto@google.com> Implement General Preferences

- Removed the place holder setting
- Added "auto-advance" setting, which has "newer",
"older" (original behavior, default) and "message list"
- Strings were copied from Gmail

This CL has preference change only (i.e. the setting isn't used yet).
The actual implementation will come later.

Change-Id: I9f90a723c67e066fdc536a73490101817a127933
ndroid/email/Preferences.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/GeneralPreferences.java
6a461a9d46fc48fbfc9e7ce114346ea1ebbe35b0 10-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Launch AccountSecurity if the account is on security hold."
4c5aaaecefe18fed98a374e89c5c8de346af5989 10-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Add quick contact badge to MessageView."
c7fd6f2a939e521738530fae4766e1096e88b942 10-Sep-2010 Andrew Stadler <stadler@android.com> Merge "Cosmetic cleanup of exchange setup"
c164444784d0cecfc823934bf0bcf22286671202 10-Sep-2010 Andrew Stadler <stadler@android.com> Cosmetic cleanup of exchange setup

* Remove nonfunctioning Next button
* Enable Next button on name screen

Bug: 2988925
Change-Id: I9de7d8dc5b6f48b6c11676b7eef478495afcc889
ndroid/email/activity/setup/AccountSetupNames.java
2012ceff64e7e31087c3ff2c8fdebce655ebb632 09-Sep-2010 Makoto Onuki <omakoto@google.com> Launch AccountSecurity if the account is on security hold.

Change-Id: Icac5de3259c66cac87e2a36d95d53a4f63ea94f1
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
b1ea9c3c12d8d9da5c1e49a8752076ce60861e9f 07-Sep-2010 Makoto Onuki <omakoto@google.com> Add quick contact badge to MessageView.

- Added "quick contact badge" to MessageView
- Removed PresenceUpdater, and added new implementation based
on Loader, which is much simpler.
- Changed some text color, so they're visible now.

Bug 2988625

Change-Id: I688a3217178ee8fd0b7245c0ab36a633687ea525
ndroid/email/Utility.java
ndroid/email/activity/ContactStatusLoader.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/activity/PresenceUpdater.java
27e35d47af093e5c36897ff4463d6fdc1f831c86 09-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Add a flag to check the current thread on db accesses"
76a73d104d65f95419c193c21f0ca75fe64a7c5e 09-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Cleanups for unbundling"
697f98aea5a8344a17ca5e9b0410d484fdce6555 09-Sep-2010 Makoto Onuki <omakoto@google.com> Cleanups for unbundling

* android.security is hidden. Use java.security.MessageDigest instead.
* Remove android-common from makefile (we no longer use it)
* Add LOCAL_SDK_VERSION to makefile and comment it out

Change-Id: I7f9a021387d5c4e47ade1adb0bb75bec82ba0dd8
ndroid/email/Utility.java
4c3a8ede019f8683a7d15defd995790c4b5ebdac 09-Sep-2010 Andrew Stadler <stadler@android.com> Quick fixes for account setup unit tests

Some of these broke in 8bcb572ccfdac6974c111fe6dfc753a5e0d4e7ca
which changed the [Next] button to an ActionBar menu item.

However, the entirety of AccountSettingsXLTests needed to be disabled
because the PreferenceActivity is very different on phone or XL sized
devices, and the tests infrastructure will need to be refactored to deal
with that (on another day.)

Change-Id: I9adbfc9b8da6179e4c4e82d29bb872ee05619a41
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
db746428ef630c86d1f1132c4b800423a0bca52c 09-Sep-2010 Andrew Stadler <stadler@android.com> Merge "Convert setup to actionbars, and holo theme"
8bcb572ccfdac6974c111fe6dfc753a5e0d4e7ca 09-Sep-2010 Andrew Stadler <stadler@android.com> Convert setup to actionbars, and holo theme

* All setup activities given UI makeover:
* Remove legacy themes from manifest - exposes default holo theme
* Remove bottom row button(s)
* Replace with action bar button(s)
* No change to workflow or activity/fragment organization

Change-Id: I07ce11a0a2b4b767b5ac111d466e68400fe0f30b
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
d36d911fac517f7a82f5a341290f67e2dd04979d 09-Sep-2010 Makoto Onuki <omakoto@google.com> Add a flag to check the current thread on db accesses

Added Email.DEBUG_THREAD_CHECK. If true, EmailProvider warns if certain
methods are called on the UI thread.

Change-Id: I6db9e45f2e449a31850c223fc9eec0fb9a575cb1
ndroid/email/Email.java
ndroid/email/provider/EmailProvider.java
a4843fa29f4bc8e58040ba25003a3e1acf588ef5 09-Sep-2010 Marc Blank <mblank@google.com> Merge "Fix problems with repeating notifications for synced messages"
ffee97985c79c8e3008019f2d273a92acfe51ff5 09-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Show total message count for Outbox/Sent"
8761564d1fb4aa40949d9edfeb08bce04e055c95 09-Sep-2010 Makoto Onuki <omakoto@google.com> Remove EML files at proper timing

Remove EML files only when the last MessageFileViewFragment instance is
destroying.

Bug 2881349

Change-Id: Ie050eb113c799aefaf63d0ac7f678208c2ee0924
ndroid/email/activity/MessageFileViewFragment.java
a262f908aef5ee15db8dc7fcef0bbc81e820b7bb 09-Sep-2010 Makoto Onuki <omakoto@google.com> Show total message count for Outbox/Sent

Instead of unread count.

Change-Id: I90fe96093bc31f26e4cacacf6adfb0a3cf009d04
ndroid/email/activity/MailboxesAdapter.java
e302d06258fef74d919b626430d1d4b44be93381 05-Sep-2010 Marc Blank <mblank@google.com> Fix problems with repeating notifications for synced messages

* Existing code reloads long POP/IMAP messages at every sync
* If the server is POP3, or the IMAP message is unread, this
will lead to redundant notifications of new message arrival
* The fix avoids repeated message reload

Bug: 2892705
Change-Id: I8dc22966282655c8645362d672a083a1c37f554c
ndroid/email/MessagingController.java
27c6547968f9c2824d5e1b662bd17137abbfbe09 08-Sep-2010 Makoto Onuki <omakoto@google.com> Remove obsolete TODOs

They're all obsolete.
(Fix is already in, change in a different place made it obsolete, etc.)

Change-Id: I04452a973c86d39aca8e89f8883dcf1d7e480dee
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragmentBase.java
16fea1419e503eb380c76813d377d8b42176cb32 08-Sep-2010 Andrew Stadler <stadler@android.com> Merge "CheckSettings as a true fragment"
55110ca1ad8ce48a5429f9f351d013691c10b806 08-Sep-2010 Andrew Stadler <stadler@android.com> CheckSettings as a true fragment

* Create new retained fragment + asynctask as the worker
* Stateless dialog fragments for everything else (progress & errors)
* Used for account settings, incoming & outgoing, only so far

TODO: Support for account setup workflow
TODO: Support for autodiscover workflow
TODO: Remove old checker activity when complete

Change-Id: I1fdafa1a51c53b934e59ea4af7d3e0ac24a3da17
ndroid/email/activity/setup/AccountCheckSettingsFragment.java
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
940c45df8eb3350da7c66cfc9a1d3468e15f6b69 07-Sep-2010 Adam Powell <adamp@google.com> Updated for upcoming ActionBar API changes.

The extra overloads for setStandardNavigationMode are going away to
simplify the API. setTitle/setSubtitle should be used to change title
content in standard nav mode.

Change-Id: I29baa1ea5572a01ed9bc1d99f5c8a6e35dd02a1a
ndroid/email/activity/MailboxList.java
ddc8dea2bdfb85838f70dc1c2f173e42b86c7554 07-Sep-2010 Makoto Onuki <omakoto@google.com> Fix upgrade problem in I84a2cbe1

I84a2cbe1 didn't upgrade the deleted/updated tables.

Bug 2980891

Change-Id: Ifb0800bab58978352f2239f99186d0503e0dd899
ndroid/email/provider/EmailProvider.java
fa2386cb11e66d8424a58ce32091a12e437cdb09 03-Sep-2010 Marc Blank <mblank@google.com> Don't disable account mailbox when sync freq -> "Never"

Bug: 2905667

Change-Id: I7052281a186534597702fa137a2ecfe8b1280575
ndroid/exchange/EasSyncService.java
ndroid/exchange/ExchangeService.java
e7b9e4ab94093127002f4cddd3ffcc3deb1c0b41 02-Sep-2010 Marc Blank <mblank@google.com> Add snippets to messages

* Add 'snippet' column in Message table and handle upgrades to the
new schema
* Generate a snippet from either HTML or plain-text message body,
removing tags, extraneous whitespace, and other superfluous text
along the way. Store the snippet in the Message table
* Clean up MessagesAdapter to use the pre-existing list projection
and constants
* Write unit tests for snippet creation
* The UI in this CL is always single-line, ellipsized

TODO: Handle two-line subject if portrait and XL

Change-Id: I84a2cbe10957975942edad6eb1255a726924a78a
ndroid/email/LegacyConversions.java
ndroid/email/Snippet.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
767f9fe2ebcca7eee20f2a048f33a96ad4bf53da 02-Sep-2010 Makoto Onuki <omakoto@google.com> Implement batch move.

* UI is still temporary
* In this version, we check if the selected messages can be moved *after*
you click "Move", rather than disabling the button beforehand.

Change-Id: Ief2864d2a513001847844963b2b0cb6b714e8667
ndroid/email/Utility.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/provider/EmailContent.java
7c4ba5847a47c2b3a67787d1c441be681b97ccd2 03-Sep-2010 Andrew Stadler <stadler@android.com> Merge "Use real fragments for incoming/outgoing/exchange settings"
1a5e1e159352f6e21bde878eebca3e3a1896045c 03-Sep-2010 Andrew Stadler <stadler@android.com> Use real fragments for incoming/outgoing/exchange settings

* From account settings, switch to incoming/outgoing/eas fragments
* Show "Next" button in actionbar (may be dup'd in single-pane view)
* Common base class for in/out/eas fragments
* Depends on PreferenceActivity.startPreferenceFragment(), new API
* If the user clicks an account header while editing server settings,
present a dialog before discarding the changes that haven't been
checked yet.
* Confirm working (if a bit ungainly in appearance) on phone screen

Change-Id: I03591b9a8ffd11fe26fc6f58a5698740e61d0090
ndroid/email/activity/setup/AccountServerBaseFragment.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
f66a729cc45027a2202121745e93bf2533cfbbc3 03-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "MailboxList: Show the rotating icon when there's no mailbox"
93db1852bee2b1a23f051308e3634f58d33cb2c0 03-Sep-2010 Makoto Onuki <omakoto@google.com> MailboxList: Show the rotating icon when there's no mailbox

If the cursor is empty, hide the list and let the framework show
the rotating icon. (Don't set an empty cursor, which makes the list just
blank.)

We do this for only MailboxList because we know we'll get mailboxes
soon enough. We can't do this on MessageList because there may be really
no messages even if we wait.

Bug 2927973

Change-Id: Ic0346d2d90d03489072eb95a123281f60cda44dd
ndroid/email/activity/MailboxListFragment.java
646b5e062ebaad622a4eed5f3103630634b99b64 02-Sep-2010 Makoto Onuki <omakoto@google.com> Disable forward/reply for trashed messages.

* Now the message shown/gone callbacks are called directly by
MessageViewFragment, rather than MessageListXLFragmentManager.

* The buttons are enabled/disabled per messages, so it even works
properly when you move around in All Starred. (if you ever star
trashed messages.)

* Fixed one-pane as well.

Bug 2968810

Change-Id: Ie6de1dc7ea0bd18c40c091a6685629c26ffb7110
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragmentBase.java
213c52dd6420785e716dfbfa00fee9ffeebcd5c6 31-Aug-2010 Marc Blank <mblank@google.com> Fix issues with handling FREQ=YEARLY in RRULEs

* Turns out that we weren't handling one of the cases for YEARLY
RRULE; that in which the date is specified as a day of week plus
week of month
* Also, we weren't always sending the INTERVAL properly in a few
cases
* Fix these issues and add a unit test that confirms the fixes
* Also removed an unused argument in recurrenceParser in
CalendarSyncAdapter

Bug: 2718948

Change-Id: If9146d484218e7d6bd9f5c2305d0e6a216aeed49
ndroid/exchange/ExchangeService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
28ca167a89304e6f5ccfe2e607bd4a7fdd9115bf 01-Sep-2010 Marc Blank <mblank@google.com> Enforce a limit on GAL lookup responses

Change-Id: Id353758c1221d2f1097566e7becc8baacf7984d9
ndroid/exchange/EasSyncService.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
aee3f053fbcc45b8c0058a2f1ca1cd79871ab1f6 01-Sep-2010 Marc Blank <mblank@google.com> Remove old ExchangeProvider (legacy GAL support)

Change-Id: I10b5a2ffd429610b2851d0ee63bef20cbc0e0ef8
ndroid/exchange/provider/ExchangeProvider.java
b8efc2d048175f4d12630a036f9aed4e9be0f982 02-Sep-2010 Makoto Onuki <omakoto@google.com> Make sure MessageView series don't use mMailboxKey

Because "move" and "delete" are asynchronous operations, Message.mMailboxKey
can change any time. We can't use stored values.

(Fortunately it was used at only one place, and this was actually unused.)

Change-Id: Idc1300a00122fe0e6372b0374cddc98aa54a47fc
ndroid/email/Controller.java
ndroid/email/activity/MessageViewFragmentBase.java
bf2a53ef5eb3f90da75aaf215d39da6898378efe 02-Sep-2010 Andrew Stadler <stadler@android.com> Merge "Direct access to edit specific account settings"
9c65c146f3d8e60f35f46c815d4121749ad13abd 02-Sep-2010 Andrew Stadler <stadler@android.com> Direct access to edit specific account settings

* Finish implementation of AccountSettingsXL.actionSettings()
* Point account manager entry point at it now
* Remove old AccountSettings activity
* Move AccountSettingsTests over to AccountSettingsXLTests and minor
cleanups so it works in fragmentized activity.

Change-Id: I5f979a3a9a29dcbbe5a63833b184e6c0313652d5
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsXL.java
a25aa613f79a94d0dea395234ba383de63d03727 01-Sep-2010 Makoto Onuki <omakoto@google.com> Open MessageComponse when draft in All Starred is selected

Also removed a silly unnecessary code in Mailbox.isRefreshable.

Bug 2968445

Change-Id: I75187e5abf1c3e67c8b9ead38c7f749fc8b6cfb0
ndroid/email/activity/MessageListFragment.java
ndroid/email/provider/EmailContent.java
975b5c71aba0d92a9157e1916a4be9e9272283f0 02-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Remove some debug code from MessageListXL."
b076aaa4598acdfd8a4e1b0210e225763fc525b4 02-Sep-2010 Makoto Onuki <omakoto@google.com> Merge ""Move to" multiple messages"
11aea1efe45b23c1217b31be029a527c9dc460b8 01-Sep-2010 Makoto Onuki <omakoto@google.com> "Move to" multiple messages

Now Controller.moveMessage supports moving multiple messages.

Change-Id: I5d9715cd94e55cf14254b4d4d731524be9d014a8
ndroid/email/Controller.java
ndroid/email/activity/ActivityHelper.java
ed035c20a105d55e5931aa90eef6cd49a5493121 01-Sep-2010 Makoto Onuki <omakoto@google.com> Remove some debug code from MessageListXL.

Change-Id: I26e373d2e570c49a812ffbee98095f9e84599335
ndroid/email/activity/MessageListXL.java
b387560384d38e3280090176a0f3b2cf8b1f9ab5 01-Sep-2010 Andrew Stadler <stadler@android.com> Move Add Account button to new Footer position

Change-Id: I662f6cbfd8db80f4b383e6204afcf460764f4d4c
ndroid/email/activity/setup/AccountSettingsXL.java
62f9c4d2803382f89cf8a19ed12b53b639d547fe 25-Aug-2010 Marc Blank <mblank@google.com> Temporary UI for "move to folder"

* Many TODOs left in code.
* Only supports moving 1 message. (from message view)

Change-Id: Ibdec3163382345a7096c2cba51f448d69a9720af
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MoveMessageToDialog.java
ndroid/email/provider/EmailContent.java
163e431a7ff8e970565b637664a1031578e577c8 01-Sep-2010 Dmitri Plotnikov <dplotnikov@google.com> Merge "Removing notification that is no longer needed"
528cfcef8f3c5094b1c95c3dfe0decda748a8d25 01-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Fix NPE in autoRefreshStaleMailbox"
3d784232812d0103f2ac353b0fb17df37be9dcfe 01-Sep-2010 Makoto Onuki <omakoto@google.com> Fix NPE in autoRefreshStaleMailbox

There was a silly logic error...

Bug 2967814

Change-Id: Ie92799be5a3d685cd9eb6a454457868ad0bbfffd
ndroid/email/activity/MessageListFragment.java
2941c88fcebe0bcb961b3e192b09594e99e22876 01-Sep-2010 Dmitri Plotnikov <dplotnikov@google.com> Removing notification that is no longer needed

Now that CP2 rescans all providers whenever an
account is added.

Change-Id: I274a0ec7983f0b0c16edda2f426ec7e7de595473
ndroid/email/service/EasAuthenticatorService.java
68da2805c047e234d2266eed9374470a38b614cf 01-Sep-2010 Marc Blank <mblank@google.com> Merge "Fix error upsyncing exceptions to all-day events"
cadd46e3fba926e59eb4c8f2d2e3e84283536a09 31-Aug-2010 Makoto Onuki <omakoto@google.com> Preserve scroll position of message/mailbox list

* Preserve the scroll position in the following transitions
MessageList -> MessageView -> [back] -> MessageList
MessageList -> MessageView -> [screen rotation] -> [back] -> MessageList
two-pane -> compose -> [discard, etc] -> two-pane
two-pane -> switch to other app, and switch back -> two-pane

* Don't always refresh on onResume. Do it only when requested.
This supresses unnecessary refresh when coming back from other full-screen
activities, e.g. MessageCompose.

* Also updated the comments on the back handling.

Bug 2769052

Change-Id: Id83dc3e778c35860d634c68ecac0c7a07cc4057e
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
daec902cae2570086b0aaeb7f1442c94f3dfdbd9 01-Sep-2010 Makoto Onuki <omakoto@google.com> Merge "Fully implement "refresh" action bar button"
e357f5879187124c7af5c2ece5d7d3e4f60f07d2 27-Aug-2010 Makoto Onuki <omakoto@google.com> Fully implement "refresh" action bar button

* Now it'll refresh mailbox list (left pane) as well.
(With the minimal interval of 30 seconds)

* Always refresh inbox.
(also with the minimal interval of 10 seconds)

* Also make sure the "auto-refresh" won't refresh
non-refreshable mailboxes. (drafts, etc)

Bug 2929889
Bug 2930018

Change-Id: I09452d40aad6008a721cfbc3f491617224d7048f
ndroid/email/RefreshManager.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/data/MailboxAccountLoader.java
ndroid/email/provider/EmailContent.java
70047f73d354a0e3c5365bdeb899a97ca5d616f0 01-Sep-2010 Marc Blank <mblank@google.com> Merge "Change EAS User-Agent to a constant String"
3faa14693ca26ada01b72b8597df3c13074d7854 01-Sep-2010 Marc Blank <mblank@google.com> Fix error upsyncing exceptions to all-day events

Bug: 2893712
Change-Id: I471e487ec1f7ce11cccdde86f8d8bd8435edd27d
ndroid/exchange/adapter/CalendarSyncAdapter.java
57f125a01b5fbb5860b144b3057153a50d07ddd1 26-Aug-2010 Andrew Stadler <stadler@android.com> Move debug settings from own activity to setting fragment

* Add DebugFragment and incorporate it into AccountSettingsXL
* Tap "Email preferences" 10 times in a row to enable debug settings.
(Or type D E B U G works as well.)
* Point broadcast receiver (*#*#EMAIL#*#*) to AccountSettingsXL
* Remove old debug launchers in AccountFolderList
* Remove old Debug activity

Change-Id: Ib289c42878a07c23f815654ce4570c1399aa49de
ndroid/email/Email.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/Debug.java
ndroid/email/activity/setup/AccountSettingsXL.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/DebugFragment.java
ndroid/email/service/EmailBroadcastProcessorService.java
086aac2386a575a0e2c78b1fa8dd8ea13825ae2b 27-Aug-2010 Makoto Onuki <omakoto@google.com> MailboxFinder should ignore callback for non-target account

There were two cases where MailboxFinder responded to updateMailboxListCallback
when it shoulnd't.
- Callbacks for non-target accounts
- Callbacks arrived after the operation is finished

Make sure these callbacks are properly ignored.
Also, make sure startLookup() can't be called more than once.

Change-Id: I823c11ab5f96df4eb84594c08d3325d12319f708
ndroid/email/Controller.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXLFragmentManager.java
03e3449c6bff58771dbe2d3d95a5dcbe7b6a3b06 31-Aug-2010 Marc Blank <mblank@google.com> Change EAS User-Agent to a constant String

Change-Id: Ie1efcbc1666bd9bc759aca8134eba21cb9e2467b
ndroid/exchange/EasSyncService.java
3e376afcb3f1974b057de1440d30f6da109f9e0a 31-Aug-2010 Marc Blank <mblank@google.com> Merge "Fix another inconsistent set of PolicySet values"
61911d4ff70132fa21c5ee7a987303479e8ef6ae 28-Aug-2010 Marc Blank <mblank@google.com> Fix another inconsistent set of PolicySet values

* EAS can send both "simple password" and a non-zero number of
required complex characters; we're supposed to ignore the
complex character requirement in this case
* Force complex characters to zero if password is "simple"
* Update constructor test to check the fix

Bug: 2903349
Change-Id: I3d42bd3c8f3667d8f3027da9e91e0dd18722d9bf
ndroid/email/SecurityPolicy.java
01a5da7208d2e9c6b92897548af029fbd6bdb619 27-Aug-2010 Makoto Onuki <omakoto@google.com> Update the list immediately after batch edit.

Batch edit (toggle star, toggle un/read) used to work like this:
- Update DB
- Cursors get content change event
- But the list won't update immediately, because ThrottlingCursorLoader
postpones refresh.
- The list will update a few seconds later.

It wasn't really a good UX, so refresh the list right after the db change.

Change-Id: If483b305cf448ec4c73e65498044fd52cc144773
ndroid/email/activity/MessageListFragment.java
9d742070399ba52deadd861f84189902be147231 27-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Integration with Directory API for autocomplete

The UI changes a bit - there is no separator
between the local contacts and directories.
Will bring the separator back if asked, but
most likely simply as a thick line.

Change-Id: Idfc990deff41b30d63bd8289731694e3d9a00fb6
ndroid/email/EmailAddressAdapter.java
ndroid/email/activity/MessageCompose.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/provider/GalEmailAddressAdapter.java
4772322cc99aaf3936e9a9df423daf8bb65c7534 27-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Revive checkboxes to select messages on MessageList"
bdf84d57e623499d9c250fcc6fa1ba1f947cd2b5 27-Aug-2010 Makoto Onuki <omakoto@google.com> Revive checkboxes to select messages on MessageList

It's basically a partial revert of I3cb6c45c, with some clean-ups.

Also removed mHandler, which was unused.

Bug 2949762

Change-Id: Ib4e673c5829b99ba45fec449bffb62df84555a01
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
ea0eedf2cef4ec92aff99a51a43e1ee497d81129 26-Aug-2010 Marc Blank <mblank@google.com> Add Android OS version to EAS User-Agent; update EAS version

Bug: 2953691

Change-Id: I2b2b16c7cb8950a644306b2aa25bcc53ab0c2731
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
273de8cc084cb6cdf276cd67dbe0676c277ada35 27-Aug-2010 Marc Blank <mblank@google.com> Merge "Rename SyncManager to ExchangeService"
64b64cca01c1a827c1b3824f099fd638cfb15826 27-Aug-2010 Marc Blank <mblank@google.com> Rename SyncManager to ExchangeService

* Updated comments and checked for 100-columns

Change-Id: I4ab5aaa9425714f8e035e1952db3fec63d498ae1
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/CalendarSyncAdapterService.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailSyncAdapterService.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/ExchangeService.java
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/utility/CalendarUtilities.java
9e71be599e173bb98fddc06380e5308a826c2ee2 27-Aug-2010 Andrew Stadler <stadler@android.com> am 99df4d53: am b47d1a8a: am 126c9216: Block oversize attachments from being sent

Merge commit '99df4d53b620fae871fd45aaf9b8f110cb4d4288'

* commit '99df4d53b620fae871fd45aaf9b8f110cb4d4288':
Block oversize attachments from being sent
85cf69d371e70c5b58aa736c90788e6ba545fbba 27-Aug-2010 Marc Blank <mblank@google.com> Fix "move to folder" for both IMAP and EAS

* We were zero'ing the server id BEFORE the move, rather than
afterward; this is fixed in the current CL

Change-Id: I4a5f2b2de5794a110a8f657c80dfeac4955b5909
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/exchange/EasSyncService.java
b47d1a8a1ab880b49d027c77c0cd2929a9a96c2f 27-Aug-2010 Andrew Stadler <stadler@android.com> am 126c9216: Block oversize attachments from being sent

Merge commit '126c9216b13d915b24a057b5b50bb8ea9826ba7e' into gingerbread

* commit '126c9216b13d915b24a057b5b50bb8ea9826ba7e':
Block oversize attachments from being sent
bd3e7777c58d4ffef41922b1e7e0d3ccbbb78ca3 26-Aug-2010 Makoto Onuki <omakoto@google.com> Fix broken breakage introduced in I2a7fec0d

This file was left unchanged somehow...

Change-Id: I1b441731c71b63401c8b756e8e591c3018c07e35
ndroid/email/activity/setup/AccountSettingsXL.java
ac1b23b944f334e4f1b5940d6b6cbb7b9e6a510e 26-Aug-2010 Marc Blank <mblank@google.com> Merge "EAS implementation of "move to folder""
d694a208490fa1abd54e8dd861c1a7883d293b2d 24-Aug-2010 Marc Blank <mblank@google.com> EAS implementation of "move to folder"

* Handle errors cases appropriately

Change-Id: I16060cc5c4fc648c299a2fa8f9f57d9aa5c37f56
ndroid/exchange/EasSyncService.java
ndroid/exchange/MessageMoveRequest.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/MoveItemsParser.java
0be2d85bb8e4ca177a52aebeb0dc5e869f1c96b4 25-Aug-2010 Makoto Onuki <omakoto@google.com> Make notification open XL activity on tablet

* Now notification kicks Welcome, which knows which
activity to use.
* Extracted cancelNewMessageNotification
* Also fixed 2909215. There'll be only one XL activity on the app stack.

Bug 2945369
Bug 2909215

Change-Id: I2a7fec0d48a7618375cae55138ca51fefc70ff6e
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/Welcome.java
ndroid/email/service/MailService.java
4829dfaf7fff2d8677b685ffe8644b1c1ee64fba 26-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Brush up mailbox list."
0f67e7af9c18df8894fbab08583a3fd25c37652e 26-Aug-2010 Makoto Onuki <omakoto@google.com> Brush up mailbox list.

- Don't show combined boxes when there's only one account.
- Show special mailboxes (e.g. drafts) right after inbox
and before regular mailboxes.

Bug 2941270

Change-Id: I03ba356f5f2367f0478133acc1f2e35d182d359c
ndroid/email/activity/MailboxesAdapter.java
866f9a0f833fe16ba7a16eb975f167315124ab67 26-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Brush up account selector"
4f4b73645530902e05b958aefd9ee7897e7dbae2 26-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Switch to Light Holo theme, clean up menu options."
b53b1501055cbf5040bfd7b88a9cda084574c398 24-Aug-2010 Marc Blank <mblank@google.com> IMAP implementation of "move to folder"

* Clean up Controller.deleteMessage to work with new EmailContent
utility methods, and move out of the UI thread
* Add unit test for Controller.moveMessage

Change-Id: Ic49e2ecc7ef2252dd4d51f4c3b313b936fda78b6
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/Utility.java
486761169da1415a0a0a21ef98739da94d71c0c5 26-Aug-2010 Andrew Stadler <stadler@android.com> Merge "Finish delete account functionality"
464d1f95b725fb22d701bd7b55d6d682ad4d3cbf 26-Aug-2010 Andrew Stadler <stadler@android.com> Finish delete account functionality

* Wire in delete account functionality
* Minor cleanups
* Update TODO list

Change-Id: Id9852eb833b0b4e4e8233620412e475815e537ef
ndroid/email/activity/setup/AccountSettingsXL.java
62d19789b70f9a7d0975611b870a7dd481ca7160 26-Aug-2010 Marc Blank <mblank@google.com> Merge "Fix attachmentExists (recognize mContentBytes)"
4dcb1c5fdaacc40309b77af2a32532bc60218523 25-Aug-2010 Marc Blank <mblank@google.com> Fix attachmentExists (recognize mContentBytes)

* Add unit test for attachmentExists

Bug: 2937856
Change-Id: I020f58740618c084676bbf1cdfad3795edb07688
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/Utility.java
ndroid/email/activity/MessageViewFragmentBase.java
2f4e87c2234387b6c3bc4fff8f7f1da1e83258e8 25-Aug-2010 Makoto Onuki <omakoto@google.com> Switch to Light Holo theme, clean up menu options.

- Changed the default theme to Light.Holo
- MessageCompose now has ActionBar.
- Removed unnecessary MessageCompose menu items.

- Also removed "Add Account" menu from MessageListXL.
(Use the + button on account settings)

- Fixed "calender response section invisible" bug.

Bug 2926517

Change-Id: Id27632ec82dad158f43b0903dbc2cb219188400d
ndroid/email/activity/AddressTextView.java
ndroid/email/activity/MessageCompose.java
126c9216b13d915b24a057b5b50bb8ea9826ba7e 26-Aug-2010 Andrew Stadler <stadler@android.com> Block oversize attachments from being sent

* Attachments that come in with a file:// URI do not support the complete
set of OpenableColumns columns. To handle this better:
1. Obtain the openable values in two separate queries, in case one or
the other is supported (but not both).
2. If the size is not reported but it is a file:// URI, attempt to
measure it directly.
3. If the size cannot be obtained, do not upload the attachment

Bug: 2948965
Change-Id: Ic5160d39efd65eaca40ceba0dd93c3b035d2871e
ndroid/email/activity/MessageCompose.java
7ab6f25e5417bdcfd514ddb57677f0e778aa6786 26-Aug-2010 Makoto Onuki <omakoto@google.com> Brush up account selector

* Use the standard resources for it

I've been putting this off because it's a UI issue and we don't know
the final look, but the current look is really hard to read.

* Also, don't use the dropdown, if there's only one account set up.

Bug 2883791
Bug 2950461

Change-Id: I0af2e98b2650fcbc83c8f7228505afa334bea209
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageListXL.java
61bddf2519f077c2547ebc249b7efe2f4520b1b5 25-Aug-2010 Marc Blank <mblank@google.com> Merge "Set HAS_ATTENDEE_DATA to 0 for exceptions"
c2246b37ce68c8634043a48b0d131ecf062b94b0 25-Aug-2010 Marc Blank <mblank@google.com> Merge "Fix failing account backup/restore unit tests"
5a53ad7286bab603a1159e0e6eb0700fc08c39f6 25-Aug-2010 Marc Blank <mblank@google.com> Merge "Fix problem w/ forwarding already loaded attachments"
1718115cd112a2d867758f416b33b903a4f8100e 25-Aug-2010 Marc Blank <mblank@google.com> Set HAS_ATTENDEE_DATA to 0 for exceptions

Bug: 2891708
Change-Id: Ia38214dcb9d72e45c1e481bc93fc6521ea206d0f
ndroid/exchange/adapter/CalendarSyncAdapter.java
818214e31f56f2d6d8db70cad8a2fc044b455639 25-Aug-2010 Marc Blank <mblank@google.com> Fix failing account backup/restore unit tests

* We can't run the AccountManager functionality of account backup
and restore in the unit tests, because IsolatedContext doesn't
mock the AccountManager; this leads to various NPE's when the
test is run
* These problems started, by the way, when we added POP/IMAP
account integration with AccountManager
* Since the AccountManager side of account backup/restore isn't
tested, we'll skip that part of the process when running unit
tests

Bug: 2873546

Change-Id: I94673913e66722ac70f3c49c51465122e98bf3d9
ndroid/email/AccountBackupRestore.java
c8502dd1946545cfa112c55aee1444c4544700af 25-Aug-2010 Makoto Onuki <omakoto@google.com> Highlight selected mailbox on mailbox list

* Use ListView's CHOICE_MODE_SINGLE mode to select list item.
* Added a view that implements Checkable to change background
for selected item.

Change-Id: Id55999b3d024ad1852e2b8c6436cd22ef255cf95
ndroid/email/activity/CheckableFrameLayout.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxListItem.java
ndroid/email/activity/MessageListXLFragmentManager.java
5fd986fca0ebd38a4dc41a12503a41ed6005bd2a 25-Aug-2010 Marc Blank <mblank@google.com> Fix problem w/ forwarding already loaded attachments

Bug: 2938562
Change-Id: I778623bf5ee56d25eab5a74d86e9f89206e7f348
ndroid/email/activity/MessageCompose.java
5247ab8cae802272b1e29e81d3b31a1c4e710da5 24-Aug-2010 Makoto Onuki <omakoto@google.com> Make isEasAccount always work.

isEasAccount now uses getProtocol(), so it works even if the hostauth
hasn't been restored yet.

Bug 2929896

Change-Id: Iee902c18ef59680d8a7d4622230489ec7946f38c
ndroid/email/AccountBackupRestore.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/data/MailboxAccountLoader.java
ndroid/email/provider/EmailContent.java
bf37f67e6d1ccdd47842d496ded4eb11186550ad 24-Aug-2010 Marc Blank <mblank@google.com> Merge "Add utilities to retrieve Mailbox and Account from a message id"
7fd307212f076fab56f575988e5e5bfaf1abdcc3 23-Aug-2010 Makoto Onuki <omakoto@google.com> Restore list scroll position when necessary.

Bug 2769052.

Change-Id: I09b04311ad2a5bd0d41d37f78dddc500414323c1
ndroid/email/Utility.java
ndroid/email/activity/MessageListFragment.java
45f530ba5553dcbe3e548930945c40e13736deb3 24-Aug-2010 Makoto Onuki <omakoto@google.com> Integrate Controller w/ AttachmentDownloadService

* Add ControllerService to Controller and call this from
AttachmentDownloadService to handle attachment loading

(It's a redo of I3a6c2a40. Submitting for mlbank, who had a trouble
with repo.)

Change-Id: I7c90761ec4e213d6dc331fc894c7b77e84ad43a6
ndroid/email/Controller.java
ndroid/email/service/AttachmentDownloadService.java
b913cd1fea846acaaffd984165b074255c922216 24-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Add shutdown() to providers."
c184f36c2df16431693d7709e28ded593efc3da7 24-Aug-2010 Marc Blank <mblank@google.com> Revert "Convert Controller to a full service"

This reverts commit 0e6d972641c19467d6b26351ce14a3f44c9fd6f4.

Change-Id: I005fc34152396806468edef919a3620961ddb4fe
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/RefreshManager.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/Debug.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapSyncAdapterService.java
bca4e6e70b53ca7db0ac14522f0d26a7b465cf24 24-Aug-2010 Marc Blank <mblank@google.com> Add utilities to retrieve Mailbox and Account from a message id

Change-Id: Ice727f82b5c284617b831f19e2667078cd3da5dc
ndroid/email/provider/EmailContent.java
2027b29d407f6cd020ab849b5f8d37303c1db856 24-Aug-2010 Marc Blank <mblank@google.com> Change EAS request implementation to use LinkedBlockingQueue

* Make sure that requests added during sync() aren't missed

Change-Id: I20a7788f3695ef6a99642240230f0d004f034f44
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
64dcd7700e134d112c3bd7460539fc1c97a13eb2 24-Aug-2010 Marc Blank <mblank@google.com> Add moveMessage to the EmailService API

Change-Id: Ia10f4a75b4c1288ec52dda8b925b9aee442b8e4a
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/IEmailService.aidl
ndroid/exchange/SyncManager.java
6c36b4c613499655316d8c910e3c6bfb08a0d896 20-Aug-2010 Makoto Onuki <omakoto@google.com> Add shutdown() to providers.

They're needed for unit tests.
I was hoping this would solve some of the unit test issues, but it didn't look
like so. But still they're nice to have.

Change-Id: Ibf6ae78055560d27aac5934d567a17084de99d84
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailProvider.java
f19f9cf4d3e5229715da77fe05a1a2bbd8da3f41 20-Aug-2010 Marc Blank <mblank@google.com> Simplify AttachmentDownloadService; add unit tests

* Changed our queue from a TreeMap to a TreeSet that uses an easily
testable comparator
* Remove the ugly bit twiddling priority computation
* Test DownloadSet (the logic behind queue ordering, addition,
removal, query, etc.)

Change-Id: Ia8427900b8f39a243a5407349775802d0a4fad4f
ndroid/email/ExchangeUtils.java
ndroid/email/service/AttachmentDownloadService.java
567ed19f7b2ca4c97f022b299ff2f9b5eba8c937 21-Aug-2010 Makoto Onuki <omakoto@google.com> Follow up to I684ab2ed.

Catch RuntimeException so that it won't crash even with malformed URLs.

Change-Id: I58da906860ac30b5c9daf68bb672f19917ad0ece
ndroid/email/Utility.java
d755cdce13217d25ac33169b5e410709636255c4 21-Aug-2010 Makoto Onuki <omakoto@google.com> Fix attaching from Gallery.

Fix the attachmentExists test, so that now it works with the content: URL.

Bug 2937846

Change-Id: I684ab2ed0e4fbe4784a165697084b868610bd274
ndroid/email/Utility.java
0e6d972641c19467d6b26351ce14a3f44c9fd6f4 20-Aug-2010 Marc Blank <mblank@google.com> Convert Controller to a full service

Change-Id: I2078fd047ff46f85936c8bf798a5edd3678bb5b4
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/RefreshManager.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/Debug.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapSyncAdapterService.java
a14a24a5bc2ffa426f7ef8e5e6938cffe3f35829 20-Aug-2010 Andrew Stadler <stadler@android.com> Add Add & Remove Account options to AccountSettingsXL

* Add account is a large (+) in the action bar
* Remove account is a new item at the bottom of the settings fragment
Note: Add account works, remove account just toasts for now.

Change-Id: I5b3b8ab8c7d328cb78d103c47b9eca866466f9df
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
7894ee82b3a9f22d460a0c6f79e87be27686a649 18-Aug-2010 Marc Blank <mblank@google.com> New attachment download support for Controller (IMAP/POP3)

* Supports download via AttachmentDownloadService

Change-Id: I66143a79b99dcdbd307524ba0b81227f09a00e4a
ndroid/email/Controller.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/mail/Folder.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/service/AttachmentDownloadService.java
09fd4d0a181db511a07950f52ad56cc6e686356b 10-Aug-2010 Marc Blank <mblank@google.com> New asynchronous attachment loading code

* Create AttachmentDownloadService to manage all attachment downloads
1) User requested
2) Required for email forwarding
3) Opportunistic downloads to enhance offline use
* New attachment related UI (pending UX approval, of course)
1) MessageView (attachment actions, progress bar, etc.)
2) MessageCompose (attachments for forwarded messages)
3) Associated toasts, notifications, etc.

TODO:
* Unit tests
* Cache Management (separate CL)

Change-Id: I7864a5fb1c3f4f2be68d98341a971edc6cbacfe1
ndroid/email/Email.java
ndroid/email/Utility.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/AttachmentDownloadService.java
ndroid/email/service/MailService.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
d111cc70aa555b0cfb7cc58f6413de458e9ae9ec 17-Aug-2010 Makoto Onuki <omakoto@google.com> Add a debug parameter to Welcome to force 1-pane/2-pane

- Now Welcome takes an EXTRA_DEBUG_PANE_MODE to force the
one-pane/two-pane mode.

Use this to open one-pane.
adb shell am start -a android.intent.action.MAIN \
-n com.google.android.email/com.android.email.activity.Welcome \
-e DEBUG_PANE_MODE 1

Use this to open two-pane.
adb shell am start -a android.intent.action.MAIN \
-n com.google.android.email/com.android.email.activity.Welcome \
-e DEBUG_PANE_MODE 2

Change-Id: I6e96f80f53f4488152935502c19d3dd8e0788150
ndroid/email/activity/Welcome.java
51224176259b1b3126087c69814ccf652cb398b9 19-Aug-2010 Andrew Stadler <stadler@android.com> Make AccountSettingsXL the main settings UI

* Connect to it from all call sites
* Remove 1-pane and 2-pane icons
* Leave a few more breadcrumbs for launching into specific account
* Update the long TODO list in AccountSettingsXL

Change-Id: I502eda9a622518e8d4a23d46989340ad400cdd34
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsXL.java
5e06d1714d3d854f260691ef23554418800ddf59 19-Aug-2010 Makoto Onuki <omakoto@google.com> Fix crash when refreshing magic mailboxes.

bug 2929867

Change-Id: I95c4f4e31c1db2139c96b623f9b9c2df7916e5e1
ndroid/email/activity/MessageListXL.java
f52afae9424fe41071cc34a8d6cbcb82b992a411 18-Aug-2010 Makoto Onuki <omakoto@google.com> Make sure RefreshManager's callbacks are called on UI thread.

Fixed the bug where callbacks for sendPendingMessagesForAllAccounts
are called on a worker threaed.

Change-Id: I28f1424cf67e15abf37c09b68050d1385f9ac3ee
ndroid/email/RefreshManager.java
ndroid/email/Utility.java
ndroid/email/activity/MessageListFragment.java
e112bd764836be44628e4285ce190f5fb2314a87 18-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Show "Send outgoing mesasges" button in outbox."
715a19be28723908dbf332b9a9029993510dad0e 18-Aug-2010 Makoto Onuki <omakoto@google.com> Show "Send outgoing mesasges" button in outbox.

It works for regular outboxes. Unfortunately it doesn't for
Combined Outbox, due to a bug in RefreshManager, which I'll fix
in a separate CL. (The fix might be rather large.)

Change-Id: Ib904e2c672801debe3dd64e4bb0a464564d098da
ndroid/email/RefreshManager.java
ndroid/email/activity/MessageListFragment.java
d14229872a1c4ac5c5e4e8f98705b471e3da71b3 17-Aug-2010 Marc Blank <mblank@google.com> Fix NPE in MailService

Bug: 2873538
Change-Id: Ida9135d3c8090abb63424cc2b2cb1b848785d571
ndroid/email/service/MailService.java
25dd2081a57c08bc03f6b9c704f92b32034c4a24 18-Aug-2010 Marc Blank <mblank@google.com> Merge "Remove db access in MailboxAlarmReceiver"
2ae2a12d6b049a4347c0781bd4daa17229bf1340 18-Aug-2010 Andrew Stadler <stadler@android.com> Initial implementation of SettingsXL (checkpoint)

* Create AccountSettingsXL
* Build headers dynamically based on accounts
* Launch account settings per-account
* Temporary launch point from menu in AccountFolderList

TODO: Fragment flip to incoming/outgoing/checksettings not implemented yet
TODO: Use more recent updates to PreferenceActivity
TODO: Finish plumbing into account settings fragment
TODO: Something more real for app settings

Change-Id: I6f4c5bb8cf691f25517c25950ef2049084335ce3
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
ndroid/email/activity/setup/AccountSettingsXL.java
21efedb67fdfff208cef3a18804771fd1d1fff30 16-Aug-2010 Makoto Onuki <omakoto@google.com> Rework/cleanup of "refresh".

Added RefreshManager, which is responsible for getting refresh requests
from UI and keeping track of what is being refreshed.

Conceptually it's a part of Controller, but extracted for easier testing.

- Now sendPendingMessagesForAllAccounts() is owned by RefreshManager
rather than Controller.
- Also updateMailboxRefreshTime/mailboxRequiresRefresh have been moved
in from the Email class.
- Now MessagingException implements a method to return an error message
for the UI.

The refresh button on 2-pane doesn't work as intended yet, because the
spec is a bit too complicated (as described in the TODO in
MessageListXLFragmentManager.onRefhres()).

This change touches many file mostly because it cleans up a lot
of code duplication.

Change-Id: I058ab745ccff10f6e574f6ec4569c84ac4a3e10e
ndroid/email/Clock.java
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/RefreshManager.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageViewFragmentBase.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/MessagingException.java
ndroid/email/service/MailService.java
f513fbd8cb47a89d39ccf33874f1dea1676e4f98 18-Aug-2010 Makoto Onuki <omakoto@google.com> Implement UI event handlers.

Implemented
- The bottom buttons for MessageViwe
Delete, Mark unread, Reply, Reply all, Forward.

- Buttons for exchange invitation
View in Calender, "Yes", "No", "Maybe"

- Other MessageView events
onUrlInMessageClicked()
(Most other methods will probably be deprecated)

- Removed obsolete MailboxListFragment.Callback.onRefresh()

Fixes bug 2926517 minus "the background color of respond buttons
being black" part.

Change-Id: Ie58cbc9fde95a3e67d96846450f77ab58b175a55
ndroid/email/activity/ActivityHelper.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewBase.java
2127964d0f73df889460b23c81d463bbc871efed 17-Aug-2010 Makoto Onuki <omakoto@google.com> Implement "contextual" (selection) mode.

Now MessageListFragment itself takes care of the selection mode,
without help from activities.

Change-Id: Ia1a9942d0d3ca87b4f0938a3bf8172466f53b5d6
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
5f299d21768f2142ff5e1114fd9072235bb6b001 17-Aug-2010 Marc Blank <mblank@google.com> Remove db access in MailboxAlarmReceiver

Bug: 2835313
Change-Id: I61e3672efed85bfa101c731a08cfec8141860c94
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
a241d61ce8c926431e3494f90f6311223b6828ad 16-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Deal with fragment API change."
6956533103efe656347b6c54e0c6b5b348cafb6a 16-Aug-2010 Makoto Onuki <omakoto@google.com> Deal with fragment API change.

- Use the class attribute instead of android:name in fragment tags.
- Use FragmentManager rather than openFragmentTransaction.

(There's a change on the PreferenceHeader tag too, but seems like we're
not using it.)

Bug 2922220

Change-Id: If604a97ac73b9ad7d84e453d36beb84bf31ff98f
ndroid/email/activity/MessageListXLFragmentManager.java
a83e4fdf145edb04910f41cd8a4559543b46fdb2 16-Aug-2010 Marc Blank <mblank@google.com> Merge "Run AccountsUpdatedListener work in worker thread"
a09459f6f4a1bc85a9289cd01a4ab71d1c756f09 16-Aug-2010 Marc Blank <mblank@google.com> Run AccountsUpdatedListener work in worker thread

Bug: 2922224
Change-Id: If7b61c4f41d901fd71d571450fa5fa7f3ff11535
ndroid/email/service/MailService.java
7b5c5cf2a993d68bb8fe1a65bde3184e8d59c10f 16-Aug-2010 Andrew Stadler <stadler@android.com> Use new fragment API features for dialog fragments

* Use fragment arguments for dialog parameters
* Use target fragments to report ok/cancel

Change-Id: Id2a4cc91b1f589273b1000dca30e8c2feff6d32e
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/DuplicateAccountDialogFragment.java
8479032c126765a39ff07f3d9254a928bc9c6373 14-Aug-2010 Makoto Onuki <omakoto@google.com> Fix the bug in LoadBodyTask.

doInBackground() returned a string[] when error, but onPostExecute() expects
null.

Also added isCancelled() check, just in case.

Bug 2918930

Change-Id: Ie87ff2e2e5b7c3fd77a062944759d03f8f09d3d9
ndroid/email/activity/MessageViewFragmentBase.java
2866a0a8d72d78a5fbf73f1fb3473deed985c759 14-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Properly unregister mock controllers"
70bfdab6a34bfb63dc94971844a1830193d1e573 14-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Remove debug log from MailboxFinder."
130686327a7749955b85e47230571666a642dc71 14-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Reworking MessageListFragment."
4be3bc1ec8a52308ee1998f0a31d7e491e06b3c1 14-Aug-2010 Makoto Onuki <omakoto@google.com> Properly unregister mock controllers

Some tests create mock controllers. They register themselves to
MessagingController when instantiated, but never unregister.

Added a cleanup method, and call it for each instance.

(I was hoping it would spped up unit tests, but it didn't. Still
it's a nice thing to do.)

Change-Id: Ia90f0380aef388d22f7cfcf6e9203e05444b3285
ndroid/email/Controller.java
b7d637232e48c39c5c31615939210217a7e8eaa2 13-Aug-2010 Makoto Onuki <omakoto@google.com> Remove debug log from MailboxFinder.

It was temporarily added purely for debugging, and forgot to remove.

Change-Id: I7424465e12faf7f3344206ad9baac075a0b18b26
ndroid/email/activity/MailboxFinder.java
ab3b066fb8b20b272c222a5c8adbaf1dcdba447e 13-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Handle multiple IMAP SEARCH results."
9382eb9ff21855e98b67392f99d721a78a4cfab0 13-Aug-2010 Andrew Stadler <stadler@android.com> am a30631da: Clear password related policies in PolicySet when p/w not required

Merge commit 'a30631da1cae25be3f75137133297e30cef2db9c' into gingerbread

* commit 'a30631da1cae25be3f75137133297e30cef2db9c':
Clear password related policies in PolicySet when p/w not required
187d0334849cfd922f0df05e57d77224f2f70378 12-Aug-2010 Makoto Onuki <omakoto@google.com> Reworking MessageListFragment.

- Now MessageListFragment uses loaders to load data.

- Now that we use Loader's auto-requery with throttling,
removed the throttling timer from MessagesAdapter.

- Simplified footer mode. (now only "no footer" or "load more")

- Removed saving/restoring list state code.
These method don't really look like working, or at least
not always working. Now that UI's lifecycle is changing,
we'd better redo it from scratch.

- Removed MessageListUnitTests.
It only has tests for onSaveInstanceState/restore of the fragment,
which I virtually disabled.

And minor clean-ups
- Moved the code to save/restore selected state from the fragment
to Adapter.

Bug 2911766
Bug 2897500

Change-Id: I16c7aefecc5409c57fc5fc8c59b5c80d9b7fc164
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessagesAdapter.java
ndroid/email/data/MailboxAccountLoader.java
ndroid/email/data/NoAutoRequeryCursorLoader.java
a30631da1cae25be3f75137133297e30cef2db9c 12-Aug-2010 Andrew Stadler <stadler@android.com> Clear password related policies in PolicySet when p/w not required

Merge from master of c263810b08943541135a24e2b7520692152455cc

Bug: 2883736
Change-Id: Iec4ed0e320d67aee8a89092ac650c0960540057b
ndroid/email/SecurityPolicy.java
ccd4dbee8f83c721ac3099d5e859d23ddc35bb0c 12-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Make use of the retaining-loader feature."
79d4a2d9e1537727eb1b66c0df91b2b43ab1a9a5 11-Aug-2010 Makoto Onuki <omakoto@google.com> Make use of the retaining-loader feature.

Don't use restartLoader(). Use initLoader() with stopLoader() when necessary.
This allows us to make use of LoaderManager's "retaining" feature.
i.e. We won't have to requery when the screen orientation changes.

Also, don't start loading in onStart(). Fragment manager seems to kick
exisiting loaders after onStart(), so you'll end up getting onLoadFinished()
twice.
(Looks like I got unluck with this--there was no strong reason to start loading
in onStart rather than onResume, but I think we can leave other fragments as-is
as long as they don't use loaders.)

Seems to be working.

Change-Id: Ib4f72098bd0fcbfce284ae6e16055d20ee410cf3
ndroid/email/activity/MailboxListFragment.java
b6ad4c252f5fa75ca6b0a1297d0f9781c9749edd 12-Aug-2010 Marc Blank <mblank@google.com> Merge "Fix AttachmentProvider to work properly w/ EmailProvider"
367ebd7fa5935d9d514d4be5d708c334e4b73127 11-Aug-2010 Makoto Onuki <omakoto@google.com> Handle multiple IMAP SEARCH results.

Apparently IMAP servers may return multiple SEARCH responses for a
single SEARCH command, and we need to handle all of them.

Before the IMAP rework there was 3 methods that issued the SEARCH command.
Two of them ware doing it right, but the other wasn't, which was what
I copied from, unfortunately!

In case you're wondering, originally the test for this method was done through
upper methods, e.g. getMessage().

Bug 2911647

Change-Id: Ia50072944d5b01c1e59541c3a966067b13910cc4
ndroid/email/mail/store/ImapStore.java
86dc43d492cfd6795704dbdd7a015f4f069b554d 12-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Improve logging in MailboxFinder."
1ec89e6290df7853990517ebe869bdb212d7e337 12-Aug-2010 Marc Blank <mblank@google.com> Fix AttachmentProvider to work properly w/ EmailProvider

* Apps trying to open attachments using AttachmentProvider were
seeing SecurityExceptions due to the fact that internal calls
from AttachmentProvider to EmailProvider didn't have their
calling identity saved/restored.
* Updated provider calls so that these calls use the Email
process' identity.

Bug: 2908737
Change-Id: Ifb71ad834530c6232728e1aad31439991f8ed379
ndroid/email/provider/AttachmentProvider.java
cab0021179c4d3b03d756c4dd6bacfc4e9ac75af 12-Aug-2010 Makoto Onuki <omakoto@google.com> Improve logging in MailboxFinder.

There's something weird going on when you add an Exchange account
and we try to look up the inbox. Add log for investigation.

- Log class name
- Log normal path (MAILBOX_FOUND) as well if debug is enabled.
(Other paths are always logged. These paths shouldn't be used often,
so I think it's okay.)

Change-Id: Iff5a28a1240896f8e2b991b891cbc696e7901f06
ndroid/email/activity/MailboxFinder.java
641ae4535828028a19bf7989c75d71caf75ec2dd 12-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize Exchange setup

Change-Id: Ib331d9a7f7be7acbfe355d6a03d9ae07af0cc627
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupExchangeFragment.java
41502f6ea886e7039d7dbc9743655ac0415c532b 11-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Fix handling IOException in ImapStore"
c14ff6ea453530eb06e41b81e6513b32f63631b4 06-Aug-2010 Makoto Onuki <omakoto@google.com> Fix handling IOException in ImapStore

- mConnection.destroyResponses() should be protected with
if (mConnection != null).
When we get an IOException, we close the connection and null it out in
ioExceptionHandler(). So mConnection can be null at any point after
where ioExceptionHandler() first appears.

- ioExceptionHandler should close its parent ImapFolder only if the argument
connection is mConnection.
Methods like exists() may pass an ImapConnection which is not mConnection
to ioExceptionHandler. In which case we don't have to close the ImapFolder.

Bug 2898211

Change-Id: I8f9f45d91f596bb8da1a1575593e652d66deb643
ndroid/email/mail/store/ImapStore.java
f395b75358a713a5a762147f58a36e9ea2104f7d 11-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Make AccountBackupRestore/"delete account" robust."
fdc506d67023ff4944b5238cd9d572a52f72c35f 11-Aug-2010 Andrew Stadler <stadler@android.com> Merge "Fragmentize outgoing settings (SMTP)"
c4de16b4ff19a776cfd531f41e517cb85a71d0df 10-Aug-2010 Marc Blank <mblank@google.com> Allow multiple EmailServiceCallbacks in SyncManager

* This change will be needed with new Attachment download
management

Change-Id: Ic18e16bd5adf9d77305ea5e029aa7a653cf5c2b0
ndroid/exchange/SyncManager.java
faaa115e1a52eda9e675f9da5982c7a52b382336 11-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize outgoing settings (SMTP)

Also fix a small NPE in AccountSetupIncoming

Change-Id: I5728a10889a3f0f35d31962f4a13ccae4ec0393b
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/AccountSetupOutgoingFragment.java
1b156352f3fc160da5ba050c2437bcd1c995b326 10-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize Incoming settings (IMAP/POP server)

Also, extract DuplicateAccountDialogFragment for reuse.

Change-Id: I042a158e264d949024347d477d6e9ec999c244d3
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupIncomingFragment.java
ndroid/email/activity/setup/DuplicateAccountDialogFragment.java
6d8bfa67c438ee18921d13d8bfba876aacaa9ff6 10-Aug-2010 Makoto Onuki <omakoto@google.com> Make AccountBackupRestore/"delete account" robust.

Fix for crashes caused by an incomplete account
which typically a crashed unit test leaves behind.

- "Delete account" now works for incomplete accounts
- AccountBackupRestore won't crash.

Change-Id: Ie235aa15cf9b970fd184c60f14406aa7353c6f00
ndroid/email/AccountBackupRestore.java
ndroid/email/Controller.java
ndroid/email/provider/EmailContent.java
d632426c0a05ac7f1e8db08cc0b2e21a261771f4 10-Aug-2010 Makoto Onuki <omakoto@google.com> Support opening a draft on XL.

- When a draft is selected, use MessageCompose rather than MessageView.

Change-Id: I5e005a7916d7089cfbe9ed15cf51c901c26dd595
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
76681d906a73aea4be675751fec63357d37cd3bc 10-Aug-2010 Makoto Onuki <omakoto@google.com> Implement "account settings"/"add account"

- Implemented "account settings".
- Added "add account" menu. It's not clear how to get to the screen at
this point, so just added a menu item for this for testing.

Change-Id: I78cfa54f2533917cc742b6ec027c2a0624cf0c1a
ndroid/email/activity/MessageListXL.java
b98f219cf088fef9288045813c963be070dde9d0 10-Aug-2010 Makoto Onuki <omakoto@google.com> Open 2 pane after adding an account.

- After adding an account, and when a shortcut to an account is clicked,
launch Welcome instead of MessageList.
- Then welcome launches the appropriate activity.
(MessageList or MessageListXL)

- Welcome no longer launches AccountFolderList, which will be gone
according to the current plan.

Always going through Welcome makes sure that the account backup/restore
and the reconciler will always get kicked.

Change-Id: Ia57027eba16e98c5d8854e8d3c1d8773bcfbf1e5
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupBasics.java
e6fcf739178526f4342f8c3691a0a544e68c031a 10-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Fix crash when resuming MessageListXL."
a75bab550423e0cd0b2d58379d8210ce6c7c7aa9 10-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize AccountSetupBasics

Change-Id: I99eb4cd4f8aa80d25a01d720244ccee599cba1d8
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupBasicsFragment.java
f48fe98b2a2838e4aad2a7881eaa12f7baac578b 10-Aug-2010 Makoto Onuki <omakoto@google.com> Fix crash when resuming MessageListXL.

It's related to the use of Activity.manageQuery().
This may be a regression in the framework, but it's annoying enough and
causing a problem with testing, let's just not use managedQuery().

Bug 2901309.

Change-Id: I8ae5b6ffe17979a094d5a23d49f42e8de04ed4f0
ndroid/email/activity/MessageListFragment.java
e2d76d224323f8b20e371229ddf7e55922c088cb 09-Aug-2010 Andrew Stadler <stadler@android.com> Merge "Fragmentize AccountSettings"
71cc035c55079bf89283d0acd4ff2712f75a82e1 09-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize AccountSettings

This is phase 1, which simply replaces the phone UX with a fragment-based
equivalent. A subsequent CL will convert it to a large-format multi-pane
version.

Also fix a latent bug in the signatures of the Incoming & Outgoing
settings, both in the reflection code and in the proguard flags.

Change-Id: I86e857af8b9573c0d6070bb21053ce65bb7fe8a0
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsFragment.java
edaa16f15164010c77382206127d90a8398c9796 09-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Improve SyncManager.getDeviceIdInternal()"
408de8e4c5bd324f15a06a17f9b50bc44d5eae1f 06-Aug-2010 Makoto Onuki <omakoto@google.com> Improve SyncManager.getDeviceIdInternal()

- Don't swallow exception information.
- If the file exists but can't read, try to remove it.
- Don't use createNewFile. Just overwrite.

Bug 2898372

Change-Id: I7c0802f751a020c546aa07fa932b41ead31a8dc8
ndroid/exchange/SyncManager.java
533e0f5beb15659832b589c1d68f96e6ef1b7e40 06-Aug-2010 Makoto Onuki <omakoto@google.com> Add "change orientation" menu command.

Unfortunately software-keyboard is disabled on master for some reason,
so we can't use the R key hack any longer...

Change-Id: Ide73e11742e5de70fec45009eee20a1a74fcbfd1
ndroid/email/Utility.java
ndroid/email/activity/MessageListXL.java
c263810b08943541135a24e2b7520692152455cc 07-Aug-2010 Marc Blank <mblank@google.com> Clear password related policies in PolicySet when p/w not required

Bug: 2883736
Change-Id: I2c9c573aea9a4fef1699ff6339e8ef628d7f2269
ndroid/email/SecurityPolicy.java
36bdeeb0e17cb6fbf08023eeb3e4f1db58b48aea 05-Aug-2010 Makoto Onuki <omakoto@google.com> Add getFirstRowInt.

It's the int version of getFirstRowLong.

Because getFirstRowLong returns a Long as opposed to a long, and the return
value can be null, it's a pain to cast to Integer. So added this variant.

Change-Id: I2a3190e49db480e6d594be4b1fcef9a71e56cb2f
ndroid/email/Utility.java
b0ca30d4d12537bd2f59105f01607380b7e6fe09 05-Aug-2010 Makoto Onuki <omakoto@google.com> Add action buttons to actionbar on MessageListXL

- Now able to compose a new message.

Change-Id: I53cd7cc6fe850063946824748e11ccde89d7decf
ndroid/email/activity/MessageListXL.java
fd8a2e8afbd4d410ede5f71494d5d5b316a5b963 05-Aug-2010 Makoto Onuki <omakoto@google.com> Automatically open Inbox when account is selected.

Change-Id: I3dc43d804d39b925ee62bebbf85911cb258aafd7
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
9531931c7ed9fec86af307223e5dfc2319761a8e 05-Aug-2010 Makoto Onuki <omakoto@google.com> Don't auto-requery account list.

Prevent CursorLoader's auto-reuqery. Instead, refresh the loader
when adding/removing accounts.

Change-Id: I63091c23f8c06c32dd42669fdfbd9e783ff9eccb
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MessageListXL.java
94506fdaf651363adaf60650d9a2301fdb76724d 04-Aug-2010 Makoto Onuki <omakoto@google.com> Small fixes/clean-ups.

- Fixed account selector default account look-up
- Renamed MessageListFragment.onRestoreInstanceState
to loadState.
(Activity.onRestoreInstanceState is called after onStart,
but this one is called in onCreate, so it wasn't a good
idea to use the same name.)
- Changed mailbox cursur requery timeout to 3 seconds
- Added some TODOs.

Change-Id: Ia2242cd9f74936d24756b800eacd126958eed330
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
191448b430f36167bd1706c13d77e48d7e7505cf 05-Aug-2010 Makoto Onuki <omakoto@google.com> Make Welcome launch MessageListXL

Also added the "1 pane" activity to test the phone UI.

Change-Id: I1c86d2088a2298ada5028b7a266bd090b593593c
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/Welcome.java
ndroid/email/provider/EmailContent.java
32358f551670b4b877b1d9abc3f2d6a0b89262c5 05-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Upgrading to new GAL registration API.

Change-Id: I67eaeb50ba8629a85d056da031e3b48ea7ab3858
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
8066a925b13323f1503cd42f35c81a6d4eed5827 04-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Introducing ThrottlingCursorLoader."
b91eea011961889b355a3c5ad837745099c7749a 04-Aug-2010 Marc Blank <mblank@google.com> resolved conflicts for merge of fbf501fe to master

Change-Id: Ic68cbf2de1877ab06744287f57c1c33c4e0e573a
630e31ef788d4aa0dc259bc3412f7e98bca201e8 02-Aug-2010 Makoto Onuki <omakoto@google.com> Introducing ThrottlingCursorLoader.

This is a {@link CursorLoader} variant that takes {@code timeoutSecond}
in the constructor.

When it detects changes in the underlying data, it'll wait until the timeout
before doing a requery.

We use this to throttle # of queries. We don't want to issue a query every
time something changes in the DB while we're syncing.

Change-Id: I098366bce923c3242c42964bc166493610ee0f6f
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/data/ThrottlingCursorLoader.java
833fe73b99e62ad9cf6e80c782717c7de1ff12e4 03-Aug-2010 Makoto Onuki <omakoto@google.com> Aadd special boxes to mailbox list.

Change-Id: I36616f53555346ca7fbb6f3426a0c3196d7bacbc
ndroid/email/Utility.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/provider/EmailContent.java
77c6ccdd61a931245cb785c76256e2972fcf850d 03-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Clean up MailboxListFragment."
4e619a2d5051811262496e48ec99a0e916822d44 03-Aug-2010 Marc Blank <mblank@google.com> am 2b2b3448: Handle inactivity timeout > maximum allowed properly

Merge commit '2b2b3448ec200f3d649e5f57309908d28ce3bfc7' into gingerbread

* commit '2b2b3448ec200f3d649e5f57309908d28ce3bfc7':
Handle inactivity timeout > maximum allowed properly
2b2b3448ec200f3d649e5f57309908d28ce3bfc7 02-Aug-2010 Marc Blank <mblank@google.com> Handle inactivity timeout > maximum allowed properly

* In a recent change, we mistakenly removed the logic for handling
too-long inactivity timeouts; we should just fall back to the maximum
since this is stricter than what we're being asked to enforce
* Restore this logic and update the unit test
* The regression was caused by change Ida5663a9, to wit:
Backport: Handle "Allow non-provisionable devices" properly

Bug: 2886746
Change-Id: I99cf9a37441b80477cc1c2c7ec2a78f8a14a83da
ndroid/email/SecurityPolicy.java
5ab18497f6f63b8a12266a1e03635179f50d9c09 03-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Adding support for a full-contact (entities) query.

Change-Id: Ib1cdd998dcc4f60124dbc37a42fd61ee0f6802fd
ndroid/exchange/adapter/GalParser.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
ndroid/exchange/provider/GalResult.java
7ef278202e26f82612f94f18a4e971994f29c0ec 03-Aug-2010 Makoto Onuki <omakoto@google.com> Clean up MailboxListFragment.

- Remove AsyncTasks, and use CursorLoader to load data.
- Get message counts for the drafts/trash mailboxes directly from
the db column.
- Remove obsolete code from MailboxesAdapter.

Change-Id: I93c72977c19b60581e1169ba9bd429912ba3e68f
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
d0c217806369e5ca2d753fc0e3e8b405c4d2e991 03-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Add the messageCount column to the mailbox table."
574854b528163f3bf1a7cb974aa80082d1768edf 30-Jul-2010 Makoto Onuki <omakoto@google.com> Add the messageCount column to the mailbox table.

- Use trrigers to keep them up-to-date.
- Batch-update them upon upgrade.

- Motivation:
On the mailbox list, we show the number of messages in trash/drafts.
We currently do this with count(*) on the fly, which is okay
because MailboxList is really shown right now.
However, on the 2 pane, it's always shown and constantly refreshed,
so the use of count(*) can be a huge penalty.

It also make the code significantly simpler.

Change-Id: I26efa238d5183df43420a65925876248ef6c6cb6
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
b6c1ad0f013319101b32c9c3831920ec39554169 31-Jul-2010 Makoto Onuki <omakoto@google.com> Rename MessageViewFragment2

Change-Id: I28e23c0ff18211db999396c5ba1ad9ef898d4515
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragment2.java
ndroid/email/activity/MessageViewFragmentBase.java
206d4e842d287a7a4e6bedf4963fb7f0f58e113f 30-Jul-2010 Makoto Onuki <omakoto@google.com> Split up MessageViewFragment like we did to MessageView.

Break MessageViewFragment up into two fragments, MessageViewFragment, which
is used to show regular messages, and MessageFileViewFragment, which shows
EML messages. (And their base class, MessageViewFragmentBase.)

MessageViewFragmentBase's javadoc has a class diagram.

MessageViewFragment is actually named MessageViewFragment2 at this point
so that GIT correctly finds out the rename from MessageViewFragment to
MessageViewFragmentBase. I'll rename it back in a following CL.

Also added very basic unit tests for MessageView and MessageFileView.
At this point, they just make sure the activities really open and show
messages without exceptions.

I feel like the current naming schema for the activities/fragments is
kinda confusing. Let me know if you come up with better names.

Change-Id: Iff948f4b68cfdb7c1e68f225927b0ce58d34766b
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageFileViewFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewBase.java
ndroid/email/activity/MessageViewFragment.java
ndroid/email/activity/MessageViewFragment2.java
ndroid/email/activity/MessageViewFragmentBase.java
1f1be331919721b22742dc8e1b66b06d91d3a9bc 29-Jul-2010 Marc Blank <mblank@google.com> am a95e40df: am 4f12c25e: am 05b0bb56: Release held mailboxes after policy refresh

Merge commit 'a95e40df2f4c6c17e53a438e1229199d823efca6'

* commit 'a95e40df2f4c6c17e53a438e1229199d823efca6':
Release held mailboxes after policy refresh
4f12c25ed9e0e3c0884da642e1fc3450eb781b98 29-Jul-2010 Marc Blank <mblank@google.com> am 05b0bb56: Release held mailboxes after policy refresh

Merge commit '05b0bb56254d9ed924dff4c09ad227eec611a695' into gingerbread

* commit '05b0bb56254d9ed924dff4c09ad227eec611a695':
Release held mailboxes after policy refresh
ec15f2356e47d621584cc3fc84c9c02557e0a0df 28-Jul-2010 Makoto Onuki <omakoto@google.com> Extract the mailbox lookup logic into an independent class

This new class MailboxFinder is responsible for looking for a mailbox
by an account id and a mailbox type.

If a mailbox is not found on the first try, it'll tell Controller
to refresh the mailbox list, and try again later.

This will be used by MessageListXL.

Change-Id: I4adc3db025fb271c254aa2b58b3b753281dc7398
ndroid/email/Controller.java
ndroid/email/activity/MailboxFinder.java
ndroid/email/activity/MessageList.java
d9907c764170ef74670597e591da54408fa9fdb8 28-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Adding account selector."
ee216da74aad5a378985c6a59f7b60391a8a63d9 28-Jul-2010 Makoto Onuki <omakoto@google.com> Adding account selector.

Also
- Renamed MessageListXLFragmentManager.setStart to onStart. (was typo)
- Fixed flag handling bug in MailboxListFragment
- Fixed the R key handling code. (The first R key was always ignored,
because the default requested orientation was neither landscape or
portrait.)

Change-Id: I0e14ce9f4fc5be973f7c0091f88fd4551a4329fa
ndroid/email/activity/AccountSelectorAdapter.java
ndroid/email/activity/DefaultAccountLoader.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
bcf32320e2600e96c8a9e997a8903bfc3893b35e 27-Jul-2010 Makoto Onuki <omakoto@google.com> Move isSecurityHold/clearAccountHoldFlags to Account

- Added unit tests
- I see the "open a cursor, move to the first row, read a column" pattern over
and over. Added a utility method for this. (Let's try not to bloat the
binary by copying code around!)
- Added helper classes for database related tests
- Removed code dup

Change-Id: I380959215cc1661b252158f0f6e35369b499cdf8
ndroid/email/SecurityPolicy.java
ndroid/email/Utility.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/provider/EmailContent.java
0943a75ba83c5d490e3ba3caa39f79485ddb261f 28-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Refactoring MessageListXL"
bccb10a5a8014a7326bb10bda668df597081e622 28-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Break MessageView into 2 separate activities."
e105fbe51065fbc4077167861f4e2708dce90cb3 26-Jul-2010 Makoto Onuki <omakoto@google.com> Break MessageView into 2 separate activities.

MessageView for regular messages and MessageFileView for EML files.

I'll break down MessageViewFragment too.

Change-Id: Iae66f33d8fb5de58084ab4aef31588e9743c5a18
ndroid/email/activity/MessageFileView.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewBase.java
02fa70aa185d8073966105e9986bd8e12200a526 23-Jul-2010 Makoto Onuki <omakoto@google.com> Refactoring MessageListXL

I always thought our Activities are way too fat, meaning we've put too many
things into activities without any structure.

The major problems with this are:
- They have too many fields, which are not final and not even orthogonal.
This makes them very hard to understand/maintain. Changing one tiny bit
can always cause unanticipated side-effects.
- Very hard, or almost impossible to test.

I really think we should break them into independent and self-contained
subcomponents which can be tested separately.

Introducing MessageListXLStateManager, which manages the current account,
mailbox and message, and show/hide/update fragments accordingly
for MessageListXL.

With this class, MessageListXL will be able to switch accounts/mailboxes/
messages by just calling the methods such as selectAccount(), without
worrying about when to show/hide what fragment and how to initialize them.
(In other words, MessageListXLStateManager encapsulates the two-pane screen
transition. It's not intended to be reused for the phone UI.)

I didn't make it a nested class in MessageListXL, because nested classes can't
have real private members (private member are accessible from outer classes and
even brother classes!!), and I wanted it to be really self-contained anyway.

Change-Id: I1c121e99e30f12cc118e1c35abc9b30f49939a4a
ndroid/email/Email.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageListXLFragmentManager.java
ndroid/email/activity/MessageViewFragment.java
c435d7ad244195bb15dfba49b6a377ca3bf5a1c1 27-Jul-2010 Makoto Onuki <omakoto@google.com> Workaround for bug 2873538

Prevent NPE.

Change-Id: I6d80e6f574d6c37adb9d7a402850c39e2a79f04a
ndroid/email/service/MailService.java
f08b061ea88c0ecbc4140a6b19a441d7ddd0f6a2 26-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Rotate screen when the R key is pressed."
3894be2fe0d0e94bfee3aa0715656970c4247019 26-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Adding lifecycle log to fragments."
833eae6ac88cbd1e19404386c658d43b26cc3409 23-Jul-2010 Makoto Onuki <omakoto@google.com> Adding lifecycle log to fragments.

Change-Id: If83486b50c924fdb99a422814ede66da710bfc2d
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageViewFragment.java
0f6e1c9e4981bbb3c959ec64fdeb297223d07e90 26-Jul-2010 Makoto Onuki <omakoto@google.com> Rotate screen when the R key is pressed.

Workaround for auto-orientation not working on the device (bug 2865868).

Change-Id: Ie1e7c802c0c816338aea1f56f6e86991df241f3b
ndroid/email/activity/MessageListXL.java
05b0bb56254d9ed924dff4c09ad227eec611a695 23-Jul-2010 Marc Blank <mblank@google.com> Release held mailboxes after policy refresh

* When a sync fails due to a provisioning error (on initial sync
or after policies are refreshed on the server), sync mailboxes go
into a "hold" state until the security error is resolved. Meanwhile,
the account mailbox handles provisioning. If this is NOT successful,
we put a hold on the account and go through the UI steps of setting
up security on the device. When this is done, we release the hold on
the account, which releases the hold on the mailboxes.
* If provisioning IS successful, however, a refresh of the existing
settings would be an example, we do NOT release the adapters, and
this is the bug we're seeing.
* This CL simply causes any held mailboxes in a successfully provisioned
to be released from the hold

Bug: 2865623
Change-Id: I59e780e9bd4ea908182b786dfd0e5851f5bf5f3b
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
a51097c1b872c62a99c99e17d8208619ad55c649 23-Jul-2010 Makoto Onuki <omakoto@google.com> Fix STOPSHIP: Show account name as subtitle.

Change-Id: Ie617ade795526c349f7a401115e6e04831096587
ndroid/email/activity/MailboxList.java
9ddd1e7fa4b700326f00e406219b1ac584dee5a0 23-Jul-2010 Makoto Onuki <omakoto@google.com> Small changes to list fragments.

- Added parameter check to openXxx methods.
- Clear the list before (re-)load the data, to make ListFragment show the
"Loading..." animation.
- Moved a few lines around in MailboxListFragment.

Change-Id: I48d9759e118976bf9f8cce10069e2b9b5c253342
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
65f6baf15511d10518c428d5a59007d92a677116 23-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "MessageListFragment: fix bug 2863240."
15c6a98ea9ac7901e3d2430d490e7fcd16d75263 22-Jul-2010 Makoto Onuki <omakoto@google.com> MessageListFragment: fix bug 2863240.

Also removed unused imports.

Bug 2863240

Change-Id: I0f7e9094c7afa8af0bf02745b1244fd2ddfae44c
ndroid/email/activity/MessageListFragment.java
8167070158afcdb43081b3ff3d9b0379aeb2225c 22-Jul-2010 Makoto Onuki <omakoto@google.com> Refactoring MailboxListFragment

- Broke down bindActivityInfo into setCallback and openMailboxes()
- openMailboxes() can be called multiple times against the same instance.
(We won't have to re-create the left pane on XL screen)
- Added EmptyCallback to avoid null checks
- Renamed a callback method

Change-Id: I3848a6f6da7f1782dcc9566967f8618ed79a878e
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListXL.java
3918b0dbfcedde6273a28ad24ee6338901f73425 22-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Renaming message_view_header.xml to message_view_fragment.xml"
e6cc662abc0b5fffe223cda5e980b4f05a4e91dd 08-Jul-2010 Marc Blank <mblank@google.com> Use AccountManager for POP/IMAP; refactor setup classes

There are two major, interrelated parts to this CL:

1) Clean up the activities to reduce the use of Intents to pass
information between activities; instead, we use a common
SetupData structure that automatically saved/restored as necessary
during the setup flow. A fair amount of code and inconsistent
use of Bundle extras has been eliminated in the process.

* Create SetupData structure, setters/getters, and initialization
methods to simplify the preservation of state during setup flow
* Remove all state/flow extras from Intents; Intents now only
specify the Activity to be started, which should greatly simplify
the transition to Fragments.
* Remove all state/flow fields from Activities
* Modify existing setup activity unit tests and confirm tests pass

2) Create AccountManager accounts for POP/IMAP email accounts to
provide consistency in user experience. Also, internal flows are
now identical as between account types.

* Move account reconciliation from SyncManager to MailService, so
that reconciliation is consistent between email and exchange
accounts; move unit tests as appropriate
* Add a "Sync Email" setting for POP/IMAP/EAS
* Change MailService to respect the "Sync Email" setting in
Settings -> Accounts & sync
* Create PopImapSyncAdapterService to handle manual POP/IMAP sync as
requested by SyncManager; add EmailSyncAdapterService to perform
the same function for EAS
* Use new PopImapAuthenticatorService to add AccountManager accounts
for POP/IMAP accounts; setup appropriate stanzas in AndroidManifest
and add related xml files
* Update AccountSettings to use SetupData

Miscellaneous other changes:

* Only allow valid port numbers in incoming/outgoing setup

Bug: 1712475

Change-Id: Ibdac52fb2c5578b86bf3992ddb1acd10f162391a
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/Email.java
ndroid/email/Utility.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupActivity.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SetupData.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/MailService.java
ndroid/email/service/PopImapAuthenticatorService.java
ndroid/email/service/PopImapSyncAdapterService.java
ndroid/exchange/EmailSyncAdapterService.java
ndroid/exchange/SyncManager.java
411314990d7d115b8497fb31fd27df9760684555 22-Jul-2010 Makoto Onuki <omakoto@google.com> Renaming message_view_header.xml to message_view_fragment.xml

Change-Id: Id0ccc13bfd8dfa63b450d46989938295ba8e78e0
ndroid/email/activity/MessageViewFragment.java
d6a2978857e0866d7441f8e140338477545d59a5 21-Jul-2010 Makoto Onuki <omakoto@google.com> First cut of two pane activity.

How to launch:
- Kick "Email 2 Pane" in the app drawer.

Major known issues:
- When you launches "Email 2 Pane", it starts directly; the logic in Welcom
won't be executed.
- There's no UI to add accounts. Use the old UI.
- There's no way to select non-default accounts.
- The on-screen buttons except for older/newer don't work.
- No contex menus work.

Change-Id: I38374acafafbae62e46f84294a7677e54686cfc2
ndroid/email/activity/DefaultAccountLoader.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListXL.java
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageViewFragment.java
bab0d459040ad614556f61b364237b46b0a03ca8 21-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Fragmentize MessageView."
578402eb40669b68e264d3eae665130db0b3f423 20-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Don't call setListAdapter until adapter is ready."
16a60dca84516a1338e3cfe7f868c94f3f97c536 17-Jul-2010 Makoto Onuki <omakoto@google.com> Fragmentize MessageView.

This version is hybrid of the old design and what Andy's suggested.
- MessageViewFragment is responsible to show a single message at a time.
- Call MVF.openMessage() to tell it to open another message.
No need to re-create a new MVF to do this.
- MessageView manages the message list, and handles "move-to-newer/older"
buttons.

Reason for not re-creating a fragment when opening another message is:
- Re-using the same fragment doesn't make it as complecated/ugly as I
was initially afraid.
It's basically cancelling all running tasks, re-initializee some views,
and load a message.
- We don't have to run MVF.onCreate() over and over again when moving through
messages.
We may change the strategy later, but I think it's suffice for now.
(Changing this might affect how the back key works, so let's revisit it
when the fragment manager supports back.)

Basically this CL is all about internal changes.
No UI should have changed except for:
- Moved "Move to newer/older" buttons to the bottom.

Also fixes:
Bug: 2849129

Change-Id: I00c05069231afded9d98d3d52dd9a7925ebdee9d
ndroid/email/activity/MediaOpener.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/MessageViewFragment.java
37e21ab968e3944b10304a620c3b0ecfe5175668 20-Jul-2010 Makoto Onuki <omakoto@google.com> Don't call setListAdapter until adapter is ready.

ListFragment shows the "Loading..." animation for us until setListAdapter is
first called. In order to make use of it, setListAdapter should be called
only when the underlying data is ready.

Change-Id: Iac903b1f10ad7ed4be04446ddb2d2172e84bfe16
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
bec534628e50bf2fdfb244df9b721faa119f8957 19-Jul-2010 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #2846543 Delete HIDDEN column from the "Calendars" table"
e5536a6f9f1fcdc55d134153fdd09507d8cc2385 16-Jul-2010 The Android Open Source Project <initial-contribution@android.com> am c7f68d75: am c257cfe6: add meta-files about 3rd party projects

Merge commit 'c7f68d75af03bf6d1a88b9b9342c1fe031fbed74'

* commit 'c7f68d75af03bf6d1a88b9b9342c1fe031fbed74':
add meta-files about 3rd party projects
c257cfe6d38a59b9abd6dbe01558927062c088a9 16-Jul-2010 The Android Open Source Project <initial-contribution@android.com> add meta-files about 3rd party projects

Change-Id: Ie43ae55f890a79547ce2e3faed74150b50fc43fa
eetstra/ThirdPartyProject.prop
a80d4cf7f423ffe06eadeeff05b59cdd292b904b 16-Jul-2010 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #2846543 Delete HIDDEN column from the "Calendars" table

- update Email app

Change-Id: I04145b802c8ace6bb6f25d2f1cb0fecb1bb22308
ndroid/exchange/utility/CalendarUtilities.java
9444a54866458e5cba7ba35d4da93a127cef45eb 15-Jul-2010 Marc Blank <mblank@google.com> resolved conflicts for merge of 2cb5acc5 to master

Change-Id: I4b3379b7b8ebfca36eda3ae649f009659e682e87
cd0f12fda867583a0e30e2ef35fc035bd8e32626 15-Jul-2010 Marc Blank <mblank@google.com> resolved conflicts for merge of 84f7d07d to master

Change-Id: I62abe3b8aa31a1b551d0396e184b648c305033ec
1585d313f1a26b4b780761a9e9b4ec7042dcbbe5 15-Jul-2010 Marc Blank <mblank@google.com> am 8b36acb1: Backport: Handle "Allow non-provisionable devices" properly

Merge commit '8b36acb10d555b59ec0497f6c71426af823c7931' into gingerbread

* commit '8b36acb10d555b59ec0497f6c71426af823c7931':
Backport: Handle "Allow non-provisionable devices" properly
8b36acb10d555b59ec0497f6c71426af823c7931 14-Jun-2010 Marc Blank <mblank@google.com> Backport: Handle "Allow non-provisionable devices" properly

* Backport from master branch
* Send policy key of "0" when validating; this gets us the policies
even if "Allow..." is enabled (currently, we simply don't see the
policies)
* If we don't support all of the policies, send back the response
code indicating support for partial support. If we get a positive
response back, then we're good to go - the server allows devices
with partial support. Otherwise, we fail as we always have - with
the toast indicating that the device doesn't support required
policies
* Remove PolicySet.isSupported() and ensure proper field ranges
within the constructor
* Update tests as appropriate

Bug: 2759782
Change-Id: Ida5663a9b35c75ecc61a5f442be0bd60b433cb73
ndroid/email/SecurityPolicy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
7a1a203786f10b60393efdec606cea416aa99e16 15-Jul-2010 Marc Blank <mblank@google.com> am e43b11ba: Handle correction of rejected Ping heartbeat

Merge commit 'e43b11ba3e9be9380b7c43cde3117c6de28f28bd' into gingerbread

* commit 'e43b11ba3e9be9380b7c43cde3117c6de28f28bd':
Handle correction of rejected Ping heartbeat
ed833ee7ae22073971ddfe4cd166dc4080d2e7a1 14-Jul-2010 Marc Blank <mblank@google.com> Merge "Make sure signature is added to reply/forward"
d73d8e4839140430da5b2e325635f1ff94716574 14-Jul-2010 Makoto Onuki <omakoto@google.com> Use ListFragment.setListAdapter, not ListView.setAdapter.

Otherwise ListFragment wouldn't notice an adapter is set.

Bug 2841063

Change-Id: Iddb40125020ee2b72ed72b93643582929dc7f7eb
ndroid/email/activity/AccountFolderListFragment.java
ec29471c7349a9e0b688b90b75e405f8da71540f 05-Jul-2010 Marc Blank <mblank@google.com> Make sure signature is added to reply/forward

* Add this to processSourceMessage in the reply/forward cases
* Add unit tests for reply and forward case

Bug: 2734321
Change-Id: I6be8383fe5f217a4bda8e669cb69f439bc8e96b6
ndroid/email/activity/MessageCompose.java
18452ba28c29de83506cf34945ae8dc502cb0818 14-Jul-2010 Marc Blank <mblank@google.com> Replace line of code lost in Change I9997ac96

* During refactor of referenced change, a critical line of code
got lost; it's replaced in this CL

Change-Id: Ib6f405cdfa120f5cb5c879ab0f7df52d54970cb7
ndroid/email/service/EasAuthenticatorService.java
e43b11ba3e9be9380b7c43cde3117c6de28f28bd 13-Jul-2010 Marc Blank <mblank@google.com> Handle correction of rejected Ping heartbeat

* Handle status 5 for Ping command (heartbeat of out range)
* Write unit test for heartbeat reset

Bug: 2834195
Change-Id: Ic7952a4b296cf15c6ba895d6579fe7956b171e5b
ndroid/exchange/EasSyncService.java
ndroid/exchange/IllegalHeartbeatException.java
ndroid/exchange/adapter/PingParser.java
de0a1c33c9507e96d554ca645d42d07f1241157e 01-Jul-2010 Makoto Onuki <omakoto@google.com> Extract MessageListTask and make it self-contained.

Introducing MessageOrderManager which maintains a message list for
MessageView. It's used to tell if there is newer/older messages
in a mailbox, and the id of them.

Also, slightly related to this, moved mWaitForLoadMessageId to
ControllerResults where it should belong.

Change-Id: I84e32180c7e84a317f2204bb10ad7245ec022dca
ndroid/email/activity/MessageOrderManager.java
ndroid/email/activity/MessageView.java
e60d3648fdead20a1624eb8766086980666a20c6 07-Jul-2010 Makoto Onuki <omakoto@google.com> Extract presence check logic into its own class.

Change-Id: I12e449ce7f1d10ed4737581e35367eae84a7f29e
ndroid/email/activity/MessageView.java
ndroid/email/activity/PresenceUpdater.java
7f247d1cd316789d2fcab2d1e41fb8af4d7243f8 13-Jul-2010 Makoto Onuki <omakoto@google.com> Disable MessageViewTests

- These tests will probably not make sense with the upcoming UI change.
- Moved testAttachmentWritePermissions to UtilityUnitTests.
It's a test for createUniqueFile, which is now owned by Utility.
- Removed Long.MIN_VALUE hack from MessageView.
New tests should have something better.

Change-Id: I9a09e5e8080a165b010607d1fa3112bcaaab4f90
ndroid/email/activity/MessageView.java
6fe51991542ca9f3eb355dd98d506896f562292d 11-Jul-2010 Marc Blank <mblank@google.com> Merge "New calendar sync adapter tests"
7daacf83a4e789aaab11ef715f42470bcee51bfc 08-Jul-2010 Makoto Onuki <omakoto@google.com> Switch to ListFragment, and use its default layout.

Change-Id: If8dead170a3662cbde87e6ead244363b11db01f6
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
f115d31ae8094ae62176504760d06daf2c9cd482 03-Jul-2010 Marc Blank <mblank@google.com> New calendar sync adapter tests

* Created MockProvider that can be used for testing the results of
ContentProviderOperation's for Calendar/Contacts (we can't use these
within our mock contexts because we can't instantiate the provider
classes within the Email package)
* Wrote some unit tests for MockProvider
* Use MockProvider to test addEvent, in particular how a user's attendee
status is stored, depending on whether the event is new or updated

Change-Id: I97f02d125eb7347726261e12ce70aadc539be1d4
ndroid/exchange/adapter/CalendarSyncAdapter.java
5fcbdcf59febbaaac7f8a2cd28a0027d3883f33c 09-Jul-2010 Marc Blank <mblank@google.com> Merge "Send intro text with SmartForward"
80ee607a7cc784993a48741d0dfbd132cd546985 06-Jul-2010 Marc Blank <mblank@google.com> Send intro text with SmartForward

* We need to include the intro text (--Original Message--, etc.) to
SmartForwards, and somehow this got in a past updat
* Add unit test for forwarding
* Fix unit test for reply so that it works localized

Bug: 2477988
Bug: 2685784
Change-Id: I8d92f00d37a434840ec3eb237f3901cd5dc7ad09
ndroid/email/mail/transport/Rfc822Output.java
7e071d6956076e80a1044989ba2df1235fc7e9f1 09-Jul-2010 Dianne Hackborn <hackbod@google.com> Fix the build -- follow API change.

Change-Id: I7a177a3bbd5b374cfdc2dd708cc8b1acd8c19a92
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageListFragment.java
5b02ecf87cd8e6e11ffd84ff200767f3ebfd66d9 06-Jul-2010 Marc Blank <mblank@google.com> Fix SmartReply/SmartForward in EAS 2.5

* We inadvertently broke this with a recent update that uses Uri
encoding for ItemId and CollectionId in SmartForward/Reply commands.
We need to allow colon (:) however for EAS 2.5; otherwise, sends
fail with HTTP 500
* Update unit test

Bug: 2821684
Change-Id: Ia6bdd2169513d1c13a8174dd599477a35df950f2
ndroid/exchange/EasOutboxService.java
6e4726227498b9aa809cef9cefac0a90bd1777a5 03-Jul-2010 Marc Blank <mblank@google.com> Merge "Interpret "busy" on new events to mean "no response""
b45d26d88b40ab643e9155fed6393c77bf8b5799 03-Jul-2010 Marc Blank <mblank@google.com> Merge "Fix refresh issue w/ mSecurityFlags preference stored as an int"
04ff90aa7ba1513dd27b3ac110eacd5b959ba81e 03-Jul-2010 Marc Blank <mblank@google.com> Merge "Fix broken test"
d07cb4ba4e2ee3022ffc9352eefb6c0f38ddf09b 03-Jul-2010 Marc Blank <mblank@google.com> Fix refresh issue w/ mSecurityFlags preference stored as an int

Bug: 2803604
Change-Id: I150ca8b5049e6aec022819eb768caa1e3c3ce183
ndroid/email/Account.java
fabec4f14a8cf91225b0682720b7c86b09c1dfb5 03-Jul-2010 Marc Blank <mblank@google.com> Fix broken test

Bug: 2731958
Change-Id: I5b16e9d7e4db4eebe6dc9a9956b90dabb54edf4e
ndroid/exchange/utility/CalendarUtilities.java
32db98f8eb146662e086e6c58f1ce188112f2c71 02-Jul-2010 Marc Blank <mblank@google.com> Interpret "busy" on new events to mean "no response"

* The meaning of a busy status of "Busy" is uncertain; it could mean
"Accepted" or "Tentative", depending on whether the event was
created via OWA/Outlook or EAS
* We have interpreted it as "Accepted", which prevents the user from
actually accepting the event (as a state change is required for us
to send updates to the server/organizer)
* This CL changes the behavior such that a newly arriving event with
a "Busy" status is shown as "No response" in the Calendar, thereby
allowing the user to pick from any of the three possible options.

Bug: 2811859
Change-Id: Ie2c375278b79b47dedac02472dfe6e4cf1182b65
ndroid/exchange/adapter/CalendarSyncAdapter.java
c6886ed3ad10a4fd62822991d336f17e69848b1b 30-Jun-2010 Makoto Onuki <omakoto@google.com> Fixing UI for EML files.

For EML,
- No menu
- No older/newer buttons
- No star
- No bottom buttons.

I've started to feel like the two UIs (one for regular messages and the
other for EML files) shouldn't be handled by one class; we probably
should separate them into two different classes. I'll see if I can
do that after fragmentize it.

Bug 2804147

Change-Id: I5ae162af546bfc21af27352c642d6b2a1e16cf0f
ndroid/email/activity/MessageView.java
a0f1dd0a5c55bf845dbf59b90b89bd87bedbf1fb 02-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Cleaning up MessageView"
44b5242edd938450f5e7bc5569852fa5f793da41 30-Jun-2010 Makoto Onuki <omakoto@google.com> Cleaning up MessageView

- Removed dead code/dead comment.
- Moved static utility methods to Utility.
- Renamed some methods.
- Changed the timing to call super methods.

Also:
- Internationalized formatSize()
- Added unit tests for createUniqueFile() and formatSize()
- createUniqueFile now uses File.createNewFile() instead of exists().

Change-Id: Ibc30e15b029ed5088954bd6fc9032e25dddf176e
ndroid/email/Utility.java
ndroid/email/activity/MessageView.java
42ff939e3a8a69ca5937aa5d6a2a932ae2e80752 25-Jun-2010 Marc Blank <mblank@google.com> Prevent MailService from potential looping due to EAS accounts

* The code assumed that all accounts used the scheduler in MailService
whereas only those using MessagingController do so (i.e. EAS does
not)
* Change setupSyncReportsLocked to set the syncInterval for accounts
that don't use MessagingController to Account.CHECK_INTERVAL_NEVER
* Add unit test for the changed code

Change-Id: I74a3dae21d9ec16f9903bdf2a1c28092ae89cc50
ndroid/email/service/MailService.java
42e3f10a9575e277ba6f121e6cac56ddb02fda12 01-Jul-2010 Makoto Onuki <omakoto@google.com> Use "*#*#36245#*#*" to activate the debug screen.

Dial *#*#36245#*#* on the dialer to activate the debug screen.
"36245" = "email"

It's useful when
- There's no keyboard.
- There's no account set up yet.
(You can do it by entering the special username/password on new account
screen, but that's a bit of a pain.)

It's also easier to tell to people.

Also, removed "sensitive logging", which should never be used.

Change-Id: Id692f8b216f2d85abe1880c452d2067f170dac83
ndroid/email/Email.java
ndroid/email/Preferences.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/Debug.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/service/EmailBroadcastProcessorService.java
75f9fab0c7969487f0a451e5a74f0cb43cd3b702 01-Jul-2010 Andy Stadler <stadler@android.com> am a3e021d1: am 3b811ae4: resolved conflicts for merge of fb060de6 to gingerbread

Merge commit 'a3e021d12c96d10f758fb6af3b7a05e85d0d8eeb'

* commit 'a3e021d12c96d10f758fb6af3b7a05e85d0d8eeb':
Explicitly verify certificate hostname on SSL connections
3b811ae4c6bff1204bd08921f5debdb3ad1700b6 01-Jul-2010 Andy Stadler <stadler@android.com> resolved conflicts for merge of fb060de6 to gingerbread

Change-Id: I6ef4bda535650829f994b595d9cb5b57a8775aa5
00360c07b23e52082e921eb47cf7a01d57ac952d 01-Jul-2010 Marc Blank <mblank@google.com> am 4cfaaa95: am 2019792f: am 04396916: Fix regression in Exchange calendar attendee response

Merge commit '4cfaaa9527d1712bbcff4caef8be3957427a0a66'

* commit '4cfaaa9527d1712bbcff4caef8be3957427a0a66':
Fix regression in Exchange calendar attendee response
fb060de65db57607748cbf8bc5b93939281a443f 30-Jun-2010 Andrew Stadler <stadler@android.com> Explicitly verify certificate hostname on SSL connections

When connecting to an IMAP, POP3, or SMTP server using SSL, perform
an explicit test of the certificate's host name against the server's
host name. Refuse connection if they do not match.

Bug: 2807409
Change-Id: Ib223170f1a5d57323a88037ad30fec15c6bbce20
ndroid/email/mail/transport/MailTransport.java
2019792f1f2b98747db25ba11fea35e03b5e73aa 30-Jun-2010 Marc Blank <mblank@google.com> am 04396916: Fix regression in Exchange calendar attendee response

Merge commit '043969163e8629a4d3b583b73dfa29c6e97989c0' into gingerbread

* commit '043969163e8629a4d3b583b73dfa29c6e97989c0':
Fix regression in Exchange calendar attendee response
043969163e8629a4d3b583b73dfa29c6e97989c0 29-Jun-2010 Marc Blank <mblank@google.com> Fix regression in Exchange calendar attendee response

* During the fix of a previous late-Froyo issue, a change was made that
appeared superficially correct, but was semantically incorrect. This
changed the sense of the test for whether a reply email was required
and caused the referenced bug.
* The trivial fix is to replace the test with the (older) proper one

Bug: 2764551

Change-Id: I7c72366252cf0607aee31ee0d76aca96a7d5fc2b
ndroid/exchange/adapter/CalendarSyncAdapter.java
d5b2da371654e3a74702f2b7a2036762c339232f 29-Jun-2010 Andrew Stadler <stadler@android.com> Add ActionBar to MailboxList

Note: This does not appear in UX wireframes, this activity is going
away eventually, but it's a good testbed for ActionBar to be tried out.

Open issues:
1. Waiting for progress indicator support, using unattractive hack
2. Subtitle doesn't seem to work so putting account name in title
(which is the wrong font size for phone portrait mode).

Change-Id: Iee3cac7d4f30ea210bd8f3838b69ed12cd498375
ndroid/email/activity/MailboxList.java
270b0c1f83381d524eb521f95926708448bf4898 29-Jun-2010 Marc Blank <mblank@google.com> Fix reference to Exchange directory provider class

Bug: 2807264
Change-Id: I916dff07e3159b1537619cb7d6f8a082b5094444
ndroid/exchange/provider/ExchangeDirectoryProvider.java
4e366b99959e5be422e6c77ec698f2241f4ff4bf 29-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Always use the mime-type "message/rfc822" for eml files."
5bd2faee5e59ce75cf4b84b6f9b04bc65bedd083 14-Jun-2010 Marc Blank <mblank@google.com> Preliminary GAL/Contacts integration for EAS

Change-Id: I9997ac96f83f427c71caf12d591ba6069bedf935
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/provider/ExchangeDirectoryProvider.java
1d0be30871745ef0e623d8bb5e2e433567541623 29-Jun-2010 Makoto Onuki <omakoto@google.com> Always use the mime-type "message/rfc822" for eml files.

Bug 2795919

Change-Id: Ie20fccdad34d7d17d7444af25d3e57033a45de5a
ndroid/email/provider/AttachmentProvider.java
1a3a3a5aeca27731ef3e8c17356b08c4feb670b7 29-Jun-2010 Marc Blank <mblank@google.com> Merge "Fix problem with unencoded data in URI sent to EAS"
51f5b2f3fabe927ac9512ce5cab8978fb9e1e0b5 28-Jun-2010 Marc Blank <mblank@google.com> Fix problem with unencoded data in URI sent to EAS

* We need to encode the itemId and collectionId for SmartForward and
SmartReply
* Add unit test for the fix
* Small change + test to EasSyncService usage of URI encoding to use
a non-deprecated method

Bug: 2787725
Change-Id: I428b308b56cc359b8cdd9e42bc3f42c65b6797dc
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
744380eabfb0f1389d9f46b00c5056df04734aa2 29-Jun-2010 Andrew Stadler <stadler@android.com> Merge "ActionBar for AccountFolderList"
0d6ce631a1b5c42a12ce6a2ff4af4b324a5c4c4e 29-Jun-2010 Andrew Stadler <stadler@android.com> ActionBar for AccountFolderList

Displays actionbar properly, and the two buttons work.

Submitting with one open issue:
1. The indeterminate progress indicator is not directly supported in the
ActionBar. We're waiting for a UI call or framework support. Until
then there is a placeholder using an incorrect icon to show progress.

Change-Id: Iaf1546931376cc5b540820cd0fc020ebd176dabf
ndroid/email/activity/AccountFolderList.java
8d8f86e899165772a7d91250b98dfc3c0d78b538 25-Jun-2010 Marc Blank <mblank@google.com> Cleanup and speed up isMessagingController

* Use the new Account.getProtocol() method to determine whether an
Account "isMessagingController" (i.e. uses the legacy controller)
* Cache the result of this test, so that it's only done once per
Account
* Add unit test

Change-Id: I6a0ec789a84bdf30b55156e6337a627fb4e81a08
ndroid/email/Controller.java
ndroid/email/provider/EmailContent.java
d6d874f8c6ce2580ef9ec2406fe411af45b2d92d 02-Jun-2010 Marc Blank <mblank@google.com> Streamline security setup flow

* The setup flow is changed such that the user is asked to activate
device administration before leaving the setup flow, rather than
having to wait for the notification to appear, etc.
* Accounts requiring security are created in a security hold state
to prevent initial sync until device administration is active

Change-Id: I7e33cf98466370ae27414b99018f7aee71e9e237
ndroid/email/ExchangeUtils.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/IEmailService.aidl
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
407395751dca5a5e656a91f8ecc5a58116996492 24-Jun-2010 Marc Blank <mblank@google.com> Merge "Fix GAL search in EAS 12.1"
663b57daa793c526c69560225c7a073b1abbc3d6 23-Jun-2010 Marc Blank <mblank@google.com> Fix GAL search in EAS 12.1

* We weren't sending the proper protocol version to GAL search, which
causes errors when using 12.1
* The simple fix is to send the agreed upon protocol version, instead
of the default (which is 2.5)
* Replace parsing of protocol version with lookup

Bug: 2793588
Change-Id: Ib2a255d8467004ce985d2d688b37066e1e09d78a
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
5160a660c4df333b8dc1b19a4687fb17587dec9b 24-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "MessageList: Introducing "selection mode"."
91093ee6e8beb200c90e401c96a9c2a1d820bebc 23-Jun-2010 Makoto Onuki <omakoto@google.com> MessageList: Introducing "selection mode".

- Long-press an item to go into the selection mode.
- In the selection mode, tap items to toggle selected/non-selected.

This also means:
- No checkboxes any more.
- No context menu any more.

Color scheme hasn't been updated yet, so it looks a bit ugly for now.

Change-Id: I3cb6c45c1dc5461a234c9e9ab9e038c90a9fe8b2
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
9b4988de43dbee6c06066caab63806e8c8303d7d 10-Jun-2010 Marc Blank <mblank@google.com> Implement support for new security policies

* Minimum complex characters
* Password history (i.e. disallow re-use of past n passwords)
* Password expiration
* Password expiration is NOT yet supported in the framework; there
is a TODO in this CL and a trivial change will be needed when
support arrives; for now, we report this as unsupported
* The two implemented policies are testable

Change-Id: I477adbc000577c57d1ab1788378c97a60018c10c
ndroid/email/Account.java
ndroid/email/SecurityPolicy.java
ndroid/email/provider/EmailContent.java
ndroid/exchange/adapter/ProvisionParser.java
fa0e6adb727ebf6c739b2ee35a2c9fd5a0e99fab 23-Jun-2010 Marc Blank <mblank@google.com> Merge "Handle empty sync responses in EAS 12.1"
391ae25c43a38829cc0990af18c36bdc7cc374cf 05-May-2010 Marc Blank <mblank@google.com> Handle viewing of attachments that are, themselves, emails

* Add intent filter for application/eml and message/rfc822 mime types,
launching MessageView with a Uri
* Modify loadMessageTask to handle the Uri by parsing the attachment's
input stream with Pop3Message.parse(), and then creating an
EmailProvider message in a special Mailbox created to hold
"attachment" messages
* Delete all "attachment" messages after the parent message is closed
* Add unit tests

Change-Id: I20276ee006b9f05b889f3c808d3dc407cde26d49
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailContent.java
ndroid/exchange/SyncManager.java
3ceeab2f0cc76e35e845a06e65c5143f1f6dd3f7 23-Jun-2010 Marc Blank <mblank@google.com> Handle empty sync responses in EAS 12.1

* Return normally, changing PUSH boxes to PING, as required

Bug: 2787463
Change-Id: I3413b99ff8e41f68dd3b3a09f14b9e8f194ad362
ndroid/exchange/EasSyncService.java
8ade2fe010797be45d5c0f9023e5d76bcc3b50a8 18-Jun-2010 Makoto Onuki <omakoto@google.com> MessageList: Moved screen transition logic to activity.

- Now open, reply, reply-to, forward are handled by activity.
- Renamed onDelete. (I was thinking about renaming more methods, but I ditched
the idea because the current ones aren't that bad.)

Change-Id: Ie88e8cc3c6bd598199cfd9f4cd61d51e8b7023b7
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
291b90fb24214f767485c427739d25842936dff7 18-Jun-2010 Makoto Onuki <omakoto@google.com> Adding method that deletes an account synchronously.

New tests that's under development will need it.

Change-Id: I5abf168dae6ed0e78db4ae82210673decfa9ece7
ndroid/email/Controller.java
e4ecb500916591bb5bf1f6fa0cc2e85cc186cb7d 19-Jun-2010 Andrew Stadler <stadler@android.com> Convert AccountFolderList to use a Fragment

* Introduce AccountFolderListFragment and its layout
* Extract all list-related UI into it
* Fix leaking cursor in AccountsAdapter and add unit test

Change-Id: Ica566847d97927b736f515d434c6691c82343290
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListFragment.java
ndroid/email/activity/AccountsAdapter.java
91d47ccb47e4d4e340854a091d39886fbbadbf15 17-Jun-2010 Makoto Onuki <omakoto@google.com> Cleaning up MessageListFragment.

- Introduced EmptyCallback to avoid the flood of null checks.

- Fixed some TODOs in MessageListFragment.
- Notably, sendPendingMessages() is now handled by the fragment itself,
rather than by the activity.
- Moved two DB accesss from the UI thread to a worker thread.

- Replaced the 'mailboxid < 0' check with isMagicMailbox(), which is more
explicit and easier to understand.

- Renamed some methods in preparation of moving to the activity.

Change-Id: Ie730c2c561050bbfa83a38252fcf09d59238f7ea
ndroid/email/Controller.java
ndroid/email/Utility.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
1d6dab29562eca7978f179be5f5c75f22f44d734 14-Jun-2010 Marc Blank <mblank@google.com> Handle "Allow non-provisionable devices" properly

* Send policy key of "0" when validating; this gets us the policies
even if "Allow..." is enabled (currently, we simply don't see the
policies)
* If we don't support all of the policies, send back the response
code indicating support for partial support. If we get a positive
response back, then we're good to go - the server allows devices
with partial support. Otherwise, we fail as we always have - with
the toast indicating that the device doesn't support required
policies
* Remove PolicySet.isSupported() and ensure proper field ranges
within the constructor
* Update tests as appropriate

Bug: 2759782
Change-Id: I5f354a0e2d81844aff75d8a8a6de3b97f0020c1f
ndroid/email/SecurityPolicy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ProvisionParser.java
34f29c8a7478cf8c85578d176ac27d973ecca7e4 14-Jun-2010 Makoto Onuki <omakoto@google.com> Test for interaction between ImapStore and vendor policy.

Change-Id: I092b3a0f2f40d9aa19f2f61066362099c8b3f50b
ndroid/email/mail/store/ImapStore.java
200afe8c368a1453c8118080584a41a95ba07411 15-Jun-2010 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #1661857 (switch from using meta feed to the new allcalendars feed)"
ecaddea386c9be97fffaee8fa6a2a7d759516ab5 22-May-2010 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #1661857 (switch from using meta feed to the new allcalendars feed)

- update Events.DELETE constant

Change-Id: I3876025d8052d291029ad2bc2bfde2ed241dda2d
ndroid/exchange/adapter/CalendarSyncAdapter.java
2aa8ea4399dd70c26d6c0679ff002fb16fdc5bff 14-Jun-2010 Makoto Onuki <omakoto@google.com> Use Fragment's context menu API.

Change-Id: I1be6b17ff5bc7fd5258366bc064251c6f79c0cc8
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
62c316531c8557e05b33f8c172675265c1e774c2 14-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Introducing MessageListFragment."
601187db42a34b638cc911758b3735bba5d51ada 11-Jun-2010 Makoto Onuki <omakoto@google.com> Introducing MessageListFragment.

- Extracted MessageListFragment out of the MessageList activity.
- This is basically pure extraction, with the following conceptual change.
- Now the MessageList activity doesn't know the mailbox id or
the account id. If it needs these ids, it needs to ask the fragment.
- MessageListFragment.LoadMessagesTask tries to determine the account ID
if it's unknown.

Most code in MessageListFragment is directly copied from MessageList
with minimal changes (e.g. pass mActivity instead of 'this' as a Context).
There's a few cleaning up oppotunities. I'll work on them later in a separate
CL.

Change-Id: Ie004cc49b429f2cd8f9de73df5abb94f3054ea0a
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListFragment.java
75939a7dc8aabfb13bc376a6c9ae7ad4adc24881 12-Jun-2010 Dianne Hackborn <hackbod@google.com> Update to match new fragment context menu API.

Change-Id: I18950e55abd1e72d97f7a62393abe422001ee2f5
ndroid/email/activity/MailboxListFragment.java
9cbc6721c76b0f066faeb0c619a0920218567241 12-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Fix NPE in Controller and MessagingController."
7e1de3c484ad0faa5f2d789649c1b4979e071044 11-Jun-2010 Makoto Onuki <omakoto@google.com> Fix NPE in Controller and MessagingController.

Bug 2553401
Bug 2186777
Bug 2721133
Bug 2684365
Bug 2530534

Change-Id: I5185d9196deab5ba3a9866e2de2a9be04a04ca03
ndroid/email/Controller.java
ndroid/email/MessagingController.java
5dfc6c91250d58860036fe44bf9cae0bb85387e2 12-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Extract MockVendorPolicy, add standard mechanism to inject it."
36d3dfaeac1a80561ef41a78ecc9bf3583d0ca7b 11-Jun-2010 Makoto Onuki <omakoto@google.com> Extract MockVendorPolicy, add standard mechanism to inject it.

One thing that bothers me regarding the new ImapStore is that there is no
tests to verify if the way how getImapId() uses a vendor policy hasn't changed.
This part is hard to test with a real vendor policy, and it can easily be
overlooked even if it's broken.

This CL offers ImapStoreUnitTests a way to test the interaction between
getImapId() and a vendor policy.

Also fixed a bug in VendorPolicyLoaderTest where it assumed the test apk
package name is "com.android.email.tests", but it may actually be
"com.google.android.email.tests" now. (Broken since the test makefile
used inherit-package.)

Change-Id: I8feb616ea28cb5cae5b4fba57e363771014ac599
ndroid/email/VendorPolicyLoader.java
b2422f28d0897f9795e698c2aaba68156e794cbd 11-Jun-2010 Marc Blank <mblank@google.com> am 7a358316: Merge "Work around problem w/ large CalendarProvider2 transactions" into froyo

Merge commit '7a358316ae1c52fadf7ce8470fc5d257d1a71eaa' into gingerbread

* commit '7a358316ae1c52fadf7ce8470fc5d257d1a71eaa':
Work around problem w/ large CalendarProvider2 transactions
826c83a2310342217c1e58aeafdd397b75d40b72 10-Jun-2010 Marc Blank <mblank@google.com> Work around problem w/ large CalendarProvider2 transactions

* We're seeing binder transaction failures when we try to send more than around
1500 CPO's to CalendarProvider2 in a batch (the limit is related to memory
usage in binder transactions)
* When an event has A attendees and E exceptions in an event, we currently must
create A*E CPO's; this number can become very large and cause a binder failure
* The result of a failure is looping behavior, resulting in failed sync and very
much reduced battery life
* The workaround here is to redact all non-organizer and non-user attendees from
exceptions once we reach half of the maximum number of CPO's. This has been
determined empirically and is set to 500 CPO's in this CL
* We also reduce our sync "window" to 4 calendar/contact items per sync command
to help limit the potential size of our batch
* For later releases, we should reconsider this and see if something that is more
of a "fix", rather than a workaround, can be implemented

Bug: 2760514
Change-Id: I06ca1a1ae88c772342a9e46b5997c41678e95144
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
9d56a515e67e48fe1323e1b2a7b7e8d3ad42d334 11-Jun-2010 Marc Blank <mblank@google.com> Merge "Work around problem w/ large CalendarProvider2 transactions"
5c34594dba238d2021996ee3dbea7312ee03b290 10-Jun-2010 Marc Blank <mblank@google.com> Work around problem w/ large CalendarProvider2 transactions

* We're seeing binder transaction failures when we try to send more than around
1500 CPO's to CalendarProvider2 in a batch (the limit is related to memory
usage in binder transactions)
* When an event has A attendees and E exceptions in an event, we currently must
create A*E CPO's; this number can become very large and cause a binder failure
* The result of a failure is looping behavior, resulting in failed sync and very
much reduced battery life
* The workaround here is to redact all non-organizer and non-user attendees from
exceptions once we reach half of the maximum number of CPO's. This has been
determined empirically and is set to 500 CPO's in this CL
* We also reduce our sync "window" to 4 calendar/contact items per sync command
to help limit the potential size of our batch
* For later releases, we should reconsider this and see if something that is more
of a "fix", rather than a workaround, can be implemented

Bug: 2760514
Change-Id: I2941b392ae1058a9ead8a79f0ac73f4eb345917d
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
8cd8694b63f9fb41b85473e709e20957d7f7adbf 10-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Renaming MessageListAdapter to MessagesAdapter"
851f3219e2bbcfb9c02c439d84d0885d890ded8d 09-Jun-2010 Makoto Onuki <omakoto@google.com> Renaming MessageListAdapter to MessagesAdapter

in line with MailboxesAdapter.

Change-Id: I4ed387db2f5ce1f9bad282521c62eeec0c697db4
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListAdapter.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessagesAdapter.java
d92abd08fc38b7129288ae76a5bfdd705c8302c9 08-Jun-2010 Marc Blank <mblank@google.com> Stop log spew from SyncManager

Bug: 2734841
Change-Id: I9f14e4a4bfcd09c4e60ec4df2d7fc5cc7ef0aa51
ndroid/exchange/SyncManager.java
954bcd45b0c9febfb41bb0dc3dde2eca7559a290 04-Jun-2010 Makoto Onuki <omakoto@google.com> Move account deletion feature to Controller.

Change-Id: Icd3a7cc4ff0db8fb65d3e01868543e7ce8ea79e7
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/activity/AccountFolderList.java
3f545a4060982b8a5d715905c7818d59056c1ee0 07-Jun-2010 Makoto Onuki <omakoto@google.com> Controller rework.

- Controller.Result is now a class rather than an interface,
so subclasses don't have to implement empty methods.

- Replaced Threads with AsyncTasks, which is more light weighted
because it uses pooled threads.

- Removed the Result argument from Controller's methods.
These argumetns weren't used, except in serviceCheckMail.

Regarding serviceCheckMail, the new code behave differenly from the old code.
If there's already listeners registered when it's colled, they wouldn't get
called in the old code, but they will in the new code.
But I think this difference is okay because that's how it works for
POP/IMAP accounts.

Change-Id: I37a857ce7c089c1a411cb7f1fcfcb72c9f5fd2a6
ndroid/email/Controller.java
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/service/MailService.java
80091c8ef7cc1a9508951910574d7c41772bb0b2 08-Jun-2010 Andrew Stadler <stadler@android.com> Refactor MailboxList to use Fragment API

* Moves all list-related implementation to new MailboxListFragment
* One item that remains to be done is to remove the dependency on the
activity for handling context menu (longpress) in the list.

Change-Id: I7b5769d9d81fb685cf480de3d3e18b4e1c078f2d
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxListFragment.java
ndroid/email/activity/MailboxesAdapter.java
c7b6145c125cf0f9bdd6426db11ee796fe8b1cf1 04-Jun-2010 Makoto Onuki <omakoto@google.com> Fix the cache in Controller.

Turned out we can't reuse EmailServiceProxy, so only cache the account type.

Change-Id: I5499c2440082580d6f0739ae85b888f1afb65ba8
ndroid/email/Controller.java
a00bf4e0d0489fb0df9e4b93331e53d596bbf9fc 04-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Cache for Controller.getServiceForAccount."
b87e999fbceb8a95e22f0f3209e0698e3f1effbb 03-Jun-2010 Makoto Onuki <omakoto@google.com> Cleaning up MessageList

- Removed Handler.
- Refactored FindMailboxTask so it only does DB access on a worker thread.
(Moved the actual task out of doInBackground)
- Removed unused imports, which I forgot when I extracted the adapter.

Change-Id: Ib76ce2ab7901dd39d2ed51d8a61d7be9df55b337
ndroid/email/activity/MessageList.java
768aff4c88a13c1663b1c33b1ab03637e5ce375b 03-Jun-2010 Makoto Onuki <omakoto@google.com> Cache for Controller.getServiceForAccount.

Change-Id: I607c437d6e0781ae8305df22c13a0e3a003c623f
ndroid/email/Controller.java
4a2615e2a587e842390e124def03e90d8772c6d1 01-Jun-2010 Makoto Onuki <omakoto@google.com> Remove Handlers from Activities.

AccountFolderList, MessageCompose and MailboxList.

Also,
- ControllerResultUiThreadWrapper now takes a Handler instead of an Activity.
So that it can be used from a Service as well.

- ControllerResultUiThreadWrapper.getWrappee() to get the wrapped object.
We'll eventually need this.

- I'll work on MessageList too, but the might be relatively
large, so I'll do that in a separate CL

Change-Id: I281d88d5af1834248ec3f7463f0df3f5635149be
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
0a892ae04f0557367a751e1b130e260feccc3c52 02-Jun-2010 Makoto Onuki <omakoto@google.com> Extract MessageListAdapter.

Change-Id: I0e441b7fff925c7703ab88ab54240c5b42d045c4
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListAdapter.java
ndroid/email/activity/MessageListItem.java
0fd444b0b4c07ac1545e0edc64b54fd738edfc94 01-Jun-2010 Makoto Onuki <omakoto@google.com> Implement destroy() for all ImapElement classes.

- This is to make sure we're not touching any ImapResponse that's
already been destroyed.

- I didn't add "is it already destroyed?" check to them
(except for ImapTempFileLiteral), because it can be costly.
Just let NPE be thrown.

Change-Id: Idc7b88c4844727922841cbad8a106bf781181d45
ndroid/email/mail/store/imap/ImapElement.java
ndroid/email/mail/store/imap/ImapList.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
977a7d206a866f07774d98aa2ffa2c51aa057de1 01-Jun-2010 Makoto Onuki <omakoto@google.com> Always destroy ImapResponses.

Unfortunately it's hard to write tests for this change, but at least
all tests pass with Idc7b88c4.

Change-Id: If0335a848dfcc23aecea22c21b2cce73dac7ff6f
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
4a82cd772007f85d6d50c496824df3b2342824a4 02-Jun-2010 Makoto Onuki <omakoto@google.com> Merge "Add TODOs to ImapStore."
5925dab764a10efcb079bd54b03537663a6fa697 02-Jun-2010 Andrew Stadler <stadler@android.com> Merge "Extract MailboxesAdapter from MailboxList"
ca593130854d6dfd742bc87114b49b3543e97be0 02-Jun-2010 Andrew Stadler <stadler@android.com> Extract MailboxesAdapter from MailboxList

* Create MailboxesAdapter
* No unit tests (nothing to test here outside of view binding)

Change-Id: Id3ca06eeffbfe46a6aa683eb212a096496a3129f
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MailboxesAdapter.java
d7470b86876195b07b6208ac7800895289994114 01-Jun-2010 Makoto Onuki <omakoto@google.com> Add TODOs to ImapStore.

Change-Id: I5a9f246eb81cfca6008f82e8c2ffff8b7f28ba1d
ndroid/email/mail/store/ImapStore.java
bf580534063ce6948339ed94edc447e8d1540a4f 29-May-2010 Makoto Onuki <omakoto@google.com> Follow-up to the new IMAP parser.

- Replace string literals in ImapStore with constants.
- Simplifies ImapStore.en/decodeFolderName
- Mix cases in the test data to test for case-insensitivity

Change-Id: I88424357227bcf78528df5e6a1c4ba45d54cc65b
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapConstants.java
3cc80998ba3780e569f5fe201710924cdc0a5446 29-May-2010 Makoto Onuki <omakoto@google.com> Merge "Fix ANR in one time initializer and unify BroadccastReceivers."
898283b6fa4f141d5c2a0831b96b19de11d587b3 28-May-2010 Makoto Onuki <omakoto@google.com> Fix ANR in one time initializer and unify BroadccastReceivers.

- Merged all three BroadcastReceivers into one.
(Changed class name because old ones may have been disabled.)

- Use IntentService to perform the tasks in a worker thread.

Note the new receiver will never be disabled. We always need to start
exchange.SyncManager.

Bug 2722155
Bug 2416929

Change-Id: I8241880fc1ee38d85dcdca7e1d46fc2f6b2d375b
ndroid/email/Email.java
ndroid/email/OneTimeInitializer.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/EmailBroadcastProcessorService.java
ndroid/email/service/EmailBroadcastReceiver.java
ndroid/exchange/BootReceiver.java
7e24c6c6f9efcba98b7e26f9e387b6591acd1355 24-May-2010 Makoto Onuki <omakoto@google.com> Get rid of Handlers and make activities (more) BG thread free.

Part 1: MessageView

- It's an attempt to get rid of Handlers from Activities, and
reduce the amount of code that runs run a BG thread in them.

- Introduced ResultUiThreadWrapper, which wraps another Controller.Result
and make callbacks get called on the UI thread.

- It'll make the logic in ControllerResults cleaner and more straightforward.

- ResultUiThreadWrapper isn't too memory efficient because it allocates a
Runnable even if the wrappee's target method is empty.
However these callbacks don't get called often, and optimizing it would
make code more complicated, so I don't think it's worth optimizing.

- Now we can assume all the methods in activities except
AsyncTask.doInBackground runs on the UI thread, with some special exceptions
like MediaScannerNotifier.
In my previous abandoned change, I named methods that can run on BG threads
'*OnUiThread', but now there's no need to do that.

This also means we can minimize the use of synchronizations.

Change-Id: Ia6d9d2a266ebf5a4b23d712e9eaea3272adbd2a6
ndroid/email/ControllerResultUiThreadWrapper.java
ndroid/email/Utility.java
ndroid/email/activity/MessageView.java
7e5ba0e1eaee76ab6e6c7ea9362348f660796596 20-May-2010 Makoto Onuki <omakoto@google.com> New IMAP parser to fix long-lasting problems.

- Almost completely re-wrote ImapResponseParser layer
- We no longer use simple ArrayList and String to represent
imap response. We have classes for that. (Type safe!)
These classes are also NPE-free.
(which isn't necessarily a good thing, though)
- A lot of clean-ups and fixes in ImapStore.
- More tests for ImapStore.

Now ImapResponseParser moved to com.android.email.mail.store.imap.parser,
but inside, it's 99% new code.

This CL introduces many new classes, but most of them are small classes
to represent the IMAP response.

Problems that this CL fixes includes:
- Special characters in OK response
- Handling BYE response
- Case sensitivity
- ClassCast/ArrayIndexOutOfBound/NumberFormatException
- Handling NIL/literals at any position

Bug 2480227
Bug 2244049
Bug 2138981
Bug 1351896
Bug 2591435
Bug 2173061
Bug 2370627
Bug 2524881
Bug 2525902
Bug 2538076

Change-Id: I7116f57fba079b8a5ef8d5439a9b3d9a9af8e6ed
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/Utility.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Message.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/imap/ImapConstants.java
ndroid/email/mail/store/imap/ImapElement.java
ndroid/email/mail/store/imap/ImapList.java
ndroid/email/mail/store/imap/ImapMemoryLiteral.java
ndroid/email/mail/store/imap/ImapResponse.java
ndroid/email/mail/store/imap/ImapResponseParser.java
ndroid/email/mail/store/imap/ImapSimpleString.java
ndroid/email/mail/store/imap/ImapString.java
ndroid/email/mail/store/imap/ImapTempFileLiteral.java
50adf5369cec4d551b7cff286c86b6cfc15edd40 28-May-2010 Andrew Stadler <stadler@android.com> Merge "Refactor AccountsAdapter into its own class."
f3c285d4a30dfd1ab6b8f1963f6ae8d936447d35 28-May-2010 Andrew Stadler <stadler@android.com> Refactor AccountsAdapter into its own class.

* Extract AccountAdapter from AccountFolderList
* Use callback instead of hardcoded launch of MailboxList
* Unit tests

Change-Id: Icafce1ef73a99fb61985c649620440656f9b51a3
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListItem.java
ndroid/email/activity/AccountsAdapter.java
9d387ff0bb88ad952b53c956b468dcbcec248752 20-May-2010 Marc Blank <mblank@google.com> Fix validation use of FolderSync

* To avoid having to use a mock deviceId with FolderSync in validation, we now
simply use the real deviceId with the correct SyncKey ("0" for a new account,
or the actual sync key if the account already exists)
* Rework utility code that finds existing accounts
* Write unit test for findExistingAccount

Bug: 2589243
Change-Id: Ia532b2e209aec3aa01ca06617b4da78c3d986b32
ndroid/email/Utility.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/exchange/EasSyncService.java
86f122e4ce538e17d37c402518495f5b746099f1 28-May-2010 Marc Blank <mblank@google.com> Merge "Implement basic EAS 12.1 functionality"
c1840b2c9d09778064e784c72826db9b05ee58fd 28-May-2010 Marc Blank <mblank@google.com> am 930cdbd8: am 77e21615: am 8c742a4c: Handle case of null organizerEmail in changed event
f07d85b5f4a377f9a65b75f665c3588681e3b895 27-May-2010 Marc Blank <mblank@google.com> Implement basic EAS 12.1 functionality

* Support required protocol changes
* Handle new security policies based on current device capabilities

Change-Id: Id1d629d41d957911344e6c503d28418f5e7e1386
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
ndroid/exchange/adapter/Tags.java
930cdbd8babf61dfabbb6f8dea6a74adaa6124c3 27-May-2010 Marc Blank <mblank@google.com> am 77e21615: am 8c742a4c: Handle case of null organizerEmail in changed event

Merge commit '77e2161559467ac94ffdbaa2d51716354741ae17' into kraken

* commit '77e2161559467ac94ffdbaa2d51716354741ae17':
Handle case of null organizerEmail in changed event
77e2161559467ac94ffdbaa2d51716354741ae17 27-May-2010 Marc Blank <mblank@google.com> am 8c742a4c: Handle case of null organizerEmail in changed event

Merge commit '8c742a4c65e1ff2618e1005803edb65a42994fb6' into froyo-plus-aosp

* commit '8c742a4c65e1ff2618e1005803edb65a42994fb6':
Handle case of null organizerEmail in changed event
8c742a4c65e1ff2618e1005803edb65a42994fb6 27-May-2010 Marc Blank <mblank@google.com> Handle case of null organizerEmail in changed event

* A recent change assumed that organizerEmail couldn't be null while
an event was being added. However, there is an unusual case in
which it CAN be null, and this CL handles that case
* Regression caused by: SHA 7f448dcd470ac509a85368a84f5a55c346ae7e70
Bug: 2719254
Change-Id: Idb8fc79c898bcd2e53fcc8b3e42d0ba67ba762fa
ndroid/exchange/adapter/CalendarSyncAdapter.java
d77977fb801294ccc1d80f1c969149ab9e23ae43 26-May-2010 Marc Blank <mblank@google.com> am 5e22fef1: am 17c8b338: am b6a08f68: Remember to store modified organizerEmail
4da72702cf3cf47b808e5243f274499d64c79a60 26-May-2010 Marc Blank <mblank@google.com> am 5d8df0fb: am d3951041: am 7f448dcd: Limit the number of attendees in a synced event
5e22fef1c75ef10d8543601648cb39beed4a898a 26-May-2010 Marc Blank <mblank@google.com> am 17c8b338: am b6a08f68: Remember to store modified organizerEmail

Merge commit '17c8b3388c1aceb5a4886f7d783e1db1913d9d05' into kraken

* commit '17c8b3388c1aceb5a4886f7d783e1db1913d9d05':
Remember to store modified organizerEmail
17c8b3388c1aceb5a4886f7d783e1db1913d9d05 26-May-2010 Marc Blank <mblank@google.com> am b6a08f68: Remember to store modified organizerEmail

Merge commit 'b6a08f68d7c49835fffed0719e99c13b50fa525c' into froyo-plus-aosp

* commit 'b6a08f68d7c49835fffed0719e99c13b50fa525c':
Remember to store modified organizerEmail
b6a08f68d7c49835fffed0719e99c13b50fa525c 26-May-2010 Marc Blank <mblank@google.com> Remember to store modified organizerEmail

Bug: 2709816
Change-Id: Ib26536c127857fa8a1fdf805469872419931f21c
ndroid/exchange/adapter/CalendarSyncAdapter.java
5d8df0fbc351e36d02d450cc95cabaf0ead9dad4 26-May-2010 Marc Blank <mblank@google.com> am d3951041: am 7f448dcd: Limit the number of attendees in a synced event

Merge commit 'd3951041f613008dcbd3cd4b3ddebdad5ccab806' into kraken

* commit 'd3951041f613008dcbd3cd4b3ddebdad5ccab806':
Limit the number of attendees in a synced event
d3951041f613008dcbd3cd4b3ddebdad5ccab806 26-May-2010 Marc Blank <mblank@google.com> am 7f448dcd: Limit the number of attendees in a synced event

Merge commit '7f448dcd470ac509a85368a84f5a55c346ae7e70' into froyo-plus-aosp

* commit '7f448dcd470ac509a85368a84f5a55c346ae7e70':
Limit the number of attendees in a synced event
7f448dcd470ac509a85368a84f5a55c346ae7e70 25-May-2010 Marc Blank <mblank@google.com> Limit the number of attendees in a synced event

* If there are over 50 attendees in an event, we only store the
organizer as an attendee (the rest are redacted) and we set
the hasAttendeeData flag to 0
* If the user is the organizer, we reset the owner of the event
to a bogus address, which causes the UI to prevent edits to
the event (we can't upload without losing all of the attendee
information on the server). We also prevent the event from ever
being uploaded (belt & suspenders)
* If the user is an attendee, we allow changes to be uploaded
(this would be attendee status and free/busy), but the list of
attendees on the server is removed.
* We also mark events with redacted attendees, even though we don't
use that information currently. In a future version, however,
we could use this to indicate the redacted state to the user.

Bug: 2709816
Change-Id: I2b44af59c598cedf906af12bf9b4eaf7484b9d20
ndroid/exchange/adapter/CalendarSyncAdapter.java
fd2872ac782adb9050cc91279a9978e58c5509cf 25-May-2010 Marc Blank <mblank@google.com> am 18abfe00: am ff1af297: am 8752159c: Fix critical typo in CalendarSyncAdapter
18abfe003198a7a518924447c780d1793eb25247 25-May-2010 Marc Blank <mblank@google.com> am ff1af297: am 8752159c: Fix critical typo in CalendarSyncAdapter

Merge commit 'ff1af297676c0c86c72c6639785d7773ed9ce486' into kraken

* commit 'ff1af297676c0c86c72c6639785d7773ed9ce486':
Fix critical typo in CalendarSyncAdapter
ff1af297676c0c86c72c6639785d7773ed9ce486 25-May-2010 Marc Blank <mblank@google.com> am 8752159c: Fix critical typo in CalendarSyncAdapter

Merge commit '8752159c7d081e7ea4d870ae29de6e58da7d50be' into froyo-plus-aosp

* commit '8752159c7d081e7ea4d870ae29de6e58da7d50be':
Fix critical typo in CalendarSyncAdapter
8752159c7d081e7ea4d870ae29de6e58da7d50be 25-May-2010 Marc Blank <mblank@google.com> Fix critical typo in CalendarSyncAdapter

* Used wrong name for column

Bug: 2703075
Change-Id: I8107bd2df4fdc2ee79d126a657383b46317d0495
ndroid/exchange/adapter/CalendarSyncAdapter.java
838beeb6217446c1b18b5fc297370fd1914d1ffc 25-May-2010 Marc Blank <mblank@google.com> am 719d29bd: am 4c8adbc4: am 027a6ddf: Merge "Fix bugs related to TZ handling for all-day events" into froyo
719d29bdcd0098955e53458f746e6885f9ad652f 25-May-2010 Marc Blank <mblank@google.com> am 4c8adbc4: am 027a6ddf: Merge "Fix bugs related to TZ handling for all-day events" into froyo

Merge commit '4c8adbc4aa81308e57ae129e9587ec50483af6a8' into kraken

* commit '4c8adbc4aa81308e57ae129e9587ec50483af6a8':
Fix bugs related to TZ handling for all-day events
4c8adbc4aa81308e57ae129e9587ec50483af6a8 25-May-2010 Marc Blank <mblank@google.com> am 027a6ddf: Merge "Fix bugs related to TZ handling for all-day events" into froyo

Merge commit '027a6ddfaa7228854cb3c4238434f87fc69078b6' into froyo-plus-aosp

* commit '027a6ddfaa7228854cb3c4238434f87fc69078b6':
Fix bugs related to TZ handling for all-day events
027a6ddfaa7228854cb3c4238434f87fc69078b6 25-May-2010 Marc Blank <mblank@google.com> Merge "Fix bugs related to TZ handling for all-day events" into froyo
3e065170f3374ecb78af2e68bcb28040b83fd928 22-May-2010 Marc Blank <mblank@google.com> Fix bugs related to TZ handling for all-day events

* In bug 2703075, all-day events from time zones at GMT or later
appear a day early; this is because the time was calculated from
the GMT date/time of the event rather than the local date/time of
the event; this CL correctly changes this to use local date/time
* In bug 2707966, device-edited all-day events disappear in Outlook
and OWA after upsync; this is due to the fact that we store all-day
events in UTC on device, whereas we need to upload all-day events
using the original (local) time zone. In this CL, we save away
the original time zone and use it on upsync
* In our decoding of Exchange time zone information, we default to
local time when we can't find a time zone that matches the bias
and DST information; we should really default to a time zone with
the same bias, if one exists; we do that in this CL.
* Add/modify unit tests

Bug: 2703075
Change-Id: Id80c481ecc0eae980b2e91dae7f105f924cfca28
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
019f58c0943b277445a27d0339bcbf331ea3561c 25-May-2010 Marc Blank <mblank@google.com> am 5c0f3b33: am 6bd7a167: Fix problem w/ sync of large calendars (never syncs)

Merge commit '5c0f3b332f6104d6526d546a470cf7eb9978de47' into kraken

* commit '5c0f3b332f6104d6526d546a470cf7eb9978de47':
Fix problem w/ sync of large calendars (never syncs)
5c0f3b332f6104d6526d546a470cf7eb9978de47 25-May-2010 Marc Blank <mblank@google.com> am 6bd7a167: Fix problem w/ sync of large calendars (never syncs)

Merge commit '6bd7a167249727f4b7d4d4cfe713be421f400e51' into froyo-plus-aosp

* commit '6bd7a167249727f4b7d4d4cfe713be421f400e51':
Fix problem w/ sync of large calendars (never syncs)
6bd7a167249727f4b7d4d4cfe713be421f400e51 21-May-2010 Marc Blank <mblank@google.com> Fix problem w/ sync of large calendars (never syncs)

* While working w/ Microsoft on this issue, we determined that Windows
Mobile 6.0 does not suffer from this issue; when we compared our
logs with those from the WM client, we noticed a difference in the
commands being sent to the server on initial sync (we send some extra
options whereas WM doesnot)
* As an experiment, I removed these options from the initial
sync, and this change solved the problem with a persistently unsyncable
account (time to receive: 60-70 seconds vs. > 240 seconds).
* The fix is to remove all "options" from the initial sync for a given
collection (i.e. with SyncKey=0)
* Note that Microsoft's documentation does not generally address the issue
of what should/should not be sent in an initial sync command

Bug: 2569162
Change-Id: Ib20ea56fb380ee8c9a01b139f7fa98b7ff505e7a
ndroid/exchange/EasSyncService.java
164c5004e7b07664a26be0a87d5dc8ddc3fcc9e4 21-May-2010 Marc Blank <mblank@google.com> Merge "Fix problem w/ sync of large calendars (never syncs)"
a12fc1e9760c8927127737c22d57d51bc9a80af6 21-May-2010 Marc Blank <mblank@google.com> Fix problem w/ sync of large calendars (never syncs)

* While working w/ Microsoft on this issue, we determined that Windows
Mobile 6.0 does not suffer from this issue; when we compared our
logs with those from the WM client, we noticed a difference in the
commands being sent to the server on initial sync (we send some extra
options whereas WM doesnot)
* As an experiment, I removed these options from the initial
sync, and this change solved the problem with a persistently unsyncable
account (time to receive: 60-70 seconds vs. > 240 seconds).
* The fix is to remove all "options" from the initial sync for a given
collection (i.e. with SyncKey=0)
* Note that Microsoft's documentation does not generally address the issue
of what should/should not be sent in an initial sync command

Bug: 2569162
Change-Id: I69642cc0097296956029485abb85ac750303c865
ndroid/exchange/EasSyncService.java
968be441b4c253668c4ee1c7a3f8e4b0eb12cf24 21-May-2010 Makoto Onuki <omakoto@google.com> Don't store arbitrary Context in singletons, which causes memory leak.

We have singletons that store a Context passed to getInstance().
The problem is that when we call them, we casually pass any Context at hand.
If it's an activity (which is often the case), it'll never be GCed.

This CL make them store the application context insteaed.

Change-Id: I1abcc2c08d3f8201416d6c14720f041693823b4e
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/SecurityPolicy.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
4f0186c60819e1b06c1018c30f259282e0ae36b2 20-May-2010 Makoto Onuki <omakoto@google.com> Clean up ImapStore and related classes.

- Introduce Fetchable
- Made static some methods/nested classes in ImapStore
- Removed ImapBodyPart
- Fixed lien breaks

Change-Id: Iec1aff2771faa28717753d6e2d9db96d940233a9
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Fetchable.java
ndroid/email/mail/Part.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/store/ImapStore.java
ee1d2c024f3c9bc6f375ce4ecdc6da28760600eb 20-May-2010 Marc Blank <mblank@google.com> am d0ee1de1: am 274492db: Allow limited looping requests in sync

Merge commit 'd0ee1de12c322138d2db2f79a276ce5ddd20d22d' into kraken

* commit 'd0ee1de12c322138d2db2f79a276ce5ddd20d22d':
Allow limited looping requests in sync
d0ee1de12c322138d2db2f79a276ce5ddd20d22d 20-May-2010 Marc Blank <mblank@google.com> am 274492db: Allow limited looping requests in sync

Merge commit '274492db09d464879903debf6645443b9be9a957' into froyo-plus-aosp

* commit '274492db09d464879903debf6645443b9be9a957':
Allow limited looping requests in sync
5503e3cf7bda8fddb1654117b94cc01871a1e390 19-May-2010 Makoto Onuki <omakoto@google.com> Merge "More tests for IMAP, clean up, and a few bug fixes."
c8a235e1f96cf36ae33a9af5085b8bd7fb73db04 19-May-2010 Marc Blank <mblank@google.com> Merge "Allow limited looping requests in sync"
cbe4ae9291160877f6664289e3713d5ef792bca5 19-May-2010 Makoto Onuki <omakoto@google.com> More tests for IMAP, clean up, and a few bug fixes.

- A few new tests in ImapStoreUnitTests.
- Added TODOs to ImapStoreUnitTests (for mainly NO response handling)
- Renamed ImapStore.releaseConnection to poolConnection.
- Fixed a bug in getConnection where it'd return a closed connection.
- Now getConnection() hanles BYE response for NOOP correctly and treat the
connection as closed.

Change-Id: I48e5b89049338f7d4f1ac77cd7ac7243945a9575
ndroid/email/mail/store/ImapStore.java
e034a5e36621072d81b3d3a85b9706c5ae0e5387 19-May-2010 Marc Blank <mblank@google.com> Allow limited looping requests in sync

* Microsoft has documented cases in which the server can continue to
send MoreAvailable=true even when no new data is received. This
can cause looping behavior, which we stop when we recognize it.
* This workaround, however, can prevent the situation from resolving
itself, and lead to delayed sync (up to a few hours has been noticed)
* In this limited CL, we allow the sync to loop up to a maximum number
of times before stopping it forcibly.

Bug: 2685984
Change-Id: I85981b85b71c4e7d53e69da2520543e8ef04c889
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/EmailSyncAdapter.java
274492db09d464879903debf6645443b9be9a957 19-May-2010 Marc Blank <mblank@google.com> Allow limited looping requests in sync

* Microsoft has documented cases in which the server can continue to
send MoreAvailable=true even when no new data is received. This
can cause looping behavior, which we stop when we recognize it.
* This workaround, however, can prevent the situation from resolving
itself, and lead to delayed sync (up to a few hours has been noticed)
* In this limited CL, we allow the sync to loop up to a maximum number
of times before stopping it forcibly.

Bug: 2685984
Change-Id: I2913b7e3438f6180c3c440508fab892176a06540
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/EmailSyncAdapter.java
2552b7b705ef2253501e09b0bd4284ea42c26762 18-May-2010 Makoto Onuki <omakoto@google.com> More test for ImapStore/ImapFolder.

- Also, fixed a potential crash in getMessages().
It could happen when a client is gettign a message list while
another client is removing messages.

Change-Id: I04b1de6bc384cffb7a5286bcec0a349a3d62a623
ndroid/email/mail/store/ImapStore.java
19aeefd532280440509628ca0f33a2a419bf59f6 18-May-2010 Makoto Onuki <omakoto@google.com> Merge "Tests for IMAP FETCH"
7d3519151a34792956cfc2b63bd2735fd0202d54 18-May-2010 Makoto Onuki <omakoto@google.com> Tests for IMAP FETCH

Adding regression test for the new IMAP parser.

Change-Id: Iac7f5c022e44ca5f06f735e145af15cc459eb61f
ndroid/email/mail/internet/MimeMultipart.java
2ac2c224d63c30018311ea6aa5fae478c64067fb 18-May-2010 Marc Blank <mblank@google.com> Merge "Fix issue found by FindBugs"
128fb393e8ed613c2ce283c0bd51684af2ba444d 23-Apr-2010 Makoto Onuki <omakoto@google.com> Relax MIME date parser.

Make the date parser accept invalid dates like
"Thu, 10 Dec 09 15:08:08 GMT-0700" which was observed in an email from eBay.

Per RFC, timezone must be either obs-zone (e.g. "GMT") or +/- with 4 digits.
The GMT+/-digits format is not permitted.

Bug 2367124

Change-Id: I59968274160aeadea70223208b463ee692660056
ndroid/email/Utility.java
0a8030562a5235591a5f5364bf5e6855ffa62861 17-May-2010 Makoto Onuki <omakoto@google.com> Fix flaky tests

Follow up to I3bf7d340. Make sure temp directory is set before running tests.

Turned out Application.onCreate doesn't seem to be guaranteed to be run
before unit tests.

Without this, some tests may fail saying: "TempDirectory not set.
Application hasn't started??", if onCreate runs too late.

Change-Id: Ic5aee939a2c21f9579a643d0729dd0e9ba81022e
ndroid/email/Email.java
5a69403c03787ec960cc80fedc59dc7720791115 17-May-2010 Marc Blank <mblank@google.com> Fix issue found by FindBugs

Bug: 2664472
Change-Id: I861d1a1a3f8f6af4cb62c67b6acfb2c03bcba721
ndroid/exchange/adapter/ContactsSyncAdapter.java
2ca4383fad92b7ce4cf952e468526f75cf802d81 17-May-2010 Marc Blank <mblank@google.com> Fix build break caused by wonky imports

Change-Id: Ib12a70222ac3fd9e65bec3834c0aae061858776c
ndroid/exchange/SyncManager.java
2b0375b379ca669cedfdccf953195ac3ec23c7a0 04-May-2010 Marc Blank <mblank@google.com> Reorganize startup/shutdown code in SyncManager

* Move all thread-related startup code into run()
* Move all thread-related shutdown code into new method shutdown()
* Add appropriate synchronization during startup/shutdown
* Add thread names to worker threads

Bug; 2645835

Change-Id: Idbd35892cea3de5fbd365102a62103b2f0bdf6c9
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
9580f6175da4c5df4b8aa13242aaef8c922dec05 03-May-2010 Makoto Onuki <omakoto@google.com> Don't sync when the background data system setting is off.

Bug 2494703

Change-Id: Ia6f4c9fc86cdcb5ca3276141cb84b4effb6ee87c
ndroid/email/service/MailService.java
6bdd7998c3278a35ff036d87cbd99c044f1e5e6e 14-May-2010 Makoto Onuki <omakoto@google.com> Merge "Simplify MessageRetrievalListener."
dbbd2ba22c63f38c268c1c33e285cfcc50f6da27 13-May-2010 Makoto Onuki <omakoto@google.com> Simplify MessageRetrievalListener.

Main motivation: not to make the new IMAP parser too complecated.

- Removed messageRetrieved.
Motivation:
- It's not easy to call messageRetrieved() at the proper timing
from the new IMAP parser, and this method wasn't used anyway.

- Renamed messageFinished to messageRetrieved.
And removed the "number" and "ofTotal" arguments.
Motivation:
- They weren't used. Also there was inconsistency about
what to pass as "numebr". (i.e. 0-based or 1-based?) There was
even a bug that caused passing a wrong number.

Change-Id: If92dbfe681b78a0eea8125188ede63a8f00dcf49
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
ndroid/email/mail/MessageRetrievalListener.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
feec136ee283daa7e829240a73fcf5cb85be0134 14-May-2010 Makoto Onuki <omakoto@google.com> Merge "Add static method to get temp dir in Email."
837056ebc2dcae867f9954d1dad145877dc655a5 14-May-2010 Marc Blank <mblank@google.com> am 19025fda: am c7931b07: am e0ebcd8e: Test for NPE in EasSyncService during alarm() call
19025fda2430d6c2035ccede053a8179a6f97e74 14-May-2010 Marc Blank <mblank@google.com> am c7931b07: am e0ebcd8e: Test for NPE in EasSyncService during alarm() call

Merge commit 'c7931b07e605bca3b59f295877fea7f163001a66' into kraken

* commit 'c7931b07e605bca3b59f295877fea7f163001a66':
Test for NPE in EasSyncService during alarm() call
c7931b07e605bca3b59f295877fea7f163001a66 14-May-2010 Marc Blank <mblank@google.com> am e0ebcd8e: Test for NPE in EasSyncService during alarm() call

Merge commit 'e0ebcd8e6c04fc3d39844722bce74abe540bfe3c' into froyo-plus-aosp

* commit 'e0ebcd8e6c04fc3d39844722bce74abe540bfe3c':
Test for NPE in EasSyncService during alarm() call
e0ebcd8e6c04fc3d39844722bce74abe540bfe3c 13-May-2010 Marc Blank <mblank@google.com> Test for NPE in EasSyncService during alarm() call

Bug: 2681197
Change-Id: I1795f81ef5a41440fa6fa17f278562fc076dff3f
ndroid/exchange/EasSyncService.java
c4c1ae7cd31d9ec4751d168dd91e44d7b288b611 14-May-2010 Andrew Stadler <stadler@android.com> am 019f14cb: am 1a9ea35b: am 3778b3ed: Try autodiscover with bare name if we get 401 with address
019f14cb03e51a1d8d9ae39e513d2f30711b690c 14-May-2010 Andrew Stadler <stadler@android.com> am 1a9ea35b: am 3778b3ed: Try autodiscover with bare name if we get 401 with address

Merge commit '1a9ea35b93f29c589d3e31d70567f076b2bbb26b' into kraken

* commit '1a9ea35b93f29c589d3e31d70567f076b2bbb26b':
Try autodiscover with bare name if we get 401 with address
1a9ea35b93f29c589d3e31d70567f076b2bbb26b 14-May-2010 Andrew Stadler <stadler@android.com> am 3778b3ed: Try autodiscover with bare name if we get 401 with address

Merge commit '3778b3ed7ee505c00fa7cd3b1af37cbe54de244a' into froyo-plus-aosp

* commit '3778b3ed7ee505c00fa7cd3b1af37cbe54de244a':
Try autodiscover with bare name if we get 401 with address
3778b3ed7ee505c00fa7cd3b1af37cbe54de244a 14-May-2010 Andrew Stadler <stadler@android.com> Try autodiscover with bare name if we get 401 with address

* Some autodiscover servers appear to require the bare user name
for authentication rather than the user's email address. This
is apparently common for complex organizations maintaining a
group of email domains
* If we get a 401 when trying to connect to an autodiscover server
using the email address, we try again using just the bare name

Bug: 2682833
Change-Id: Ia07ca336e189069d4f3539e2245b3d53c82e3324
ndroid/exchange/EasSyncService.java
9c9e757917b51cb87c1880b8e8ae14bfed5d84f9 14-May-2010 Makoto Onuki <omakoto@google.com> Add static method to get temp dir in Email.

I need to be able to get the temp dir from anywhere without Context
for the new IMAP parser.

Change-Id: I3bf7d34059399a8253c0760ebc392804ea434412
ndroid/email/Email.java
ndroid/email/mail/internet/BinaryTempFileBody.java
0c85694182f596b0ede34a59de3437de877e8038 14-May-2010 Marc Blank <mblank@google.com> am 1c78324f: am d40977d1: am 8100a2dc: Server sending unsupported policies will cause NPE
1c78324f49aa52c8a52e3826aa37e2916cd95085 14-May-2010 Marc Blank <mblank@google.com> am d40977d1: am 8100a2dc: Server sending unsupported policies will cause NPE

Merge commit 'd40977d14a355fc4d610f4fd8bcbb6196f5cfc96' into kraken

* commit 'd40977d14a355fc4d610f4fd8bcbb6196f5cfc96':
Server sending unsupported policies will cause NPE
d40977d14a355fc4d610f4fd8bcbb6196f5cfc96 14-May-2010 Marc Blank <mblank@google.com> am 8100a2dc: Server sending unsupported policies will cause NPE

Merge commit '8100a2dc5510d0449921895e2af8472d3666fda3' into froyo-plus-aosp

* commit '8100a2dc5510d0449921895e2af8472d3666fda3':
Server sending unsupported policies will cause NPE
8100a2dc5510d0449921895e2af8472d3666fda3 13-May-2010 Marc Blank <mblank@google.com> Server sending unsupported policies will cause NPE

* Add null check after trying to create a PolicySet during
provisioning.

Bug: 2683220
Change-Id: If20adbd4287b291e6470591fd2c3ac1f69ad2355
ndroid/exchange/EasSyncService.java
b3f7dd0169a35221184b9327c8ce337b09dc6d1f 10-May-2010 Makoto Onuki <omakoto@google.com> Clean up member variables.

- Fix misnomered fields. (e.g. static mMember -> static sMember)
- Reduce visibility. (e.g. mark as private)
- Mark final / static if possible.

Note it's on master.

There's a lot more cleanup oppotunities in the activities, but they're going
to go through a major overhaul, so I didn't bother.

Change-Id: I3fde73ba5f1f9ff675fff07c510e1e49521dde42
ndroid/email/Account.java
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/PeekableInputStream.java
ndroid/email/Preferences.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/AddressTextView.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SpinnerOption.java
ndroid/email/mail/Address.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/MailService.java
31fa0172cf721bddbbcfca8668de77939669b1d0 10-May-2010 Makoto Onuki <omakoto@google.com> am d93f323f: am 29491840: Merge "Cleanup: Add @Override" into froyo-plus-aosp
d93f323faa32c888eb0606e5694507fba9f7e6ae 10-May-2010 Makoto Onuki <omakoto@google.com> am 29491840: Merge "Cleanup: Add @Override" into froyo-plus-aosp

Merge commit '29491840e62a3a21a9b8e4a0889450d2d0875255' into kraken

* commit '29491840e62a3a21a9b8e4a0889450d2d0875255':
Cleanup: Add @Override
29491840e62a3a21a9b8e4a0889450d2d0875255 10-May-2010 Makoto Onuki <omakoto@google.com> Merge "Cleanup: Add @Override" into froyo-plus-aosp
fa96780309538856fb2a5512d301fcd15d4adca2 10-May-2010 Marc Blank <mblank@google.com> am 5bd74e72: am 3a07d70b: am d1e00e8a: Fix NPE resulting from attendees-only update from server
4880ab8641f5be5332a4ab6d6fe7b4626ab841d2 10-May-2010 Marc Blank <mblank@google.com> am bf60edcc: am a25b1b03: am 85a63c3c: Fix issues with exception downloads
658cd0e9fc6da042592908253b3f23a9426512a9 10-May-2010 Marc Blank <mblank@google.com> am c98be369: am a2496548: am c901810f: Start sync ASAP when calendar is re-enabled
5bd74e72b10e9f0f92621950662ba651bcdf38be 10-May-2010 Marc Blank <mblank@google.com> am 3a07d70b: am d1e00e8a: Fix NPE resulting from attendees-only update from server

Merge commit '3a07d70b69a579ef839faba3b85171b983bec312' into kraken

* commit '3a07d70b69a579ef839faba3b85171b983bec312':
Fix NPE resulting from attendees-only update from server
bf60edcc9681c08c57ad2d9c66a1b37f824a0598 10-May-2010 Marc Blank <mblank@google.com> am a25b1b03: am 85a63c3c: Fix issues with exception downloads

Merge commit 'a25b1b03626c6c27c877671f1b6622b4ab022bbc' into kraken

* commit 'a25b1b03626c6c27c877671f1b6622b4ab022bbc':
Fix issues with exception downloads
c98be369ec64025968651edd132cb0e2a1f86bfb 10-May-2010 Marc Blank <mblank@google.com> am a2496548: am c901810f: Start sync ASAP when calendar is re-enabled

Merge commit 'a2496548c6ed07cb6cb3820c9922a0e96ca2b8a4' into kraken

* commit 'a2496548c6ed07cb6cb3820c9922a0e96ca2b8a4':
Start sync ASAP when calendar is re-enabled
3a07d70b69a579ef839faba3b85171b983bec312 10-May-2010 Marc Blank <mblank@google.com> am d1e00e8a: Fix NPE resulting from attendees-only update from server

Merge commit 'd1e00e8aa69ccad3de61ed638b70bf5a9e5bd937' into froyo-plus-aosp

* commit 'd1e00e8aa69ccad3de61ed638b70bf5a9e5bd937':
Fix NPE resulting from attendees-only update from server
a25b1b03626c6c27c877671f1b6622b4ab022bbc 10-May-2010 Marc Blank <mblank@google.com> am 85a63c3c: Fix issues with exception downloads

Merge commit '85a63c3c2f2d00210e9f7957f3d217b7fd028dad' into froyo-plus-aosp

* commit '85a63c3c2f2d00210e9f7957f3d217b7fd028dad':
Fix issues with exception downloads
a2496548c6ed07cb6cb3820c9922a0e96ca2b8a4 10-May-2010 Marc Blank <mblank@google.com> am c901810f: Start sync ASAP when calendar is re-enabled

Merge commit 'c901810f84754c80aa3988b26f5ff620373f9a46' into froyo-plus-aosp

* commit 'c901810f84754c80aa3988b26f5ff620373f9a46':
Start sync ASAP when calendar is re-enabled
d1e00e8aa69ccad3de61ed638b70bf5a9e5bd937 08-May-2010 Marc Blank <mblank@google.com> Fix NPE resulting from attendees-only update from server

* Code for updating attendees in CalendarProvider2 wasn't taking
an attendees-only update into consideration
* Fix code to allow for this, including proper updates for our
selfAttendeeStatus and attendees ExtendedProperty values

Bug: 2668682
Change-Id: I8c7deb971cd0b6846c09ee3cd603f6fc762a9407
ndroid/exchange/adapter/CalendarSyncAdapter.java
85a63c3c2f2d00210e9f7957f3d217b7fd028dad 07-May-2010 Marc Blank <mblank@google.com> Fix issues with exception downloads

* It turns out that, in addition to other requirements of the
CalendarProvider, there is another - that the ORIGINAL_INSTANCE_TIME
also be set with hour, minute, and second as zero (in UTC)
* Change setTimes() to properly modify ORIGINAL_INSTANCE_TIME
* Also, there was a regression due to an incorrect validity test
for events; this regression caused all exception downsyncs to fail
* Changed isValidEventValues() to be correct for both exceptions
and original events
* Update tests for setTimes and isValidEventValues()
* This CL also fixes 2658988

Bug: 2664229
Change-Id: I9c8aea08e606ff58e5be37ca81a2d86a181c46f6
ndroid/exchange/adapter/CalendarSyncAdapter.java
165e8bfe7a46564ea98bb16cb059102ba356a1b5 08-May-2010 Makoto Onuki <omakoto@google.com> Cleanup: Add @Override

(Note it's for froyo-plus-asop)

Change-Id: Ic4211c08586e33c44d5d6267c0c9d37f8c7cdc85
ndroid/email/FixedLengthInputStream.java
ndroid/email/PeekableInputStream.java
ndroid/email/mail/Address.java
ndroid/email/mail/PackedString.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeMultipart.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
c563ce1b80cfc378c061fbf667a79a09c09c235c 08-May-2010 Makoto Onuki <omakoto@google.com> am b8970dab: am e46ac1a6: Cleanup imports.
b8970dabb648fed28d676c6aa3cf3d01d2b071dd 08-May-2010 Makoto Onuki <omakoto@google.com> am e46ac1a6: Cleanup imports.

Merge commit 'e46ac1a61f32bd762a879457b1850087a1ad3a8c' into kraken

* commit 'e46ac1a61f32bd762a879457b1850087a1ad3a8c':
Cleanup imports.
e46ac1a61f32bd762a879457b1850087a1ad3a8c 07-May-2010 Makoto Onuki <omakoto@google.com> Cleanup imports.

(Note it's for froyo-plus-asop)

Change-Id: Ia5b771cd41099ab486ba2e556b441fc7c0affe5f
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/StatusOutputStream.java
1f2caa80957e92519258e212b5fd45fb6c168a73 07-May-2010 Makoto Onuki <omakoto@google.com> Fix 3 problems that FindBugs found.

Bug 2666278 [findbugs] broken double-lock pettern in Utility.FolderProperties.getInstance()
Bug 2666207 [findbugs] potential NPE in MessagingController.processPendingDeletesSynchronous()
Bug 2666195 [findbugs] Potential NPE in AccountSetupNames.onCreate()

Change-Id: I2ee5bd5b7c80f8bdd32b3c45abb655a3d3fb8c9e
ndroid/email/MessagingController.java
ndroid/email/Utility.java
ndroid/email/activity/setup/AccountSetupNames.java
c901810f84754c80aa3988b26f5ff620373f9a46 07-May-2010 Marc Blank <mblank@google.com> Start sync ASAP when calendar is re-enabled

Bug: 2664421
Change-Id: Id3c08a5ca8abc5ad0f483408f38371dcc5f2d840
ndroid/exchange/SyncManager.java
3517816edbfb7fea0946c2620af6bc17031db7f1 07-May-2010 Marc Blank <mblank@google.com> am d58a050d: am 630758ef: am 3558e5f2: Shut down Email process when sync is totally blocked
d58a050dff3a4b2c41d12cb29de16f216ec93c6f 07-May-2010 Marc Blank <mblank@google.com> am 630758ef: am 3558e5f2: Shut down Email process when sync is totally blocked

Merge commit '630758ef898964814072467454bea615d31fc4ff' into kraken

* commit '630758ef898964814072467454bea615d31fc4ff':
Shut down Email process when sync is totally blocked
3558e5f2277fe953c612b42576afe1fb8fae99c8 06-May-2010 Marc Blank <mblank@google.com> Shut down Email process when sync is totally blocked

* When sync threads get blocked by SSL/Socket code, we detect this
and shutdown the ClientConnectionManager, hoping this will solve
the problem.
* Apparently, this doesn't always work. The result is that syncs
are frozen until the device is rebooted (certainly) or until the
Email process is stopped and restarted (hopefully)
* This CL kills the Email process after an unsuccessful attempt to
clear blocked threads using ClientConnectionManager.shutdown()

Bug: 2615293
Change-Id: I8445b278817e508a855adeb88d6b2f969d28858b
ndroid/exchange/SyncManager.java
fcd18d94d5ecf719f7a4310dd134478770927c7e 06-May-2010 Marc Blank <mblank@google.com> am 801368ac: am 9e8fef57: am 2b3bbb69: Fix NPE in SyncManager
a32e063036163dfb74a9c59a8167cfd0e7be731b 06-May-2010 Marc Blank <mblank@google.com> am ab4daabd: am 8f255dde: Merge "Add checks for Event validity before commit" into froyo

Merge commit 'ab4daabd5ec99da549407ce87d46e24be261c4a6' into kraken

* commit 'ab4daabd5ec99da549407ce87d46e24be261c4a6':
Add checks for Event validity before commit
801368ac4b78d1f833e608fa1204d53b463abaae 06-May-2010 Marc Blank <mblank@google.com> am 9e8fef57: am 2b3bbb69: Fix NPE in SyncManager

Merge commit '9e8fef57a5967a0056100921a294f464669c394d' into kraken

* commit '9e8fef57a5967a0056100921a294f464669c394d':
Fix NPE in SyncManager
8f255ddeee95f1f14aa77b2f51e3c69225fdaf6a 06-May-2010 Marc Blank <mblank@google.com> Merge "Add checks for Event validity before commit" into froyo
33f07963eb432704e05544dbdfa209f3f8fb9e9b 05-May-2010 Marc Blank <mblank@google.com> Add checks for Event validity before commit

* Enforce CalendarProvider2's requirements for valid Events
* Add unit tests for the new code
* Backport of change I42ad7acb from master
Bug: 2658149

Change-Id: I8151d035247a7dbb1fda3eae163b24ccfe055299
ndroid/exchange/adapter/CalendarSyncAdapter.java
2b3bbb6948ddb8bac1bf99ec1e8e880669735e71 06-May-2010 Marc Blank <mblank@google.com> Fix NPE in SyncManager

Bug: 2660742
Change-Id: I80ec62a0e128b3f20873a718d951e41f3fa2eb90
ndroid/exchange/SyncManager.java
bc1a4753b1b44f58e1393494f9b0dff24b9e58a3 05-May-2010 Marc Blank <mblank@google.com> Add checks for Event validity before committing

* Enforce CalendarProvider2's requirements for valid Events
* Add unit tests for the new code

Bug: 2658149
Change-Id: I42ad7acbcee3b6b831f805c59436017a32651f3a
ndroid/exchange/adapter/CalendarSyncAdapter.java
2c4e1a0c9cfad019fbee39079dc593b51fff8b92 03-May-2010 Andy Stadler <stadler@google.com> am 3ed0674a: am 8fd23c5b: am 48d2621b: Merge "Fix GAL lookup issue" into froyo
b0c37bd8c01db096ee949a607b5f4dd5cee07750 03-May-2010 Andrew Stadler <stadler@android.com> am 1e037acd: am 7cdd6899: am a7628f3b: Merge "Better handling for untyped attachments" into froyo
9d2b44d4732abd5bb6055ab109252e7185eeef21 03-May-2010 Makoto Onuki <omakoto@google.com> am eaf1139c: am a094cc25: am cf362a48: Collectly preserve the service start-id.
3ed0674ace97be58cb3a434fac4d32b2c4f40dc1 03-May-2010 Andy Stadler <stadler@google.com> am 8fd23c5b: am 48d2621b: Merge "Fix GAL lookup issue" into froyo

Merge commit '8fd23c5b49325766620ba78f79ca708c7649bf7f' into kraken

* commit '8fd23c5b49325766620ba78f79ca708c7649bf7f':
Fix GAL lookup issue
1e037acda794bb493dd64a1db1968cf8c445a0d0 03-May-2010 Andrew Stadler <stadler@android.com> am 7cdd6899: am a7628f3b: Merge "Better handling for untyped attachments" into froyo

Merge commit '7cdd6899fbe820af852974cd0b7025b72bfe242a' into kraken

* commit '7cdd6899fbe820af852974cd0b7025b72bfe242a':
Better handling for untyped attachments
eaf1139c6c912417790662d996accb1e142621d7 03-May-2010 Makoto Onuki <omakoto@google.com> am a094cc25: am cf362a48: Collectly preserve the service start-id.

Merge commit 'a094cc259da268ad6f78f50afe5cbbf674418b86' into kraken

* commit 'a094cc259da268ad6f78f50afe5cbbf674418b86':
Collectly preserve the service start-id.
48d2621b453a18a99b4975c013e5edb97e7a5f64 03-May-2010 Andy Stadler <stadler@google.com> Merge "Fix GAL lookup issue" into froyo
a7628f3bc05ef349ec6d9588e130126eb1c240a1 03-May-2010 Andrew Stadler <stadler@android.com> Merge "Better handling for untyped attachments" into froyo
cb7ac76f0b02ad41a568e3259ebd4911d3b748a7 02-May-2010 Marc Blank <mblank@google.com> Fix GAL lookup issue

Bug: 2646410
Change-Id: I52b0ddf4b7c6b56b3ad060d8d42a6080efa3662b
ndroid/exchange/adapter/GalParser.java
e82438b6bd7767274f358e300dad3ca210e13928 01-May-2010 Andrew Stadler <stadler@android.com> am 683812e1: am 01cc30c9: am 14812a50: Workaround for IllegalArgumentException in SyncManager
a0cc4cd01ad57b0db5f9d77e8450b705c7197c89 01-May-2010 Marc Blank <mblank@google.com> am 6f6c082d: am 3f0d3a43: am 47a59d88: Merge "Fix issues with incorrect email replies to event organizer" into froyo
7d5986aa04b8640669c2e156f662b10de0b593bb 01-May-2010 Marc Blank <mblank@google.com> am 017aeb6d: am c9f92395: am 468fe91d: Prevent account reconcile from running when service is down
80ebde2897dced46a0f24efb7c15a997b660a8fe 01-May-2010 Andrew Stadler <stadler@android.com> Better handling for untyped attachments

* IMAP/POP rely on sender to set mime type of attachments
* Which doesn't always work, because senders don't always provide it
* Remap using filename extensions, when needed
* This is applied as late as possible - in the MessageView, and in
the content provider getType(). No changes to how we write databases,
and no change to existing attachment rows.

Bug: 2356638
Change-Id: Ie69e3fd12f406aac803583f9d1299a8af4fba010
ndroid/email/activity/MessageView.java
ndroid/email/provider/AttachmentProvider.java
cf362a48c14ab3ebae55e9735f9cff6e77a4042a 30-Apr-2010 Makoto Onuki <omakoto@google.com> Collectly preserve the service start-id.

We were passing the wrong arguments, which caused the service left running.

Bug 2646212

Change-Id: Ie5aeaeb80635c8e805fc2e9c6f4aec3b21942740
ndroid/email/MessagingController.java
683812e1ff45165af358fe32b0334e60a5176ffa 30-Apr-2010 Andrew Stadler <stadler@android.com> am 01cc30c9: am 14812a50: Workaround for IllegalArgumentException in SyncManager

Merge commit '01cc30c9d8327c6172036c1e15455d305423c718' into kraken

* commit '01cc30c9d8327c6172036c1e15455d305423c718':
Workaround for IllegalArgumentException in SyncManager
14812a50a8cacd1166cd2b0d0be0bf2bbeec662c 30-Apr-2010 Andrew Stadler <stadler@android.com> Workaround for IllegalArgumentException in SyncManager

* There is a race condition in which the AccountManager listener
isn't properly unregistered when SyncManager is shut down
* In this case, SyncManager tries to register a new listener
(i.e. registering again), which causes an IllegalArgumentException
* The quick workaround is simply to catch and ignore this exception,
as it's really more of a warning than a true error
* A bug will be filed for the underlying issue

Bug: 2631561
Change-Id: I139d24ae045d402d4d8cb006406ef96ccc768566
ndroid/exchange/SyncManager.java
6f6c082d97eaa8a932251297a1b82759836b0400 30-Apr-2010 Marc Blank <mblank@google.com> am 3f0d3a43: am 47a59d88: Merge "Fix issues with incorrect email replies to event organizer" into froyo

Merge commit '3f0d3a437d10bd63c0f9260a853d5b43d973c8df' into kraken

* commit '3f0d3a437d10bd63c0f9260a853d5b43d973c8df':
Fix issues with incorrect email replies to event organizer
47a59d883ff64db9bfe29d65cf7851c68b17a5af 30-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix issues with incorrect email replies to event organizer" into froyo
017aeb6dc19ec22bc6ef6073dae41a14de3e2042 30-Apr-2010 Marc Blank <mblank@google.com> am c9f92395: am 468fe91d: Prevent account reconcile from running when service is down

Merge commit 'c9f923959eb7987db4f12dc7e2a1103e600d9eeb' into kraken

* commit 'c9f923959eb7987db4f12dc7e2a1103e600d9eeb':
Prevent account reconcile from running when service is down
468fe91dd8d3f7c35a2ecd4187dcc38c2e5ad1cc 30-Apr-2010 Marc Blank <mblank@google.com> Prevent account reconcile from running when service is down

Bug: 2644142
Change-Id: Ia6ccf7371bc08b3b67ab3d0871f3618c5e5bd107
ndroid/exchange/SyncManager.java
92cb5d1dbe5f3f199197229fc8770a6c02641a57 30-Apr-2010 Marc Blank <mblank@google.com> am 475b37f4: am 79ace451: am 09f0ab04: Merge "Fix NPE in SyncManager" into froyo
7446a41fbd6dda71ce18525d4feb12df149a31f7 30-Apr-2010 Makoto Onuki <omakoto@google.com> am 0a06a1a6: am 4a1565fd: am 5ab7ec71: Move a bare string to a resource.
475b37f49dcdb0fa9b7547f4228b53051a5736e6 30-Apr-2010 Marc Blank <mblank@google.com> am 79ace451: am 09f0ab04: Merge "Fix NPE in SyncManager" into froyo

Merge commit '79ace45187236afc736c60bc0a0e70f284bce36b' into kraken

* commit '79ace45187236afc736c60bc0a0e70f284bce36b':
Fix NPE in SyncManager
0a06a1a6833666f9476c88ec4f763467a9aedf76 30-Apr-2010 Makoto Onuki <omakoto@google.com> am 4a1565fd: am 5ab7ec71: Move a bare string to a resource.

Merge commit '4a1565fd7ec426ba4615aedeb3f2ddcb03ecac22' into kraken

* commit '4a1565fd7ec426ba4615aedeb3f2ddcb03ecac22':
Move a bare string to a resource.
d2c773a80636cfc38ef0528d955c49309325b1d6 29-Apr-2010 Marc Blank <mblank@google.com> Fix issues with incorrect email replies to event organizer

* We were previously storing the user's attendee status in the
SYNC_ADAPTER_DATA column of the Event, but it turns out that
this data isn't available in the Entity we retrieve when
uploading changes to the server
* The result is that we often thought the user's status had
changed when in fact it had not; in these cases, we sent email
to the organizer, often with the wrong information.
* As of this CL, we store the user's attendee status in an
ExtendedProperties row (these values are already exposed in event
entities)
* The logic otherwise remains the same; we now get correct data,
however

Bug: 2638762
Change-Id: Ibe8db90c16b4ca06203f77fd010aa26dde89a556
ndroid/exchange/adapter/CalendarSyncAdapter.java
09f0ab0454ee59170025337b786dd7cf8837d2ed 30-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix NPE in SyncManager" into froyo
5ab7ec7123b5aa6bc9f8fd7e59d2cdf27d716ef5 30-Apr-2010 Makoto Onuki <omakoto@google.com> Move a bare string to a resource.

Bug 2637666

Change-Id: I59cf5d2b30846604049d3f988b1003dd7d91ad6f
ndroid/email/activity/AccountFolderList.java
3139d43ee296bdd5830a4483beb5328a751161e7 30-Apr-2010 Marc Blank <mblank@google.com> Fix NPE in SyncManager

Bug: 2644142
Change-Id: I4336aef65669b7a4a32e43e8068edd4dd9772b03
ndroid/exchange/SyncManager.java
617eef466b255c0fa81998fe03df6e90af243740 29-Apr-2010 Marc Blank <mblank@google.com> am ba8dfde0: am 220d9107: am 8ba07285: Use timezone in exception ics files
ba8dfde0c1fababe99ef603751c01fb2c4783957 29-Apr-2010 Marc Blank <mblank@google.com> am 220d9107: am 8ba07285: Use timezone in exception ics files

Merge commit '220d9107535360b842f1a8ff872b2d22296d98b3' into kraken

* commit '220d9107535360b842f1a8ff872b2d22296d98b3':
Use timezone in exception ics files
8ba07285336c34a1fa454b23c9d4c95af020fa00 29-Apr-2010 Marc Blank <mblank@google.com> Use timezone in exception ics files

* Exchange seems to require time zone information in ics files containing
event exceptions, although this is NOT the case for iCalendar, and appears
not to conform to VCALENDAR specifications
* This causes exceptions to be placed on the wrong date or perhaps even
ignored, depending on the circumstance
* This CL simply adds time zone information to all exception ics files

Bug: 2640878
Change-Id: Ibc614eb7a2c45e9e782b10be979d9892bbfc0029
ndroid/exchange/utility/CalendarUtilities.java
3630a7090270115bce48e8b232f1d1d115c03199 29-Apr-2010 Marc Blank <mblank@google.com> am 59c9add4: am 0d46f9f8: am 39e6d3ae: Fix concurrent modification exception
59c9add49ec3d35a894efc397e3500e8df2b0e6f 29-Apr-2010 Marc Blank <mblank@google.com> am 0d46f9f8: am 39e6d3ae: Fix concurrent modification exception

Merge commit '0d46f9f87cb7540113c9a4f9903127cacb70d395' into kraken

* commit '0d46f9f87cb7540113c9a4f9903127cacb70d395':
Fix concurrent modification exception
39e6d3aed05571a1200ea1983bd6db409e2ed2b7 29-Apr-2010 Marc Blank <mblank@google.com> Fix concurrent modification exception

* Synchronize recently added call to releaseMailbox on sSyncLock

Bug: 2639210
Change-Id: Iaa1f2ed7cdc9cc0c306363487095ac5ccd02f9a3
ndroid/exchange/SyncManager.java
2ee98bee7bbf2ae23170ae3313cae4f076aca9b0 29-Apr-2010 Marc Blank <mblank@google.com> am 230dc853: am 8048f0fe: am 8917e52d: Fix regression that prevents calendar sync w/ new accounts
230dc85390d951ed2bb80878ade5223f6248d13e 29-Apr-2010 Marc Blank <mblank@google.com> am 8048f0fe: am 8917e52d: Fix regression that prevents calendar sync w/ new accounts

Merge commit '8048f0fef89c6d0cda8538cd5fe5103bf11cc2a9' into kraken

* commit '8048f0fef89c6d0cda8538cd5fe5103bf11cc2a9':
Fix regression that prevents calendar sync w/ new accounts
8917e52db0a872dc6438f0055669d2393febfbb7 29-Apr-2010 Marc Blank <mblank@google.com> Fix regression that prevents calendar sync w/ new accounts

* The regression is caused by a check on whether the calendar is
syncable, as determined by the status of the Calendar (via
CalendarProvider2).
* Unfortunately, if there IS no calendar, we were disallowing sync,
which prevents the calendar from being created in the first place

Bug: 2619755
Change-Id: I1e94a129413bdbe9bc9bfb3608d3ca95f23d8dfb
ndroid/exchange/SyncManager.java
caa65ed0de3ada3bc1ea096ecf1d8713075dd1e4 28-Apr-2010 Marc Blank <mblank@google.com> am 5a957fc9: am 7e8315c0: am b7f57f25: Remove STOPSHIP debug code
5a957fc91afb6cfe27b3ec8cad5fa4da0cbe0ef8 28-Apr-2010 Marc Blank <mblank@google.com> am 7e8315c0: am b7f57f25: Remove STOPSHIP debug code

Merge commit '7e8315c018edd545cc7ed1ef560a03e623a71a5d' into kraken

* commit '7e8315c018edd545cc7ed1ef560a03e623a71a5d':
Remove STOPSHIP debug code
77cc5f3383f0a4d06829626f490e2d6b24b75dad 28-Apr-2010 Marc Blank <mblank@google.com> am 7aa9e1e0: am 773dc43c: am b5bf09a5: Merge "Allow more time for HttpPost watchdog timeout" into froyo
5e7ddbf584cdbd92cfabf1c7c3b085448c61ed9a 28-Apr-2010 Marc Blank <mblank@google.com> am 504bd426: am 8ed23be0: am f7369ad5: Merge "Shutdown all connections when sync service is hung" into froyo
1bfe167734b28d719e5145c6cadb4a7b6953f62e 28-Apr-2010 Andy Stadler <stadler@google.com> am 656d89d6: am 78d3c602: am b915c3c0: Merge "Skip security check when account id is unknown." into froyo
b7f57f25ea0baa3b111dafca3a96f532a12fac97 28-Apr-2010 Marc Blank <mblank@google.com> Remove STOPSHIP debug code

Bug: 2638014
Change-Id: I10a7ac89cce68ae1db146eb9bed574c00386ba62
ndroid/exchange/EasSyncService.java
ndroid/exchange/provider/GalEmailAddressAdapter.java
7aa9e1e0ac2678d86bf1f7276c0e0588c1c2f1fd 28-Apr-2010 Marc Blank <mblank@google.com> am 773dc43c: am b5bf09a5: Merge "Allow more time for HttpPost watchdog timeout" into froyo

Merge commit '773dc43cc2caf7638c610ac85711eed89a06efa5' into kraken

* commit '773dc43cc2caf7638c610ac85711eed89a06efa5':
Allow more time for HttpPost watchdog timeout
504bd426c81f2d4b27c11be8172966010a93d103 28-Apr-2010 Marc Blank <mblank@google.com> am 8ed23be0: am f7369ad5: Merge "Shutdown all connections when sync service is hung" into froyo

Merge commit '8ed23be08f34ba11e5bf0acd98d1419df893a0bc' into kraken

* commit '8ed23be08f34ba11e5bf0acd98d1419df893a0bc':
Shutdown all connections when sync service is hung
656d89d67f9361e06cba1c0ce72f57c1d84a011f 28-Apr-2010 Andy Stadler <stadler@google.com> am 78d3c602: am b915c3c0: Merge "Skip security check when account id is unknown." into froyo

Merge commit '78d3c6022ccf87566261faf694ff506a68ec6b6f' into kraken

* commit '78d3c6022ccf87566261faf694ff506a68ec6b6f':
Skip security check when account id is unknown.
b5bf09a56d30885f985950faa1daa18e8899c32e 28-Apr-2010 Marc Blank <mblank@google.com> Merge "Allow more time for HttpPost watchdog timeout" into froyo
f7369ad51f0eb2c231715975de13e4af37c58eb4 28-Apr-2010 Marc Blank <mblank@google.com> Merge "Shutdown all connections when sync service is hung" into froyo
8f9e872eaf9856c0a2e2f3ae9522280b099b5c1b 28-Apr-2010 Marc Blank <mblank@google.com> Allow more time for HttpPost watchdog timeout

* The current timeout is triggering more often than it should, which
causes delays and inefficiency. Increase it from 10 to 30 seconds.

Bug: 2615293
Change-Id: I54b74cc7ad9f1c8286af49b957584670c071640c
ndroid/exchange/EasSyncService.java
2341e096e681cef60c1d94a6eaea84d962d9f323 28-Apr-2010 Marc Blank <mblank@google.com> Shutdown all connections when sync service is hung

* When a sync thread receives an alarm due to a missed socket timeout
on an HttpPost, we try to abort the HttpPost.
* At times, however, the HttpPost cannot be aborted and the thread
hangs indefinitely.
* In this CL, we try to break this vicious cycle by shutting down our
ClientConnectionManager when this case is detected. This should, in
turn, close all of our socket connections, causing the sync threads
to generate IOExceptions and terminate.
* After appropriate IOException waits, new sync threads should then be
able to run normally.

Bug: 2615293
Change-Id: Idea6c3653cd60822d6260e0c5a7dad790ee25858
ndroid/exchange/SyncManager.java
7c6975e1685cf867e1eb5a643705673bcac342da 28-Apr-2010 Marc Blank <mblank@google.com> am f0ef73dd: am 29270f38: am 422ceb0e: Merge "Don\'t enable calendar sync if sync_events is disabled" into froyo
e333b68c9efa30c58b8ae9c2a2625de1366b2314 28-Apr-2010 Makoto Onuki <omakoto@google.com> Skip security check when account id is unknown.

Doing the check caused:
IllegalArgumentException: Unknown URI content://com.android.email.provider/account/-1
at com.android.email.provider.EmailProvider.query(EmailProvider.java:1092)
at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
at android.content.ContentResolver.query(ContentResolver.java:245)
at com.android.email.activity.MessageList.isSecurityHold(MessageList.java:1146)

Bug 2635060

Change-Id: I80e7c00ef2dd74ceae24a88daf43a0681124a9d4
ndroid/email/activity/MessageList.java
f0ef73dd820fd379a2c09ed6bcb859aa2217890f 27-Apr-2010 Marc Blank <mblank@google.com> am 29270f38: am 422ceb0e: Merge "Don\'t enable calendar sync if sync_events is disabled" into froyo

Merge commit '29270f382389b8370f56941ca2209bfe11c5c6f3' into kraken

* commit '29270f382389b8370f56941ca2209bfe11c5c6f3':
Don't enable calendar sync if sync_events is disabled
422ceb0efd3d1605e6a9d8b25f408cbdd85bfc15 27-Apr-2010 Marc Blank <mblank@google.com> Merge "Don't enable calendar sync if sync_events is disabled" into froyo
f62f4afff15ee9b2d72955e40181f0f2ff9b9748 26-Apr-2010 Marc Blank <mblank@google.com> Don't enable calendar sync if sync_events is disabled

* When SyncManager starts up, it reconciles the AccountManager sync settings
with its own
* This works for Contacts, but Calendar has a second setting that needs to be
checked - the sync_events column in the Calendar table (in CalendarProvider2)
* Before turning on Calendar sync, we now check this second setting; if
sync_events is 0, we won't re-enable Calendar sync

Bug: 2619755
Change-Id: Iea6c99dce228d2c111a529a6c9b865ed1577b19e
ndroid/exchange/SyncManager.java
6b594cc97bda44fd8c90991e3ceb77c6173724b0 26-Apr-2010 Marc Blank <mblank@google.com> am a238577c: am d718abd3: am b62cbc7e: Increase service call timeout to 45 seconds
3c39402e4a377cbadefebb2ab20532c1805ce66a 26-Apr-2010 Marc Blank <mblank@google.com> am f714fcc9: am cebb801a: am da71abeb: Improve sync thread alerting mechanism
abd581582c963dffa84c7c095b9d57f2df60e6be 26-Apr-2010 Marc Blank <mblank@google.com> am 7d1f082c: am 17733f22: am 0f686768: Merge "Fix upsync of DAILY rrule with UNTIL" into froyo
90e69be84af71d196a933956ce0091ba2345e630 26-Apr-2010 Marc Blank <mblank@google.com> am c5fb4298: am aaa9c6a4: am d8d3719f: Tweak NAT timeout behavior
a238577cb7cab54007040946097b9010f7ceabe5 26-Apr-2010 Marc Blank <mblank@google.com> am d718abd3: am b62cbc7e: Increase service call timeout to 45 seconds

Merge commit 'd718abd38c12a902b85ba6341c4eda1c778d68b7' into kraken

* commit 'd718abd38c12a902b85ba6341c4eda1c778d68b7':
Increase service call timeout to 45 seconds
f714fcc952669a419884a560e8fefa3eae8cb0e3 26-Apr-2010 Marc Blank <mblank@google.com> am cebb801a: am da71abeb: Improve sync thread alerting mechanism

Merge commit 'cebb801ace0f2622430df88758485e6509f5fbf6' into kraken

* commit 'cebb801ace0f2622430df88758485e6509f5fbf6':
Improve sync thread alerting mechanism
7d1f082c5a0ad71f24f9c4be2ac4ada4962ba13e 26-Apr-2010 Marc Blank <mblank@google.com> am 17733f22: am 0f686768: Merge "Fix upsync of DAILY rrule with UNTIL" into froyo

Merge commit '17733f228ec131900acd7e5ff883bb0150025c42' into kraken

* commit '17733f228ec131900acd7e5ff883bb0150025c42':
Fix upsync of DAILY rrule with UNTIL
c5fb42984e53638e89c8b80ce8358ee03210642e 26-Apr-2010 Marc Blank <mblank@google.com> am aaa9c6a4: am d8d3719f: Tweak NAT timeout behavior

Merge commit 'aaa9c6a4d18c07bd36cb259bc6031b360586baba' into kraken

* commit 'aaa9c6a4d18c07bd36cb259bc6031b360586baba':
Tweak NAT timeout behavior
52ab04a805f000c09067a40c322b9e888c45ab4a 26-Apr-2010 Marc Blank <mblank@google.com> am ad7060ae: am f1fa44bd: am 2f1ce56f: Merge "Fix upload/download of attendee status" into froyo
9d0fa303c8fb024d7a268fb902ee8f0e2a2b3831 26-Apr-2010 Marc Blank <mblank@google.com> am 5b25478b: am b11ea045: am 7cb5e144: Merge "Add checks for null in SyncManager" into froyo
b62cbc7e7b82739c307b5cb3175bbfff5f549295 26-Apr-2010 Marc Blank <mblank@google.com> Increase service call timeout to 45 seconds

Bug: 2627273
Change-Id: I971aa271cfc03e669e72f7871856cb9cfc10aa14
ndroid/email/service/EmailServiceProxy.java
da71abeb8f0b0bce9de837d6614bcbc8ad7a39c6 24-Apr-2010 Marc Blank <mblank@google.com> Improve sync thread alerting mechanism

* When a sync thread triggers an alarm by failing to return from
an HttpPost beyond the socket timeout, we call abort() on the
HttpPost to force it to stop
* It appears that there are cases in which this is insufficient,
and the thread remains hung in a blocked state
* The result of this failure is to prevent the syncing mailbox from
ever syncing again, and is typically seen by a failure to receive
new mail (as reported in the referenced bug)
* In this CL, we add code to wait for 10 seconds after calling the
abort() method. If the HttpPost is still hung, we interrupt() the
thread, and have SyncManager release the Mailbox, so that another
thread can be started.

Bug: 2615293
Change-Id: I6a48195fc68bb950126006326a5b30448d3bbb63
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
0f68676828d1f66c7997a0457f1c6536e661658f 26-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix upsync of DAILY rrule with UNTIL" into froyo
47d124e4a100eda81a1458f38b563e208d2c9d79 24-Apr-2010 Marc Blank <mblank@google.com> Fix upsync of DAILY rrule with UNTIL

* Make sure we send UNTIL with FREQ=DAILY as appropriate
* Also to help debug this in the future...
Add logging capability to utilities via SyncManager
Add public log methods so that CalendarUtilities can log properly
Change Log.d's to SyncManager.log in CalendarUtilities

Bug: 2623787
Change-Id: I3d651f00a3f7522e25c8d6e389469770c733953f
ndroid/exchange/SyncManager.java
ndroid/exchange/utility/CalendarUtilities.java
d8d3719f34fa2dde9312d3156f7eccfe0fef0584 24-Apr-2010 Marc Blank <mblank@google.com> Tweak NAT timeout behavior

* Change "broken pipe" behavior to simply run through the ping loop
again, rather than be treated as a NAT timeout

Bug: 2615293
Change-Id: I67c3200f148a8c2beda58f812c29af8a726a4b9c
ndroid/exchange/EasSyncService.java
ad7060ae183cf0e25d6b7a345f7d4371c086508a 24-Apr-2010 Marc Blank <mblank@google.com> am f1fa44bd: am 2f1ce56f: Merge "Fix upload/download of attendee status" into froyo

Merge commit 'f1fa44bdc064a6c01813c5380839b90bd0290d46' into kraken

* commit 'f1fa44bdc064a6c01813c5380839b90bd0290d46':
Fix upload/download of attendee status
5b25478b0c27e89fd2610147e019845590ab987b 24-Apr-2010 Marc Blank <mblank@google.com> am b11ea045: am 7cb5e144: Merge "Add checks for null in SyncManager" into froyo

Merge commit 'b11ea045e994d80c49d0a80ca08582554a1c5823' into kraken

* commit 'b11ea045e994d80c49d0a80ca08582554a1c5823':
Add checks for null in SyncManager
2f1ce56fc85e8dc7052dc16f58d00bf19b2a9bee 24-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix upload/download of attendee status" into froyo
7cb5e144e746b5310d8f9facc24ab992f1a2a67c 24-Apr-2010 Marc Blank <mblank@google.com> Merge "Add checks for null in SyncManager" into froyo
5f1fdc2111c81fcc38275d15875db3c5c84744c4 23-Apr-2010 Andrew Stadler <stadler@android.com> am f6e5f6e3: am da0fb178: am 5ac8a35c: Merge "Fix uncommanded exit from MessageList with 2+ accounts" into froyo
f6e5f6e395b102b63d75e36007c776bec291297a 23-Apr-2010 Andrew Stadler <stadler@android.com> am da0fb178: am 5ac8a35c: Merge "Fix uncommanded exit from MessageList with 2+ accounts" into froyo

Merge commit 'da0fb1784c7675841cd64cb7c19020491667872f' into kraken

* commit 'da0fb1784c7675841cd64cb7c19020491667872f':
Fix uncommanded exit from MessageList with 2+ accounts
5ac8a35c4290d9e3ce22eb28341214189a40fc6c 23-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Fix uncommanded exit from MessageList with 2+ accounts" into froyo
e06a6dae37ec4226a7ee383efdb3a502c03bb470 23-Apr-2010 Marc Blank <mblank@google.com> am 169e3378: am 819de68b: am de3ae172: Merge "Add additional test for likely NAT timeout" into froyo
169e33789b377f7c1ade70edb8f734ee165da9a2 23-Apr-2010 Marc Blank <mblank@google.com> am 819de68b: am de3ae172: Merge "Add additional test for likely NAT timeout" into froyo

Merge commit '819de68b01ec9f8d44e4fa1e16bf4900abf90b16' into kraken

* commit '819de68b01ec9f8d44e4fa1e16bf4900abf90b16':
Add additional test for likely NAT timeout
de3ae17246bc011eff61e18ee1013e146ec53a3d 23-Apr-2010 Marc Blank <mblank@google.com> Merge "Add additional test for likely NAT timeout" into froyo
88fb7f7cd032ec0d838bdddf40a6f5a73442f422 23-Apr-2010 Andrew Stadler <stadler@android.com> Fix uncommanded exit from MessageList with 2+ accounts

* When you have 2 or more accounts configured, MessageList gets confused.
* If you are viewing a mailbox from account A, and account B does a
background sync, MessageList gets confused by the reports coming back
from the Controller. It gives up and returns to the Accounts list.
* This change adds a check for the current account and ignores the
MessageList updates if we weren't actually waiting for them.
* To test the positive case for this code (make sure we didn't break it),
verify that the inbox on an IMAP account is displayed properly
immediately after you add it.

Bug: 2619513
Change-Id: Ib31254b4099ba6b7922b06d42e2b7928551e4fb2
ndroid/email/activity/MessageList.java
bc278948153cca54506aa5e8bcfcdd56c72932ac 22-Apr-2010 Marc Blank <mblank@google.com> Add additional test for likely NAT timeout

* This prevents unnecessary delays in receiving push mail
* At present, there is a likely 5 minute delay on receiving new pushed
mail on the network displaying the behavior we're testing for

Bug: 2615293
Change-Id: Ic42e576fa683790f96434fcbad5ee873d0730f6d
ndroid/exchange/EasSyncService.java
8a19af3739aad25d26754e8a52e986cc38b41db6 22-Apr-2010 Marc Blank <mblank@google.com> Fix upload/download of attendee status

* It turns out that the UI uses selfAttendeeStatus and the attendee's status
from the Attendees table in confusing and undocumented ways
* selfAttendeeStatus is used in the UI, but only in certain cases. Generally speaking,
the Attendees table status is definitive. However, when the user sets his status
from the UI, this data is reflected in the event's selfAttendeeStatus, since for EAS,
the user is always the owner of his calendar
* On downsync, we'll put the user's busy status into the Attendees table
* On upsync, we'll send busy status based on the user's attendee status in the
Attendees table
* We'll use selfAttendeeStatus only to determine whether the user has manually changed
his status via the UI (as before)

Bug: 2615586
Change-Id: I3a82474cfd07cbf5aa595e5214807cb55005cefa
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
f44b9440d83a49061105ee854e29009afb5c9e77 23-Apr-2010 Marc Blank <mblank@google.com> Add checks for null in SyncManager

Bug: 2619723
Change-Id: Iea3c3258274bdf86784e232922290841ad0d9d36
ndroid/exchange/SyncManager.java
92db71e44061cf58bd9a31a19ddab9c82921a6b7 22-Apr-2010 Makoto Onuki <omakoto@google.com> Merge "Send local IP address with EHLO instead of "localhost"."
0acd7e9c779f8fa4482a0111f4c15312e9327f6b 22-Apr-2010 Marc Blank <mblank@google.com> am d764ce7e: am 1880ad6a: Send correct busy status information in upsyncs to EAS

Merge commit 'd764ce7e4442b0027a891582cbdd728487a49f97' into kraken

* commit 'd764ce7e4442b0027a891582cbdd728487a49f97':
Send correct busy status information in upsyncs to EAS
f4dac9f266906a84f4710d8af5d4a24f2290b1ba 22-Apr-2010 Makoto Onuki <omakoto@google.com> Send local IP address with EHLO instead of "localhost".

Bug 1515345

Change-Id: I181c9f0d79fbdf62f7df77f72a1ec9653797b6dd
ndroid/email/mail/Transport.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
1880ad6a83120b89ed239858d27d3e63242160e6 22-Apr-2010 Marc Blank <mblank@google.com> Send correct busy status information in upsyncs to EAS

* Fix unit test that was failing

Bug: 2615382
Change-Id: I54c7bdd982d57528f55ce4f4c6804c9f532293fb
ndroid/exchange/utility/CalendarUtilities.java
d729ff891a7e3a7026a16cc6da0932a49948a2f6 22-Apr-2010 Andrew Stadler <stadler@android.com> am 151b9aa8: am 5d5d7854: Harden UpgradeAccounts against runtime errors (e.g. NPE)

Merge commit '151b9aa8dff6350c9e247579599bf70e1c55eea1' into kraken

* commit '151b9aa8dff6350c9e247579599bf70e1c55eea1':
Harden UpgradeAccounts against runtime errors (e.g. NPE)
5d5d7854c247487c3f8fa1f700c6e9d46aff497d 22-Apr-2010 Andrew Stadler <stadler@android.com> Harden UpgradeAccounts against runtime errors (e.g. NPE)

* Harden each of the major upgrade steps so any errors (e.g. NPE) are
caught and that account goes into error state.
* Make sure that any account in error state is abandoned properly - all
steps skipped except the final delete/cleanup.
* Bugfix: The variable that indicates that an account has gone into an
error state (upgrade failed) state was being set in the UI thread and
tested in the worker thread, so it was not properly stopping the
upgrade of any given account. Split that variable into two, one for the
UI thread (set/read by the handler) and one for the worker thread.
* Bugfix: Report errors against the correct account, when 2+ accounts are
being upgraded.

Bug: 2608483
Change-Id: I571078ae7123b601b53096104c4c5f4ef20da031
ndroid/email/activity/UpgradeAccounts.java
fc0812021314df607504b31eaa732ea675fe0437 21-Apr-2010 Marc Blank <mblank@google.com> am a0c71419: am 21c04fe3: Merge "Further harden getListOrNull" into froyo

Merge commit 'a0c71419cedaa0f84d12da61e415642b79cc0a9c' into kraken

* commit 'a0c71419cedaa0f84d12da61e415642b79cc0a9c':
Further harden getListOrNull
21c04fe31c978fc68c473a5bef5c93b20363fe8e 21-Apr-2010 Marc Blank <mblank@google.com> Merge "Further harden getListOrNull" into froyo
07fb9f8bea97e9117efa8e2bf8351a4b50206faa 20-Apr-2010 Marc Blank <mblank@google.com> Further harden getListOrNull

* Add a bounds check
* Add a test for ImapList

Bug: 2611022
Change-Id: I3ad88fbc8d3145298731ab19ef7ff68d4011bb00
ndroid/email/mail/store/ImapResponseParser.java
7fef3f620da58ae5feb62d4be981a140b599df19 20-Apr-2010 Marc Blank <mblank@google.com> am 9c85a39b: am bb11c911: Fix NPE sending mail on servers without Outbox folders

Merge commit '9c85a39b82d0691f3c057dc00dbab87a2b68452e' into kraken

* commit '9c85a39b82d0691f3c057dc00dbab87a2b68452e':
Fix NPE sending mail on servers without Outbox folders
bb11c91175a4beee207324d67b913b91a41bbea7 20-Apr-2010 Marc Blank <mblank@google.com> Fix NPE sending mail on servers without Outbox folders

* stopPing (in SyncManager) assumes that every mailbox has a serverId
but this is not the case on some servers, in which case we hit an
NPE during a check for the account mailbox
* Check for a null serverId when testing for the account mailbox

Bug: 2606385
Change-Id: Idfa8abd8ef9e2c0a2ac01d0b168a21c934f6fdf3
ndroid/exchange/SyncManager.java
36d6817cb50b49d13fb74e58f04589658700301c 19-Apr-2010 Marc Blank <mblank@google.com> am 51a54f84: am 075d3494: Add admin check before trying a remote wipe

Merge commit '51a54f84f158cd9c18960170197f74a56b54fcd1' into kraken

* commit '51a54f84f158cd9c18960170197f74a56b54fcd1':
Add admin check before trying a remote wipe
075d34947fe2ed402997828794bdd99b59bc79ac 17-Apr-2010 Marc Blank <mblank@google.com> Add admin check before trying a remote wipe

* The code assumed that if we asked for a remote wipe, that it would
be executed. This isn't the case, however, if we're not a device
admin at that time
* Test for Email app as device administrator before trying remote wipe

Bug: 2603931
Change-Id: I09dcff00e77bcf1e40c742c9dee923e6e07eecae
ndroid/exchange/EasSyncService.java
6c1971f825c96e441f1dba177ed44e1fec17cdc3 18-Apr-2010 Marc Blank <mblank@google.com> am 5e80b90e: am a90bb03c: Merge "Use METHOD_ALERT instead of METHOD_DEFAULT for reminders" into froyo

Merge commit '5e80b90e399b70c6dd93ddd7f5b66279277cf861' into kraken

* commit '5e80b90e399b70c6dd93ddd7f5b66279277cf861':
Use METHOD_ALERT instead of METHOD_DEFAULT for reminders
a90bb03c259a9cf2e1ca15ef90b00759cd555987 17-Apr-2010 Marc Blank <mblank@google.com> Merge "Use METHOD_ALERT instead of METHOD_DEFAULT for reminders" into froyo
f749f77a812cbef657f796c4c4c3aed8585482c2 17-Apr-2010 Marc Blank <mblank@google.com> am 6d09bd24: am 17e8ba7e: Merge "Speed up provision notification after security failure" into froyo

Merge commit '6d09bd247b0b5bf48a88bafc2ef28e25d0148bb7' into kraken

* commit '6d09bd247b0b5bf48a88bafc2ef28e25d0148bb7':
Speed up provision notification after security failure
17e8ba7eda1cabf72ac650408abd94f1145397e9 17-Apr-2010 Marc Blank <mblank@google.com> Merge "Speed up provision notification after security failure" into froyo
849ba0285c0f26b7ad18d35e9095586660a90757 17-Apr-2010 Marc Blank <mblank@google.com> Use METHOD_ALERT instead of METHOD_DEFAULT for reminders

* Exchange has been using METHOD_DEFAULT for reminders, but it turns out
that this doesn't work.
* Changed to use METHOD_ALERT

Bug: 2604156
Change-Id: Ia76bb2fc150202de9c49af9ab8caf86c9bda775f
ndroid/exchange/adapter/CalendarSyncAdapter.java
64bd62f46f7378c2deaf2fde58345489e8917977 17-Apr-2010 Marc Blank <mblank@google.com> am 401ae927: am a8f7b3e1: Store all day events w/ UTC timezone

Merge commit '401ae927e62a237f76c7dd1dde83f4ff8f27be91' into kraken

* commit '401ae927e62a237f76c7dd1dde83f4ff8f27be91':
Store all day events w/ UTC timezone
a8f7b3e16e97ef8e6d9fb47ae9359f2db5676c94 16-Apr-2010 Marc Blank <mblank@google.com> Store all day events w/ UTC timezone

* All day events are supposed to be stored w/ UTC as the time zone
* We already zero out hour, minute, and day
* Use DTEND for non-recurring and DURATION for recurring all day events

Bug: 2440161
Change-Id: I31f2e5a355b721c06b4022b57ccc8a29b288a5d9
ndroid/exchange/adapter/CalendarSyncAdapter.java
23a88a8044676c63164393de6868bc935eb98097 16-Apr-2010 Marc Blank <mblank@google.com> Speed up provision notification after security failure

Bug: 2591899
Change-Id: I038e0b96f03c7dd24e11ee36f3c9464c84fb2930
ndroid/exchange/EasSyncService.java
5ff98ba1ec5c0c0b8125e4c519a8e81a141c0782 16-Apr-2010 Marc Blank <mblank@google.com> am 825999f8: am 095eee41: Set selfAttendeeStatus and busyStatus properly on downsync/upsync

Merge commit '825999f815979519d8d80334a8c1ce0223a89ef2' into kraken

* commit '825999f815979519d8d80334a8c1ce0223a89ef2':
Set selfAttendeeStatus and busyStatus properly on downsync/upsync
095eee41565900a2509256ffcbf6cd67a4c4e345 16-Apr-2010 Marc Blank <mblank@google.com> Set selfAttendeeStatus and busyStatus properly on downsync/upsync

* Set selfAttendeeStatus on download from busy status
* Set busyStatus on upload from selfAttendeeStatus

Bug: 2587076

Change-Id: I34eaa0d3861bcec0cbfd51761b31965e44f5162b
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
901c23032bdb25e32ad995ca2d83690116eba259 16-Apr-2010 Andrew Stadler <stadler@android.com> am a126a168: am ce592f32: Merge "Remove incorrect error reporting in MessageList" into froyo

Merge commit 'a126a168b6d70143e6cc94531f20ff889b15357b' into kraken

* commit 'a126a168b6d70143e6cc94531f20ff889b15357b':
Remove incorrect error reporting in MessageList
ce592f32f93ab0c682a5bf9582d0abd4c987cbbf 16-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Remove incorrect error reporting in MessageList" into froyo
54607e872db12c0132446f21a4b8a5c724d185ee 15-Apr-2010 Andrew Stadler <stadler@android.com> Remove incorrect error reporting in MessageList

* Previously I added a call to updateBanner() during the sequence where
we update the mailboxlist (searching for the requested mailbox to
display.) This was an attempt to provide some error information
for certain corner case security configuration problems.
* This was misfiring during legitimate connections (specifically, initial
sync of valid EAS accounts) and causing a Connection Error message
when none was intended.
* Rather than continue hacking, I'm simply removing the error banner
from updateMailboxList.
* This is essentially a direct rollback of change
c98b64c801cea3c82a7b932ebaf9a4bbdcee195c, although I've added
a bit more commentary than there was originally.
* The long-term solution, rather than continue band-aiding this, is to
move most of this logic into a service independent of the UI, and
provide more organized error reporting.

Bug: 2585159
Bug: 2599377
Change-Id: I99b7b1c8a7cfaa3fd3ff9b578d5721f05133d88a
ndroid/email/activity/MessageList.java
ce2e1260bc36e5dc3754930f02be194fee4b2c41 15-Apr-2010 Marc Blank <mblank@google.com> am b8ef8a2c: am a97d8501: Merge "Properly decode a uid from the globalObjId in invites" into froyo

Merge commit 'b8ef8a2c1d18421a7d537dbc8d1ea88ffca95898' into kraken

* commit 'b8ef8a2c1d18421a7d537dbc8d1ea88ffca95898':
Properly decode a uid from the globalObjId in invites
a97d85014f3849fe4ab05758857eb7552caaa856 15-Apr-2010 Marc Blank <mblank@google.com> Merge "Properly decode a uid from the globalObjId in invites" into froyo
7e30b2e22f597b3e4b902c333a8dafc8a21e8b86 15-Apr-2010 Marc Blank <mblank@google.com> Properly decode a uid from the globalObjId in invites

* Meeting invitations in EAS include a globalObjId. It turns out
that this id is EITHER the actual uid (if Exchange created it)
or a wrapper for the actual uid (if some other client created it)
* To find out which case we're dealing with, we have to look at
the base64 decoded string for the magic "vCal-Uid" substring
* If it's there, we pull the real uid out of the decoded string
* Otherwise, we build a hex strong from the decoded bytes
* Write unit test for this process

Bug: 2598201
Change-Id: I1cc40af6d1e45be44c19465eb8a4c31851ec8157
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
fa6d2b7b61978685eb891d840db63d169afff358 15-Apr-2010 Andrew Stadler <stadler@android.com> am 1bf66bb8: am 186aa619: Cleanup probable causes of close cursor access

Merge commit '1bf66bb8fcb4fcb74706d8e0917b7ac9f62d6710' into kraken

* commit '1bf66bb8fcb4fcb74706d8e0917b7ac9f62d6710':
Cleanup probable causes of close cursor access
186aa619dca002790c38b4dd8649bfe2b3a96f6e 15-Apr-2010 Andrew Stadler <stadler@android.com> Cleanup probable causes of close cursor access

* Monkey is hitting this fairly often
* Multiple fixes that are all good
* We were launching LoadAccountsTask twice
* Don't use a managed cursor for the inner accounts cursor - always
close it manually by calling changeCursor(null) and letting the
MergeCursor handle its sub-cursors.
* Add isCancelled() check
* When replacing adapter, be sure to close cursor

Bug: 2524465
Change-Id: I2309e033d65430810f2856285c1fa9bf2f8fb5e3
ndroid/email/activity/AccountFolderList.java
0b589c403ad36c75684f63ff201f4770d13aa436 15-Apr-2010 Andrew Stadler <stadler@android.com> am a55d27ba: am 3b3b5b0f: Run the account reconciler every time we start SyncManager

Merge commit 'a55d27bae112429348090be7fa262d7acc1b69e8' into kraken

* commit 'a55d27bae112429348090be7fa262d7acc1b69e8':
Run the account reconciler every time we start SyncManager
6f83fe6317a041bbd8421afe7ee08665c55556b3 15-Apr-2010 Makoto Onuki <omakoto@google.com> am ad383ff1: am d2a0d233: Use consistent device-id even the device is wiped.

Merge commit 'ad383ff1231319c6ded4077b0d1415bf77bec70b' into kraken

* commit 'ad383ff1231319c6ded4077b0d1415bf77bec70b':
Use consistent device-id even the device is wiped.
3b3b5b0f2b65bf7efb9474ece2d8d2821beeadc2 15-Apr-2010 Andrew Stadler <stadler@android.com> Run the account reconciler every time we start SyncManager

* This takes care of *some* of the race conditions where the
account DB is blown away but the Email app is not running, so we
don't get any notification of a change; We have to try and
sort this out early.
* SyncManager is started by Welcome, so this catches many cases of
entering the email app.

Bug: 2567986
Change-Id: I76bea5b636802ba5c1677d8b1825fb3c61f7b2d9
ndroid/exchange/SyncManager.java
d2a0d23380a2751d82f9d1f955a812f94a301e2a 15-Apr-2010 Makoto Onuki <omakoto@google.com> Use consistent device-id even the device is wiped.

Use hash of device id (TelephonyManager.getDeviceId()) instead of a random
value.

Bug 2596537

Change-Id: I22303f7287ee6e9edccec349d03f14adbd33f6f7
ndroid/email/Utility.java
ndroid/exchange/SyncManager.java
16fa3af652ff0879dbc6a20ae60b0300fae60c16 15-Apr-2010 Andrew Stadler <stadler@android.com> am bd9f4ab3: am 79ef52cf: Improve handling of UI reset cases

Merge commit 'bd9f4ab329b4d01493c84b3d93d678c9d5a594fe' into kraken

* commit 'bd9f4ab329b4d01493c84b3d93d678c9d5a594fe':
Improve handling of UI reset cases
79ef52cfb33e9fb2a2e71d31e0b3810ed1babea5 15-Apr-2010 Andrew Stadler <stadler@android.com> Improve handling of UI reset cases

* When account disappears (e.g. delete from Accounts & Sync) the Welcome
activity should launch with FLAG_ACTIVITY_CLEAR_TOP to remove any
stacked activities as well.
* When account disappears entering AccountSetupNames, don't fall out
of Eas Flow Mode.
* Followup to 5e354cd1db1baabad061032af5a0632cd0f58d1a

Bug: 2563998
Change-Id: Ifbe086e26205bb28c2514f84cb28e839888b1eb0
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupNames.java
8249155e42530ba1d5975e63a604a8c4330dd494 15-Apr-2010 Andrew Stadler <stadler@android.com> am 1ec609e9: am 694fe3b0: Merge "Safer error handling in AccountNames" into froyo

Merge commit '1ec609e99e00957788f4cb5d1965b9d4659f46ff' into kraken

* commit '1ec609e99e00957788f4cb5d1965b9d4659f46ff':
Safer error handling in AccountNames
694fe3b0c7a1dd8759795edc3ffa440bdfd5ce37 15-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Safer error handling in AccountNames" into froyo
fa669234be7d74d1733c73a2f51aa91acaae639e 15-Apr-2010 Andrew Stadler <stadler@android.com> Safer error handling in AccountNames

The error handling for (mAccount == null) would crash. Use a simpler
path here and just abandon the setup process.

The root cause of this (the account being null) is probably solved
by 3ae84b247d1a416b91c6dc9585898108389e4e6c, but still a good idea to
clean this up.

Bug: 2558344
Change-Id: I3167234f99e9d39844f2b56a4d94f25465c7c269
ndroid/email/activity/setup/AccountSetupNames.java
cda014c16ef3d49319fb3b1ce72feae4104a7fca 15-Apr-2010 Makoto Onuki <omakoto@google.com> am 8dffa087: am 162b0171: Change account colors to what aren\'t used in Calendar.

Merge commit '8dffa087db44e27e5f0e5672b19fdb6975e614a7' into kraken

* commit '8dffa087db44e27e5f0e5672b19fdb6975e614a7':
Change account colors to what aren't used in Calendar.
dd18cfa62a56278bcd014d3362b08eb6d62f22c5 15-Apr-2010 Marc Blank <mblank@google.com> am 82e43ff2: am d8a4e4d2: Merge "Don\'t allow Exchange logger to recurse on failure" into froyo

Merge commit '82e43ff284eac3767f38e81bf15188021581a8e1' into kraken

* commit '82e43ff284eac3767f38e81bf15188021581a8e1':
Don't allow Exchange logger to recurse on failure
162b017140464aea05a47e7540a666b10825a8dc 14-Apr-2010 Makoto Onuki <omakoto@google.com> Change account colors to what aren't used in Calendar.

Bug 2535090

Change-Id: I252e04afa402303d226a56f1d7852f50dc26e2ec
ndroid/email/Email.java
d8a4e4d25d9a1cbe87c729dfc05cfdc069d4004f 14-Apr-2010 Marc Blank <mblank@google.com> Merge "Don't allow Exchange logger to recurse on failure" into froyo
f14da10df8ec523db2a89dd75ee38c155a436c8b 14-Apr-2010 Andrew Stadler <stadler@android.com> am dc283b1b: am 5e354cd1: Exit most activities when accounts are deleted

Merge commit 'dc283b1b399da1543d57b8eae8ffcbc72f1deca0' into kraken

* commit 'dc283b1b399da1543d57b8eae8ffcbc72f1deca0':
Exit most activities when accounts are deleted
e2be72d390d7dfb336f8806798ff75b55674555c 14-Apr-2010 Andrew Stadler <stadler@android.com> am f9890942: am 383b7dd2: Merge "Final cleanup for account provisioning failures" into froyo

Merge commit 'f9890942bc4a61d14d65f38a16a8bb53bc979880' into kraken

* commit 'f9890942bc4a61d14d65f38a16a8bb53bc979880':
Final cleanup for account provisioning failures
da86f04c77b18cde282d27a76803d5b6d24ecaa5 14-Apr-2010 Marc Blank <mblank@google.com> am 595ebceb: am 3fdaa329: Only set ORIGINAL_INSTANCE_TIME in exceptions

Merge commit '595ebcebfaf937434dd797f0423819dae147b0d6' into kraken

* commit '595ebcebfaf937434dd797f0423819dae147b0d6':
Only set ORIGINAL_INSTANCE_TIME in exceptions
5e354cd1db1baabad061032af5a0632cd0f58d1a 14-Apr-2010 Andrew Stadler <stadler@android.com> Exit most activities when accounts are deleted

This resolves cases like this: You are in the inbox of an Exchange
account. You click home, settings, accounts & sync, and you delete
the account. Now re-enter the Email app. You'll be left in a strangely
empty inbox, for an account that no longer exists.

* Set a flag any time the reconciler deletes an account
* Check that flag in onResume of any activity that depends on the account
list and could be left in an "empty" state if account(s) are deleted.
* The Activities in which we check it are:
* AccountFolderList
* AccountSettings
* MailboxList
* MessageCompose
* MessageList
* MessageView
* Clear the flag any time we come in through Welcome, which will dispatch
to other activities properly based on the number of accounts found.

Bug: 2563998
Change-Id: I00fc542581c2bed92d744a4c2e48a88f83737f11
ndroid/email/Email.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/exchange/SyncManager.java
383b7dd29d9380442a0a560d8bdba7e23573b22d 14-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Final cleanup for account provisioning failures" into froyo
3fdaa329692b29c0083008bcbb5c5aa62ae7b9fd 14-Apr-2010 Marc Blank <mblank@google.com> Only set ORIGINAL_INSTANCE_TIME in exceptions

* We were setting this for all events, but apparently CalendarProvider
does not approve, and generates warnings
* Only set this for exceptions

Bug: 2550631
Change-Id: I8a7152eb0d4233432b1a5b5664da964d5433fbae
ndroid/exchange/adapter/CalendarSyncAdapter.java
3180ada5505bf277f49e22f1538ac76e4db329b3 14-Apr-2010 Marc Blank <mblank@google.com> am 1205deec: am 627006a8: Fix issue with deleted recurrence

Merge commit '1205deececdb99a23b45434568fac71fe3d50b8f' into kraken

* commit '1205deececdb99a23b45434568fac71fe3d50b8f':
Fix issue with deleted recurrence
c98b64c801cea3c82a7b932ebaf9a4bbdcee195c 14-Apr-2010 Andrew Stadler <stadler@android.com> Final cleanup for account provisioning failures

* Now that we get proper callbacks on updateMailboxListCallback(),
show the error banner if there's a problem
* Follow-on to 63186a5442f8310b25602235622c3669a4e5b1ec

Bug: 2585159
Change-Id: I2b4f365d02b639bc3ceff9f8938333185d5ba693
ndroid/email/activity/MessageList.java
c89e1a8616ebcec32a790b9273fcb83635d71b31 14-Apr-2010 Marc Blank <mblank@google.com> Don't allow Exchange logger to recurse on failure

Bug: 2594331
Change-Id: Ie5de4ac11259e5be30d4bf9812164823b9ca46ae
ndroid/exchange/utility/FileLogger.java
e49a1e4b8bc4846ec739a135377c1445c99fa950 14-Apr-2010 Marc Blank <mblank@google.com> am 58f7daac: am c07cd159: Merge "Try a longer timeout for initial sync" into froyo

Merge commit '58f7daac64a105f0607bf0cf64dba9d2ad523b31' into kraken

* commit '58f7daac64a105f0607bf0cf64dba9d2ad523b31':
Try a longer timeout for initial sync
627006a8e3e098f249a93efd2d575b0f0e504340 14-Apr-2010 Marc Blank <mblank@google.com> Fix issue with deleted recurrence

* It turns out that this bug is due to a bad rebase/merge for a previous CL
in which the changed code appears in its new form AND old form
* Fixes change SHA c3aa31820003bd62a863dc28d699cebdbcead228 (CL 48406)
* Don't say it.

Bug: 2587775
Change-Id: I3f70a97e498db30345452b942909448049680fdf
ndroid/exchange/adapter/CalendarSyncAdapter.java
c07cd159d4151c8e75fc32972e2bed3e9aab2d01 14-Apr-2010 Marc Blank <mblank@google.com> Merge "Try a longer timeout for initial sync" into froyo
3093b6166865abab4a299bb384c77d91ac348cb9 14-Apr-2010 Marc Blank <mblank@google.com> Try a longer timeout for initial sync

* We are still seeing an issue with at least one user on initial
calendar sync.
* Increase the read timeout a great deal for initial sync, as it
can a very long time for the server to respond

Bug: 2569162
Change-Id: I495c38dc58d9a80c5a21e40b6fc5d165d10a3c1a
ndroid/exchange/EasSyncService.java
040f0e3c488c1fe994548de5467bd576d4d18dc6 14-Apr-2010 Makoto Onuki <omakoto@google.com> am 77275817: am 0f3d3601: Merge "Show device id on the exchange setting screen." into froyo

Merge commit '772758177e3dd4fcb1c9d534afec3007b59c8bf7' into kraken

* commit '772758177e3dd4fcb1c9d534afec3007b59c8bf7':
Show device id on the exchange setting screen.
0f3d36010df682602260bef1e7a59191c90e805e 14-Apr-2010 Makoto Onuki <omakoto@google.com> Merge "Show device id on the exchange setting screen." into froyo
12b4bc9e80ba3509abdcd94b61457cf54d57b726 13-Apr-2010 Makoto Onuki <omakoto@google.com> Show device id on the exchange setting screen.

I've attached a screenshot on the referenced bug.

Also fixed a bug in SyncManager.getDeviceId() where sDeviceId cache wasn't
working.

Bug 2591124

Change-Id: I4b58517c095a96d47fb57179d70091b2c7af5249
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/exchange/SyncManager.java
b19fd96eb2ad6ce9809cdf4d3576245e5edb120b 14-Apr-2010 Marc Blank <mblank@google.com> am 77f820dc: am 0005eba7: Fix cancellation messages for deleted attendee

Merge commit '77f820dc0d120cfe28fc8a26bdc69ade92d68e5a' into kraken

* commit '77f820dc0d120cfe28fc8a26bdc69ade92d68e5a':
Fix cancellation messages for deleted attendee
0005eba750a10b9b3eda9f8cfb75bdc65c80a919 13-Apr-2010 Marc Blank <mblank@google.com> Fix cancellation messages for deleted attendee

* We weren't sending a proper ics file for the deleted attendee, and
this caused Exchange to send a message to the wrong people (the
referenced bug)
* Split out code that adds attendees to outgoing mail
* Changed the optional last argument to createMessageForX to be a specified
attendee, i.e. the only addressee to be used for the message

Bug: 2548465
Change-Id: I629fcfaffe621408ea460d42c9c7c283929f7e79
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
4621489f995464cb83b2a37d97498210c34b9b49 13-Apr-2010 Marc Blank <mblank@google.com> am 14495c05: am 63186a54: Send callback if reloadFolderList fails w/ uninit\'ed account

Merge commit '14495c05f69db71311002b077280782ed4154fc4' into kraken

* commit '14495c05f69db71311002b077280782ed4154fc4':
Send callback if reloadFolderList fails w/ uninit'ed account
f02238ed2e18db329c9f4bbd303c7960d7afc949 13-Apr-2010 Andrew Stadler <stadler@android.com> am cccfb846: am a87f8d8b: Changes to improve security policy setup

Merge commit 'cccfb8464ed8c2221b70b61151ecd77945299d06' into kraken

* commit 'cccfb8464ed8c2221b70b61151ecd77945299d06':
Changes to improve security policy setup
63186a5442f8310b25602235622c3669a4e5b1ec 13-Apr-2010 Marc Blank <mblank@google.com> Send callback if reloadFolderList fails w/ uninit'ed account

Bug: 2585159
Change-Id: I12d9dd84090d10675e3d403124e28dbb6bede3d8
ndroid/email/service/EmailServiceStatus.java
ndroid/exchange/SyncManager.java
a87f8d8bbc0b704974c4230f518cf23b7215fc55 13-Apr-2010 Andrew Stadler <stadler@android.com> Changes to improve security policy setup

* SecurityPolicy: Fix bug that prevents any notifications after the
user hits "cancel all" from the notification pane.
* AccountSecurity: If the user cancels the device admin acceptance
activity, repost the notification.
* MesageList: Catch security hold condition when entering a mailbox, and
launch security setup activity.

Bug: 2585159
Change-Id: I60d5d8c693cc5f00fe98a9cc69265802f5bee813
ndroid/email/SecurityPolicy.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/setup/AccountSecurity.java
cdc53cc4b2547078ed53b4d9df050e0bdbaa6471 13-Apr-2010 Marc Blank <mblank@google.com> am 1c9a47a4: am 0cd062eb: Merge "Fix acknowledgment of Exchange remote wipe" into froyo

Merge commit '1c9a47a424698ae899975afa1e0fe724545038f6' into kraken

* commit '1c9a47a424698ae899975afa1e0fe724545038f6':
Fix acknowledgment of Exchange remote wipe
0cd062ebd02fa9f3122ddc853cbc909be4c5d2db 13-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix acknowledgment of Exchange remote wipe" into froyo
2f194cefbb8fb2cf2b7fae9eca8291e4e4b337f9 13-Apr-2010 Marc Blank <mblank@google.com> Fix acknowledgment of Exchange remote wipe

* The XML acknowledging the wipe was malformed

Bug: 2589695
Change-Id: I24428a21ce5b08f32c372dcbb50b24d6e6c42645
ndroid/exchange/EasSyncService.java
a29e5e60da8e0bb13f13cbc374aaa90365e0de46 13-Apr-2010 Marc Blank <mblank@google.com> am 9edec647: am de302226: Always check serverId AND calendarId in queries

Merge commit '9edec6478cbb3cd3720077acfaaa950160eea128' into kraken

* commit '9edec6478cbb3cd3720077acfaaa950160eea128':
Always check serverId AND calendarId in queries
de3022268982d1ef7e81ef563c6b3a87faa9b002 13-Apr-2010 Marc Blank <mblank@google.com> Always check serverId AND calendarId in queries

* With multiple accounts, serverId's are not guaranteed to be unique
(indeed, they rarely are)
* There were two queries in CalendarSyncAdapter that checked only
serverId and this has caused the referenced bug PLUS others that
would have turned up later on
* This is a critical fix

Bug: 2589815
Change-Id: I49bc6cb5bb4708f4bf4ca60a891ff78f0b25e989
ndroid/exchange/adapter/CalendarSyncAdapter.java
61ea18298eeb4928910f0ecfc4d1849beb3f20cc 13-Apr-2010 Marc Blank <mblank@google.com> am c388bf66: am b5253606: Merge "Sync description with exceptions" into froyo

Merge commit 'c388bf66775e7979a1fd372964ef9ee7908e3b0d' into kraken

* commit 'c388bf66775e7979a1fd372964ef9ee7908e3b0d':
Sync description with exceptions
b5253606eeeae86938f04415553aac9f3f22daaa 13-Apr-2010 Marc Blank <mblank@google.com> Merge "Sync description with exceptions" into froyo
d1c1b505f443153fa396ac6d20355f101b3716ba 12-Apr-2010 Marc Blank <mblank@google.com> am 95c071bc: am 1e3f86df: Merge "Increase timeouts for Exchange sync; prevent early upload sync" into froyo

Merge commit '95c071bc6322a0ddd0491099b57ec8224d894f2f' into kraken

* commit '95c071bc6322a0ddd0491099b57ec8224d894f2f':
Increase timeouts for Exchange sync; prevent early upload sync
1e3f86dfd4b3db7bd91893a84584589dc778f52c 12-Apr-2010 Marc Blank <mblank@google.com> Merge "Increase timeouts for Exchange sync; prevent early upload sync" into froyo
e3df9f95ea267c2a6d19386f45ba849a91905902 12-Apr-2010 Marc Blank <mblank@google.com> Sync description with exceptions

* We weren't sending up the event description with exceptions, so
changes to description were being lost on upload
* Move the code uploading description so that it happens with
exceptions as well as top-level events

Bug: 2590020
Change-Id: Ifab556bed68671f3ee8cab02b657adbd8ba9c50c
ndroid/exchange/adapter/CalendarSyncAdapter.java
2e222637777f39ee702667a639e5a0251882823f 12-Apr-2010 Marc Blank <mblank@google.com> Increase timeouts for Exchange sync; prevent early upload sync

* It's reported that 50% of third party users have issues syncing
Calendar in Exchange
* In testing, it was determined that the server takes > 30 seconds
to respond to a sync request initially, which is beyond our timeout
limit
* Also, I found that the system SyncManager was trying to trigger an
upload sync at the same time (i.e. before the sync session was
established with the server)
* There are four changes here:
1) Prevent upload syncs while the sync key is null or "0" ("0"
is the initial state)
2) Increase timeout for connection; at worst, this will
cause a short extra delay in syncs with a bad connection, but this
will be unnoticable to users
3) Increase the read timeout for initial sync to twice that of
regular syncs (the initial sync always seems to take longer)
3) Reduce the lookback for calendar to two weeks (from one month);
this is a better default anyway, and it probably reduces the server
and client load a great deal
* Empirically, this solves the bug for a known completely repeatable
case.

Bug: 2569162
Change-Id: I36b1c3e1e0b65f50d42e05f1830fed912191651f
ndroid/exchange/CalendarSyncAdapterService.java
ndroid/exchange/EasSyncService.java
9c88c1ff3c98b3dc367a5617c737ab082b8f41e3 12-Apr-2010 Makoto Onuki <omakoto@google.com> am b0690302: am 1fe0aa19: Merge "Set CLEAR_WHEN_TASK_RESET flag when launching Calendar" into froyo

Merge commit 'b0690302bfc486ae76002179de11df0537090c30' into kraken

* commit 'b0690302bfc486ae76002179de11df0537090c30':
Set CLEAR_WHEN_TASK_RESET flag when launching Calendar
1fe0aa19bf9a64dff0fb0965d29f930303208f73 12-Apr-2010 Makoto Onuki <omakoto@google.com> Merge "Set CLEAR_WHEN_TASK_RESET flag when launching Calendar" into froyo
f793cd93b9137b121bb30801121b26548b099f6f 12-Apr-2010 Makoto Onuki <omakoto@google.com> Set CLEAR_WHEN_TASK_RESET flag when launching Calendar

and Contacts, so that when you relaunch Email from Home, you always see
the Email app, not Calendar/Contacts.

Note as stated in the corresponding bug, this CL itself won't fix the issue,
because CLEAR_WHEN_TASK_RESET will be lost when Contacts/Calendar apps handle
the intent.
There's a feature request against the framework (bug 2586404) which should fix
this losing flag problem.

Bug 2584792

Change-Id: I34ac3707b99926fc07529ea2229f2a6b3c4f93e4
ndroid/email/activity/MessageView.java
ead786d9b5890f4859bc1911342d237170677f4c 12-Apr-2010 Andrew Stadler <stadler@android.com> am ef01261a: am 9cc6f46b: Merge "Try TOP even on POP servers that fail to report CAPA" into froyo

Merge commit 'ef01261a8909ea3fe3e40b06cc537e0032d47898' into kraken

* commit 'ef01261a8909ea3fe3e40b06cc537e0032d47898':
Try TOP even on POP servers that fail to report CAPA
9cc6f46b05cdb1678b0ef73daf268c5728e96208 12-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Try TOP even on POP servers that fail to report CAPA" into froyo
645fc2830118e19e604f24ba7ffe71c775631f64 12-Apr-2010 Andrew Stadler <stadler@android.com> Try TOP even on POP servers that fail to report CAPA

* Ignore the results of CAPA and always try TOP
* If TOP returns -ERR simply fall back to (bad old slow) RETR
* Unit tests for positive & failure cases

Bug: 2588432
Change-Id: Ife4b551217de1025e14efc46074f16ef4ae99c6f
ndroid/email/mail/store/Pop3Store.java
8f76feabe2afcaaf07d77a089c8589f90d9240ab 12-Apr-2010 Marc Blank <mblank@google.com> am ab99976d: am c3aa3182: Send email to organizer if attendee deletes event/exception

Merge commit 'ab99976d18de5b2ac57d26808296ba5d966cea8d' into kraken

* commit 'ab99976d18de5b2ac57d26808296ba5d966cea8d':
Send email to organizer if attendee deletes event/exception
c3aa31820003bd62a863dc28d699cebdbcead228 11-Apr-2010 Marc Blank <mblank@google.com> Send email to organizer if attendee deletes event/exception

* There are two cases, event and exception and both are fixed in this CL

Bug: 2587775
Change-Id: Id325c4877a77074ca6edd4d7fbeb54971d4cf984
ndroid/exchange/adapter/CalendarSyncAdapter.java
f362d0357cf8bcc8cca8e81c48c4fd74e86ff410 12-Apr-2010 Marc Blank <mblank@google.com> am dc0f9ee7: am 536a3655: Merge "Always add changed exceptions to the upload list" into froyo

Merge commit 'dc0f9ee7ed36947414b37bb8d303f6ca0b768a8a' into kraken

* commit 'dc0f9ee7ed36947414b37bb8d303f6ca0b768a8a':
Always add changed exceptions to the upload list
536a36555b2a03eb852e2e54afedca7281f67f91 12-Apr-2010 Marc Blank <mblank@google.com> Merge "Always add changed exceptions to the upload list" into froyo
c5c5bf7da79eeff0c79535ca816d48dc92ee3039 12-Apr-2010 Marc Blank <mblank@google.com> Always add changed exceptions to the upload list

* We were adding deleted exceptions to the "deleted" list; this is bad,
because the exception then gets deleted from the database after the
sync. The symptom is that the deleted exception reappears on the
calendar.

Bug: 2587837
Change-Id: If497f82ba0b2b817d1cef6165ded23d19876528f
ndroid/exchange/adapter/CalendarSyncAdapter.java
4b07f049b3c945a0c428ec0a1775d8ad4e085f86 11-Apr-2010 Marc Blank <mblank@google.com> am 605433f7: am 3b19278a: Only allow the account mailbox to attempt provisioning

Merge commit '605433f78dfacc6c634c6313832c9e1f475bcd99' into kraken

* commit '605433f78dfacc6c634c6313832c9e1f475bcd99':
Only allow the account mailbox to attempt provisioning
65ff1aeb60f6227f5f98d50995cad295a0eacbfc 11-Apr-2010 Marc Blank <mblank@google.com> am 6155bc2b: am 6a4eae5f: Fix upload of multi-day all day events

Merge commit '6155bc2b10316b5257692b2e4c540c24f5f49836' into kraken

* commit '6155bc2b10316b5257692b2e4c540c24f5f49836':
Fix upload of multi-day all day events
3b19278a24ec6f1062d3c5e38580fe9fb20326cf 11-Apr-2010 Marc Blank <mblank@google.com> Only allow the account mailbox to attempt provisioning

* We were allowing all sync services to attempt provisioning, but this
could potentially lead to a race condition in which two different
policy keys are created on the server (this is speculative)
* Change to allow only the account mailbox to attempt provisioning
* Log policy keys when verbose exchange logging is enabled
* We'll see if this solves the referenced bug

Bug: 2569162
Change-Id: I36c60098a4866882a8f9f4c288da54ea378d9aee
ndroid/exchange/EasSyncService.java
6a4eae5f4104599cddfea67705cc4d594ee7d47f 10-Apr-2010 Marc Blank <mblank@google.com> Fix upload of multi-day all day events

* We were assuming a single day for all-day events
* Use the actual end date
* Make sure we send date/time back to server in local TZ
* Also fixes #2500863

Bug: 2578776
Change-Id: I58767a574248935b9840ce93e634a24e54abe62f
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
459199c93da3eacbfbe0dd13f7f2e91aae47c6ac 11-Apr-2010 Andrew Stadler <stadler@android.com> am ddc5dd3f: am 80bd83fd: Upsync appropriate organizer name/email

Merge commit 'ddc5dd3fe0cde3e03a053e1d2b6a06822a4b30b7' into kraken

* commit 'ddc5dd3fe0cde3e03a053e1d2b6a06822a4b30b7':
Upsync appropriate organizer name/email
80bd83fd8550ed1b58c26241aab6830d66289b5e 11-Apr-2010 Andrew Stadler <stadler@android.com> Upsync appropriate organizer name/email

* We need to send name & email for Exchange 2007
* For Exchange 2003, only name & email if the event is new

Bug: 2586661
Change-Id: Ia35c2c7a645a3d20b7031e9a43b8b5044a40f005
ndroid/exchange/adapter/CalendarSyncAdapter.java
e588bec8c95bd3728386735f1e622a23decfe6e3 11-Apr-2010 Andrew Stadler <stadler@android.com> am 13cc0023: am 06699c0d: Send meeting status with all upsynced changes

Merge commit '13cc00239e958647312b26deae7e62e3c4b27fdf' into kraken

* commit '13cc00239e958647312b26deae7e62e3c4b27fdf':
Send meeting status with all upsynced changes
51c864d56cd1db3598427a22c95590594423fc68 11-Apr-2010 Andy Stadler <stadler@google.com> am 6445efb6: am 7d32ec27: Merge "Check for active device admin before each ping loop" into froyo

Merge commit '6445efb6497348f4fc0b2c7ca5c78634626dfa3f' into kraken

* commit '6445efb6497348f4fc0b2c7ca5c78634626dfa3f':
Check for active device admin before each ping loop
4929b7fdaa15bb46107fb883e7b7022f01872fb3 11-Apr-2010 Andy Stadler <stadler@google.com> am 66473998: am 69757c66: Merge "Synchronize getAccountById on sAccountList" into froyo

Merge commit '66473998027f5d93c652653f58dc4ea73e462a55' into kraken

* commit '66473998027f5d93c652653f58dc4ea73e462a55':
Synchronize getAccountById on sAccountList
114dfb269d08ec72a452bb8aafe9d8674e20f6e8 11-Apr-2010 Marc Blank <mblank@google.com> am 7ac1a975: am 0cd9cbf0: Add organizer to Attendees before handling exceptions

Merge commit '7ac1a975c470f1a41e589e2a223467bf564fafc9' into kraken

* commit '7ac1a975c470f1a41e589e2a223467bf564fafc9':
Add organizer to Attendees before handling exceptions
06699c0d911ad71d5964c68e182745f5c4144569 11-Apr-2010 Andrew Stadler <stadler@android.com> Send meeting status with all upsynced changes

* Meeting status differentiates between appointments and meetings,
which is important in Outlook and OWA
* Fix older, completely incorrect code for upsyncing categories

Bug: 2586071
Change-Id: I277252ef2c31e5b8ec7ceda69c229f5fd100ecdb
ndroid/exchange/adapter/CalendarSyncAdapter.java
7d32ec27ec7f17238d0f5c373acc502053e59647 11-Apr-2010 Andy Stadler <stadler@google.com> Merge "Check for active device admin before each ping loop" into froyo
69757c6670b8b6fbeea6da1d9690002e0f7b9293 11-Apr-2010 Andy Stadler <stadler@google.com> Merge "Synchronize getAccountById on sAccountList" into froyo
2769c06b3de0c5c3bad9dbac2c99511a6a26fe4d 10-Apr-2010 Marc Blank <mblank@google.com> Check for active device admin before each ping loop

* Accounts that require security need to check that the Email app
is still an active device admin from time to time
* Add a check for this before each run of the ping loop

Bug: 2583282
Change-Id: I1491821b7d0c1a341b1fe7ef1002c8b21aed12c2
ndroid/exchange/EasSyncService.java
ff958286f1d0416c1c2b1a923a802ff1f3025b73 10-Apr-2010 Marc Blank <mblank@google.com> am c89e3462: am 232b2dd9: Merge "Handle exception deletion properly" into froyo

Merge commit 'c89e34624492e43fb8d403e0321df648248d9fcc' into kraken

* commit 'c89e34624492e43fb8d403e0321df648248d9fcc':
Handle exception deletion properly
bd9444b0c2f17879105f99b0b85a87e173377015 10-Apr-2010 Makoto Onuki <omakoto@google.com> am aab0d339: am 17a18d64: Merge "Fix NPE caused by I34451000" into froyo

Merge commit 'aab0d339da9605339695c85da2bc81cdc2d6bb08' into kraken

* commit 'aab0d339da9605339695c85da2bc81cdc2d6bb08':
Fix NPE caused by I34451000
3ab4a996790cb4fdf7d62ddf17667e91a40719dd 10-Apr-2010 Marc Blank <mblank@google.com> Synchronize getAccountById on sAccountList

* This fixes a ConcurrentModificationException seen in monkey
testing

Bug: 2586524
Change-Id: I3634678218827d5cffeef20c154b3826f9e5f36f
ndroid/exchange/SyncManager.java
0cd9cbf08817b18b4221efa15388f5a144ebfab4 10-Apr-2010 Marc Blank <mblank@google.com> Add organizer to Attendees before handling exceptions

* Exceptions take a copy of Attendees when they are created, but
we weren't adding the organizer to Attendees before exceptions
were parsed
* Fix this by adding the organizer just before exception parsing
* If there aren't any exceptions, we add the organizer as before

Bug: 2585817
Change-Id: Ie894682977e38a55d975135c8fc2fd8f2d4b1365
ndroid/exchange/adapter/CalendarSyncAdapter.java
232b2dd9dcce647e49e770ec9b4e6a3a564008d2 10-Apr-2010 Marc Blank <mblank@google.com> Merge "Handle exception deletion properly" into froyo
1b2ed80da7a438a6900a22c00a2a0052de3df124 09-Apr-2010 Marc Blank <mblank@google.com> Handle exception deletion properly

* First, make sure we catch the cases of DELETED=1 and eventStatus=cancelled
* Second, only send email updates if the user is the organizer

Bug: 2583054
Change-Id: I886efa0f28931dc815bc31d4d6adb3d700f83c6b
ndroid/exchange/adapter/CalendarSyncAdapter.java
17a18d644af54b98087f3ec7a9b1e6d55e604e67 09-Apr-2010 Makoto Onuki <omakoto@google.com> Merge "Fix NPE caused by I34451000" into froyo
00ea1390ecc1e04811deac7ed7ba9e2828dbf2ce 09-Apr-2010 Marc Blank <mblank@google.com> am ce3aabde: am 66bbd95a: Merge "Fix GAL lookup for provisioned EAS accounts" into froyo

Merge commit 'ce3aabde3a590345e2e6f29d419455432966c643' into kraken

* commit 'ce3aabde3a590345e2e6f29d419455432966c643':
Fix GAL lookup for provisioned EAS accounts
e33e9d7a1bc57ca34efab1b666a93664f71f33f3 09-Apr-2010 Marc Blank <mblank@google.com> am 8ee5858c: am f2b733de: Merge "Fix auto-send of invites when attendee status changes" into froyo

Merge commit '8ee5858cb820dec68a4c266cdeb46172654901a3' into kraken

* commit '8ee5858cb820dec68a4c266cdeb46172654901a3':
Fix auto-send of invites when attendee status changes
66bbd95a016803133f74a7372c29acc3a20c72c4 09-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix GAL lookup for provisioned EAS accounts" into froyo
b6cbf52656f07308ee669a584b6757ca352a3889 09-Apr-2010 Marc Blank <mblank@google.com> Fix auto-send of invites when attendee status changes

* Use AS_SYNC_ADAPTER flag when changing attendee information in
downsyncs
* Allow DTSTAMP to come before new attendee information in the case
in which only attendees are changing
* Add _SYNC_DATA of "0" for all newly synced events

Bug: 2582513
Change-Id: Iacde0ddf3f2a99d108e00ef1991edfc34613f5c7
ndroid/exchange/adapter/CalendarSyncAdapter.java
ea816ef206e4e4f6a71ee71e820b399bf1284a76 09-Apr-2010 Marc Blank <mblank@google.com> Fix GAL lookup for provisioned EAS accounts

Bug: 2582551
Change-Id: I316a2f9105ae4c693c401ad5e79922f4de1881b6
ndroid/exchange/EasSyncService.java
78e06eb8947ff8b2f83163f08e7726fb73ebf733 08-Apr-2010 Makoto Onuki <omakoto@google.com> Fix NPE caused by I34451000

It's unfortunate but some of the fields we cleared in I34451000 are accessed
in BG threads or after the activity is destroyed. We could add != null checks
everywhere, but it'll be a mess. I also think it's safer to simply remove
the "= null" lines.

On the other hand, clearing AsyncTasks are relatively safer because they are
kept only so that we can cancel them afterwards, so I kept them. But let me
know if you want to revert the original CL.

Bug 2570603

Change-Id: I04a10dd7382bfcceb686c3e9af92f8949caf619e
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
5f95d682885db306b966e245627a175b866f0f53 08-Apr-2010 Andrew Stadler <stadler@android.com> am 3839dc98: Merge "Improve MIME & SMTP compliance on outbound messages" into froyo

Merge commit '3839dc981f15bb7da5e7500ee175485dc85a6f6a' into kraken

* commit '3839dc981f15bb7da5e7500ee175485dc85a6f6a':
Improve MIME & SMTP compliance on outbound messages
3839dc981f15bb7da5e7500ee175485dc85a6f6a 08-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Improve MIME & SMTP compliance on outbound messages" into froyo
6bcccf628413d40696980d0d86c7ab2b4f831952 08-Apr-2010 Andrew Stadler <stadler@android.com> Improve MIME & SMTP compliance on outbound messages

* Write MIME-Version: 1.0 in all outbound messages, not just those
with multiparts. This is required by RFC 2045.
* Unit tests

Bug: 1678296
Change-Id: Icf37d93b8b0150f490791792499865a60744adea
ndroid/email/mail/transport/Rfc822Output.java
1939abc170131ed022512a9e1e604244b9a87ccb 08-Apr-2010 Marc Blank <mblank@google.com> am 60ee2059: Merge "Fix bug #2551196" into froyo

Merge commit '60ee2059634a4191d999a837519eb406e02a57ec' into kraken

* commit '60ee2059634a4191d999a837519eb406e02a57ec':
Fix bug #2551196
60ee2059634a4191d999a837519eb406e02a57ec 08-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix bug #2551196" into froyo
0cf741bb0a73d76a07aac6a062f2909ed341b158 07-Apr-2010 Marc Blank <mblank@google.com> Fix bug #2551196

* Handle the case in which a Mailbox to be synced doesn't have
a serverId (rare case which happened to a Zimbra user)
* Tweak logging to improve debugability of similar issues

Bug: 2551196
Change-Id: Id61cee5c4b33eb2f87455fbae0899fec8ff3748f
ndroid/exchange/SyncManager.java
24c2faec32a2158411767be535ff8fccff8c1812 07-Apr-2010 Makoto Onuki <omakoto@google.com> am 59cf1d05: Clear references to inner classes in onDestroy().

Merge commit '59cf1d05c111e3b5fb18417db41ce47b623b5b1e' into kraken

* commit '59cf1d05c111e3b5fb18417db41ce47b623b5b1e':
Clear references to inner classes in onDestroy().
59cf1d05c111e3b5fb18417db41ce47b623b5b1e 06-Apr-2010 Makoto Onuki <omakoto@google.com> Clear references to inner classes in onDestroy().

Also
- Made inner classes private if possible.
- Made some members final.

Bug 2570603

Change-Id: I34451000f2540c67e1039ea9dc4839dbec5ffab7
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/Welcome.java
1dec3405f5ec1731d3f588f397637bdf9812bd50 07-Apr-2010 Marc Blank <mblank@google.com> am c94c077a: Merge "Send busy_status = 2 on all upsync\'s" into froyo

Merge commit 'c94c077a668fe3eb78dfeec797a175571a47b1c6' into kraken

* commit 'c94c077a668fe3eb78dfeec797a175571a47b1c6':
Send busy_status = 2 on all upsync's
c94c077a668fe3eb78dfeec797a175571a47b1c6 07-Apr-2010 Marc Blank <mblank@google.com> Merge "Send busy_status = 2 on all upsync's" into froyo
f1bbf0538028a0bf52ad64ae48a15af28a6a1d6d 07-Apr-2010 Marc Blank <mblank@google.com> Send busy_status = 2 on all upsync's

* Right now, we only send this for 2.5 (where it's required)
* If we don't send this for 12.0 and later, the status will be
set to "free", which is almost always going to be wrong
* So always send busy status = 2 (we can't know differently, as
we don't track free/busy)

Bug: 2575611
Change-Id: I11d952b68ac0ef7a022b030037ce6408f72d4a90
ndroid/exchange/adapter/CalendarSyncAdapter.java
ae9f8aa86ced4b874cfc2f9ea33a09074b8965e7 07-Apr-2010 Andrew Stadler <stadler@android.com> am 856e09d7: Properly reset security policy when device admin revoked

Merge commit '856e09d76ab62272e660fd4a08e25637f17319a0' into kraken

* commit '856e09d76ab62272e660fd4a08e25637f17319a0':
Properly reset security policy when device admin revoked
73c38b8401807318f9e523f3d3a143a21197d0f9 07-Apr-2010 Andrew Stadler <stadler@android.com> am be428797: Merge "Show a less-generic error message for security errors" into froyo

Merge commit 'be4287970b4218bbcd01955677117110eb1d1d03' into kraken

* commit 'be4287970b4218bbcd01955677117110eb1d1d03':
Show a less-generic error message for security errors
856e09d76ab62272e660fd4a08e25637f17319a0 07-Apr-2010 Andrew Stadler <stadler@android.com> Properly reset security policy when device admin revoked

* Simplify the logic in the onDisabled() receiver. Make sure
security policy keys are *always* disabled.
* Eliminate unused variable and unused receiver.

Bug: 2576145
Change-Id: I3665a1d300edfb77e02737c08aee22bc977f4968
ndroid/email/SecurityPolicy.java
be4287970b4218bbcd01955677117110eb1d1d03 07-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Show a less-generic error message for security errors" into froyo
e2a076fdfda61a72c1a90d6dd4f5217c6505f8e0 06-Apr-2010 Makoto Onuki <omakoto@google.com> am af672452: Added a test for IMAP APPEND

Merge commit 'af6724527e564d35dd27ac35e24dbced554792e5' into kraken

* commit 'af6724527e564d35dd27ac35e24dbced554792e5':
Added a test for IMAP APPEND
af6724527e564d35dd27ac35e24dbced554792e5 02-Apr-2010 Makoto Onuki <omakoto@google.com> Added a test for IMAP APPEND

It's a preliminary change for IMAP bug fixes.

Also,
- Fixed a potential bug in ImapFolder.setFlags where it'd throw
StringIndexOutOfBoundsException if flags is empty.

- Added a generic flag to proguard.flags so that now all methods with
the "ForTest" sufix are automatically preserved.
Turned out it wasn't needed for this CL, but it should come in handy
someday.

Bug 2538076
Change-Id: I49a08afc196c7b7f1f30477dfc38ac5381045d84
ndroid/email/mail/Message.java
ndroid/email/mail/store/ImapStore.java
dc0753373ea6cc87902ea907eb654850ed90ce57 06-Apr-2010 Andrew Stadler <stadler@android.com> DO NOT MERGE. Handle STARTTLS when last line in EHLO response.

When receiving the EHLO response from the SMTP server, the multiline
answer has "-" prefix in all lines except the last line, where the
prefix is a blank. This is according to RFC 2821 section 4.2.1. This has
also been reported as issue 2309 at code.google.com.

Bug: 1744768

Change-Id: I3feccabed30767d2fa5b06352cd7d1c803e8d59c
ndroid/email/mail/transport/SmtpSender.java
624af658ff9efe8b87d6292a7abdd7457e870df3 06-Apr-2010 Andrew Stadler <stadler@android.com> Merge "Partial solution to make EAS setup respect "manual"" into froyo
63ab9de1b881bf1496228285511cab213501f404 06-Apr-2010 Andrew Stadler <stadler@android.com> Partial solution to make EAS setup respect "manual"

* Track whether the user clicked "manual" vs. clicking next (and falling
into "manual" because the account is not found in the providers list.
Convert this into an "allowAutoDiscover" parameter.
* Pass "allowAutoDiscover" down into AccountSetupAccountType and through
into AccountSetupExchange. (Note, it's unused/ignored for POP & IMAP
accounts and should not affect them.)
* In AccountSetupExchange, use the existing EXTRA_DISABLE_AUTO_DISCOVER
(previously only for testing) to suppress autodiscover in manual mode.

Bug: 2570919
Change-Id: I2583e00d1e6cc26bbd4b85134eddae8cc3a1f91e
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
f7d9f65961d951ffe778e820e7c2f81fd70760f7 06-Apr-2010 Marc Blank <mblank@google.com> Merge "MessageView: on answering invitation move in only one direction." into froyo
9991e71413a83724f6612be13a828ddeecf60ea7 04-Apr-2010 Marc Blank <mblank@google.com> Fix remote wipe (which probably never worked)

Bug: 2567641
Change-Id: Iceeebbc5f5bb93d72ab349cc1c0a71c1bd5f5387
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
0a3b5b074118a676b81dc6301045ebd8c973e014 04-Apr-2010 Marc Blank <mblank@google.com> Add timeout/watchdog to autodiscover network calls

* Split out network operations w/ timeout and watchdog from send HttpClientPost
* Use this in autodiscover calls
* Add logging to help debug this issue, in case there are additional problems

Bug: 2568077
Change-Id: I2a2e1abca2c4dab02c8e04c304f67db2a7b4cb22
ndroid/exchange/EasSyncService.java
605371e793c7038cf24c15ca5090f27ab431ce79 04-Apr-2010 Andrew Stadler <stadler@android.com> Show a less-generic error message for security errors

* In Controller, map EmailServiceStatus.SECURITY_FAILURE
to MessagingException.SECURITY_POLICIES_REQUIRED
* In MessageList, map MessagingException.SECURITY_POLICIES_REQUIRED
to string account_setup_failed_security

Bug report will be forwarded to next release to get a more specific
string with proper translation.

Bug: 2563988
Change-Id: Ia1e6e947e3c0c7e6bd37301de2ea8ef4d641ef14
ndroid/email/Controller.java
ndroid/email/activity/MessageList.java
a843d40ba1d3eb77e76b4a28aa911588f0fd81a1 03-Apr-2010 Andrew Stadler <stadler@android.com> Improve handling of unsupported security policies

* If the server asks for more than we can support, don't throw
and error from PolicySet creation. Let isSupported() do that.
* Overlong password lengths cannot be supported and isSupported is false.
* Overlong timeouts & max wipes can be reduced to supported
amount (this actually increases security) and isSupported is true.
* Clean up an obsolete comment
* Unit tests

Bug: 2567804
Change-Id: I2d664a7f2a315b9f9bdcb867fe2cd98f74de6f66
ndroid/email/SecurityPolicy.java
ndroid/exchange/EasSyncService.java
abed4c04c9f61062b2d9b3425a8b76b5b6165371 02-Apr-2010 satok <satok@google.com> Close Cursor onDestroy

Bug:2557401
- set Cursor of ListAdapter null

Change-Id: I7d762c4ccdf6165d748136f5cf0e15b4a36b24a7
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
802459f4d8f5d5c0cfce1c72fc36528cb3899122 02-Apr-2010 Marc Blank <mblank@google.com> Don't show "Where: " in invite text if there's no location

Bug: 2563275
Change-Id: I2e978bc46b2ef292d749138500b53d61aefc4672
ndroid/exchange/utility/CalendarUtilities.java
66a9b199a02892235b0b7a297a62513c2fc63833 02-Apr-2010 Marc Blank <mblank@google.com> Merge "Fix NPE in resetVisibleLimits" into froyo
79976209d74c50fb15646dbc9e87ec97269bdbd9 01-Apr-2010 Marc Blank <mblank@google.com> Synchronize getSyncKey/setSyncKey in Calendar and Contacts sync

* When the sync state of Calendar/Contacts is changed, a number of observer calls
are triggered. In addition, we might have a running sync.
* The syncKey operations need to be synchronized, because we may otherwise
inadvertently use stale data when syncing, which would cause symptoms
as seen in the referenced bug

Bug: 2561864
Change-Id: I03db58fe01c45778d271fad34d8d4940edefe8fe
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
f5c3db12de89365c6d52c6d75c7b684e2c0d16ff 02-Apr-2010 Marc Blank <mblank@google.com> Fix NPE in resetVisibleLimits

* resetVisibleLimits can be called via BootReceiver, which isn't in the
Email app process, so it can (and apparently did) get a RemoteException
* This causes the query to return null; we have to check for it or we
get this NPE

Bug: 2564904
Change-Id: I4b75e3c74ac7d1276f609f2fc957afdaa8da2f64
ndroid/email/Controller.java
78021cbbf8154898ce4e68d8c2d2871568cda5e3 01-Apr-2010 Marc Blank <mblank@google.com> Don't add "Invitation: " to meeting invitations

* Turns out that most other clients omit this.
* This has the pleasing effect of fixing the referenced bug
* Update unit tests

Bug: 2561821
Change-Id: I39f7db7e05be590373cd5f3d9b23c7ee21bde4f7
ndroid/exchange/utility/CalendarUtilities.java
82701d77250850939e64365b8c2a45e59e822cff 01-Apr-2010 Marc Blank <mblank@google.com> Only send meeting emails after upsync is confirmed finished

* We were queueing up emails during our upsync, but before the upsync
was complete. If there were connection issues, we could pile up
multiple copies of the same message, each of which would eventually
get sent out
* Fix is to simply queue up the outgoing mail and send it all after
the sync operation is complete.

Bug: 2515975
Change-Id: Ide3eb2deb6e959d0637d28efabd613efb3c6e209
ndroid/exchange/adapter/CalendarSyncAdapter.java
cf274512ed722cd039e21ab05ce172052740116f 01-Apr-2010 Marc Blank <mblank@google.com> Fix conversion of UNTIL date in RRULEs to EAS calendar dates

* Because we were sending these in the wrong format, upsynced changes
were failing, with the result that both the original event and
the "new" event (from the UNTIL date forward) remained in the calendar
* Fix is to send the proper format; unit test updated to reflect the
change
* Also, we only send the date of an UNTIL, rather than the to-the-minute
time; it turns out that EAS expects to see only a day for UNTIL.

Bug: 2561818
Change-Id: Ic4eacbe96c713d58c637386ceab2cf22ebe3c2d4
ndroid/exchange/utility/CalendarUtilities.java
1c48450c02ea33e498e17a1bfc9f95576d3027b6 01-Apr-2010 Marc Blank <mblank@google.com> Fix the VCALENDAR we send with all day events

* We need to send date only (without time) in the VCALENDAR file for
all-day events
* Add unit test for this case

Bug: 2561789
Change-Id: I33a43c7a248059c97482ca147a23af083744118a
ndroid/exchange/utility/CalendarUtilities.java
1b3166e84a63ba0fd4f4e4cb45abada8fb135042 01-Apr-2010 Marc Blank <mblank@google.com> Merge "Allow upsync of photo/note deletion for Exchange contacts" into froyo
53031a59a64abda404d8943bb83d65cb38574fe3 31-Mar-2010 Marc Blank <mblank@google.com> Allow upsync of photo/note deletion for Exchange contacts

* Always send up something when upsyncing photo and note
fields
* This allows the client to delete the data, as these fields
are NOT deleted if skipped in an upsync (unlike other
fields)

Bug: 2558998
Change-Id: I9c874432108eedd84a351918f818c32e6e579dd7
ndroid/exchange/adapter/ContactsSyncAdapter.java
700b373007da10b456e1f9cb0fde2a021fdee84c 01-Apr-2010 Marc Blank <mblank@google.com> Send CANCEL method with meeting cancellations

* We should be sending CANCEL as the method with cancellations
* Fix this and update unit test

Bug: 2527606
Change-Id: I2b982e4bfd1dbc57660cf578702edf49584d2957
ndroid/exchange/utility/CalendarUtilities.java
3fc61de54fbf462970ba54807fc297970c800809 31-Mar-2010 Marc Blank <mblank@google.com> Make serializer logging respect user's debug setting

* We now check that the user has verbose debug logging on
before spamming with serializer logging

Bug: 2561834
Change-Id: I5eda2ca5f16cde728b0febaa990d66fc99bb93a0
ndroid/exchange/EasSyncService.java
a3235209b014b816675cad664fe589c014308c1f 31-Mar-2010 Marc Blank <mblank@google.com> Move comment to correct spot

Change-Id: Iaa76f2b014dca3651e0d62122e5d0df533c6bc73
ndroid/exchange/SyncManager.java
3ae84b247d1a416b91c6dc9585898108389e4e6c 31-Mar-2010 Marc Blank <mblank@google.com> Fix race condition in Exchange account creation

* Now that observer code has been moved to worker threads, the order
in which various pieces of account creation are executed has become
indeterminate
* Because of this, our EasAccountsUpdatedListener could use a stale
list of EmailProvider accounts when performing reconciliation with
the AccountManager's list of accounts
* The fix is to ensure that EasAccountsUpdatedListener's worker thread
causes the cached EmailProvider account list to be updated before
calling the reconciliation method

Bug: 2558317
Change-Id: Ia94a8301845cf6c06f8efecd408eb237474f781a
ndroid/exchange/SyncManager.java
e2c2d81c31e078d81d52182202adbcc94b64750f 31-Mar-2010 Mihai Preda <preda@google.com> MessageView: on answering invitation move in only one direction.

Bug 2541925

Change-Id: I62b454069f8c20403f15e0b58e597963809f830d
ndroid/email/activity/MessageView.java
1a66cf0056e0b04fecbc37ff7a0330ce8eed8445 31-Mar-2010 Fred Quintana <fredq@google.com> some changes due to an API review
- make EntityIterator extend Iterator and thus not throw a
RemoteException, instead converting it into a RuntimeException.
- rename ActiveSyncInfo to SyncInfo
- change getActiveSync to getCurrentSync
- remove the accessors in SyncInfo and instead make the final
fields publicly accessible

Change-Id: Id1a47bba27042de4c21451a91cc43fa70eb68ec6
http://b/issue?id=2553539
http://b/issue?id=2553541
ndroid/exchange/adapter/ContactsSyncAdapter.java
38e52ccc72772a1771845b8704b11a89cd7207aa 31-Mar-2010 Mike LeBeau <mlebeau@android.com> Fix build breakage caused by mblank in 47050.

Change-Id: Ic67fbc611c707a6ff4de558ca15e848f25b92728
ndroid/email/mail/store/ImapStore.java
13e497dd406c910219b3bd9f71895808b4a91673 30-Mar-2010 Marc Blank <mblank@google.com> Fix NPE in ImapStore.create

Bug: 2557382
Change-Id: Ia2135e332162b0ae9d0ab85fbcc532ead089e815
ndroid/email/mail/store/ImapStore.java
a05114524af9531bbd3d21407fb59a4938989b19 30-Mar-2010 Marc Blank <mblank@google.com> Merge "Changes to connectivity locking and sync holds" into froyo
6cec1104fe8863fce2ee86ff5145076e6c436a00 29-Mar-2010 Doug Zongker <dougz@android.com> relocate android.util.base64.* -> android.util.*

b/2553469 - API REVIEW: android.util.base64

Change-Id: I5394427a8e2c94b87ca45a533e417f7088a69f8f
ndroid/email/Utility.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
d40af6c074f3f9ebd1cfdeb86402646f84ce7f87 29-Mar-2010 Marc Blank <mblank@google.com> Changes to connectivity locking and sync holds

* Clean up some code related to connectivity locks and sync holds
* Add logging related to sync holds after we re-establish connectivity

Bug: 2551482

Change-Id: I1b1f03cc1428e25be90c5e60555adf9ab1bf3ab9
ndroid/exchange/SyncManager.java
31edb63c24d247430ba10c1e83d5d57c67ad5629 29-Mar-2010 Marc Blank <mblank@google.com> Merge "Add message text for invitation replies" into froyo
a6e1f8d4562ed437d67378935c8be6cbfe9b86f9 26-Mar-2010 Marc Blank <mblank@google.com> Add message text for invitation replies

* Updated unit test to make sure there's message text

Bug: 2548714
Change-Id: I70e05b72539ff9ba7d582a51421e5345aa6151e4
ndroid/exchange/utility/CalendarUtilities.java
e675d99cc2764274b3ec295371ace8ea58af37eb 29-Mar-2010 Marc Blank <mblank@google.com> Merge "Handle case of typed data with a null type" into froyo
02a63da3c6f514116401771801115b94c09e3749 28-Mar-2010 Marc Blank <mblank@google.com> Merge "Fix sending of cancellations to uninvited guests" into froyo
54585c95116e02be6940861d81033c5c02017514 27-Mar-2010 Marc Blank <mblank@google.com> Fix sending of cancellations to uninvited guests

* Had to add an optional argument to the email creator for this case,
since there may not be any remaining addressees to send to (if the
only guest was uninvited)
* The optional argument forces the creation of a message, even if there
are no addressees

Bug: 2548465
Change-Id: I88784f49ce7afedce331fc756c5ecef4e73a07bc
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
a3ce319ed08bbc2617af434bd68db0747d2d64e9 28-Mar-2010 Marc Blank <mblank@google.com> Merge "Check for dirty events in specified account before syncing" into froyo
7fcb50591328f4b195ef44e52b0653b39c9a9ad1 28-Mar-2010 Marc Blank <mblank@google.com> Harden SyncManager against NPE's

* Fix a few cases in which we don't check that a mailbox still exists
before acting

Bug: 2551196
Change-Id: Ie339d821630d84b30aa3a19898d42b784ec1a686
ndroid/exchange/SyncManager.java
229666e10693e156ad99397f36dedf95b53f86fc 27-Mar-2010 Marc Blank <mblank@google.com> Check for dirty events in specified account before syncing

* We were starting a sync if there was a dirty event in ANY of
our Exchange accounts
* Change to check for the specific account before syncing; this
saves provider queries and service (i.e. thread) startups

Bug: 2550620
Change-Id: I83e953f1bade9fa269b777e96121a63664e8edc8
ndroid/exchange/CalendarSyncAdapterService.java
729b5ca9baa21f81ec5f3498e49cfcb275dbe52a 27-Mar-2010 Marc Blank <mblank@google.com> Handle case of typed data with a null type

* There's an NPE if we downsync a contact containing a piece of
typed data for which there is no type specified in the database
* Check for this and accept "no type" as a match

Bug: 2539843
Change-Id: I155b635a1f9850af9813681f502f3565c3cfcd4b
ndroid/exchange/adapter/ContactsSyncAdapter.java
d6821380902080bc785cd381a0da40a3ec67406f 27-Mar-2010 Marc Blank <mblank@google.com> Merge "Synchronize access to our cached account list" into froyo
bd841a779e340b89323cf7954d1b4401435b53f8 26-Mar-2010 Marc Blank <mblank@google.com> Synchronize access to our cached account list

* The recent change that moves our account change handling out of the
UI thread caused ConcurrentModificationException's during account
creation
* We now synchronize all access to our cached account list to prevent
this

Bug: 2546724
Change-Id: I92b2becedd36a335a81f7e3bd9617f2923e00e6c
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
34cd4cadf36ba68e97c9c0524844946c69b1f146 26-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Properly handle old style (<= 1.6) account shortcuts." into froyo
4b4e00e4ce53a1c782e08f9819e394f34971565f 26-Mar-2010 Marc Blank <mblank@google.com> Fix #2548436 (Use EVENT_TIMEZONE rather than TIMEZONE)

* Prior fix used the wrong column when adding time zone information
to downloaded exceptions

Bug: 2548436
Change-Id: Idc1001fd58d2fba51823624a15862fe439c9ff6a
ndroid/exchange/adapter/CalendarSyncAdapter.java
41d17202f5fd4992f870e4596de2c564659e92c3 26-Mar-2010 Marc Blank <mblank@google.com> Make sure we only upload exceptions for the correct event

* We weren't checking calendar id along with original event id when
uploading (original event id isn't unique)
* Fix the query selection to ensure finding the correct exception(s)

Bug: 2545659
Change-Id: I276dd10e2be171bd9d4f3300cdc8843bb28f2781
ndroid/exchange/adapter/CalendarSyncAdapter.java
a942858f0dc26158430a93f5dfd2d91f07471d11 26-Mar-2010 Makoto Onuki <omakoto@google.com> Properly handle old style (<= 1.6) account shortcuts.

A desktop shortcut to an account created on donut or before points at
com.android.email/.activity.FolderMessageList, which we've already removed.

- Added a dummy FolderMessageList to receive it and redirect to MessageList.
- Removed FolderMessageListUnitTests, which was left unremoved.

Bug 2535335

Change-Id: Ie5ffa158882633a4929c4c47a3d9625fd1626863
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/Welcome.java
ndroid/email/provider/EmailContent.java
e3bb5a8be4f40a4d598753445c0fe72a324aeba0 26-Mar-2010 Marc Blank <mblank@google.com> Merge "When syncing, put time zone into exception events"
82b2453b97c69d3cab169a7c00e4c410006ee068 24-Mar-2010 Marc Blank <mblank@google.com> Clean up EAS -> TimeZone determination code

* Use one minute before/after for transition checking, instead of the
sloppier early version
* Add tests for additional known time zones
* Change most methods in CalendarUtilities to package private (for use
with unit tests)
* Clean up a little bad formatting

Change-Id: I9e5be5e1c859f2294adf06874459f7db15fb8c22
ndroid/exchange/utility/CalendarUtilities.java
249c6f77c11137de6fbd2c8106959d6a036f0d6a 26-Mar-2010 Marc Blank <mblank@google.com> When syncing, put time zone into exception events

Bug: 2545885
Change-Id: I41d504f16e9fc4776d2d8d7bbd2682b5940cf1d1
ndroid/exchange/adapter/CalendarSyncAdapter.java
812983a3411d3c274fe8063c982fb178936986e2 26-Mar-2010 Marc Blank <mblank@google.com> Merge "Don't send bare line feeds to EAS 2.5"
eba33f8b5a0cc4a28ae5a9d6632df475c4b0a794 25-Mar-2010 Marc Blank <mblank@google.com> Don't send bare line feeds to EAS 2.5

* EAS 2.5 doesn't like seeing bare LF's in Calendar location
and description, and Events including them won't sync back to
the server
* Create a utility to replace bare LF's with CRLF and write
unit test for the utility
* Fix the bug by using this utility

Bug: 2542220
Change-Id: I2c72d23f15e3a922ebe3585e063abe9fa9e2366f
ndroid/email/Utility.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
a2bb14bd2790a9ce23fa5419f9f22f6f0225d905 25-Mar-2010 Marc Blank <mblank@google.com> Run AccountObserver's onChange in a background thread

* AccountObservers do a fair amount of database access, and all of
this should be done in a background thread, so we'll move it there

Bug: 2545753
Change-Id: I5a38677213a923d44eadade75ae32e151e9100da
ndroid/exchange/SyncManager.java
fe61f358ab67cac2aa454a6dd3ea6bbf876e343c 24-Mar-2010 Makoto Onuki <omakoto@google.com> Moved fromUtf8 from TestUtils to Utility.

And cleaned up SimpleIcsWriter.toString().

Change-Id: I383d91256c48be5263c695c8e8dd151d0e95d0a6
ndroid/email/Utility.java
ndroid/exchange/utility/SimpleIcsWriter.java
e5be03d497501945704414241a433318b5bf709d 23-Mar-2010 Marc Blank <mblank@google.com> Move calendar observer code into background thread

* Calendar observer code does database access (sometimes quite a
lot), so it shouldn't be run in the UI thread

Change-Id: Ib6ec5ac3105df6d3fc45004dc2b09be4e33a11ac
ndroid/exchange/SyncManager.java
95492af7a176fc193139cddb5f45c11436763630 23-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Show a calendar invitation icon on message list."
20c067c67c23e81a282cf89440055d4506e37476 20-Mar-2010 Makoto Onuki <omakoto@google.com> Show a calendar invitation icon on message list.

Bug 2522928

Change-Id: Ib29c7ee187cb0d864849b83693906b0a3b490734
ndroid/email/activity/MessageList.java
d5822018fb0f5f994bc76af716e6b8c97adb60e8 21-Mar-2010 Marc Blank <mblank@google.com> Clean up VCALENDAR/TIME_ZONE_INFORMATION code

* Fix the transition times so that they occur at the hour
* Remove an unused variable
* Fix a reference to Calendar.HOUR that should have been
Calendar.HOUR_OF_DAY
* Confirm that unit tests work properly

Change-Id: I3eaf31d160e97b5f3ba59c83878359085aea960d
ndroid/exchange/utility/CalendarUtilities.java
a0b4907ca5b082962bd596fba29d2c8649386cf2 21-Mar-2010 Marc Blank <mblank@google.com> Fix race condition that results in incomplete accounts

* Remove some very old code that updated the Account in the database
when finishing an EAS FolderSync. The old code saved away the entire
Account structure using getContentValues(), which has long been recognized
as dangerous, since the data being saved might be stale.
* In this case, we were clearing the INCOMPLETE flag in another thread, but
FolderSync was saving away the old value (with INCOMPLETE set) along with
all of the other columns.
* Ironically, the old code is entirely obsolete, so the solution is to
simply remove the update call.

Bug: 2501574
Change-Id: I9eccbde40e05c83ec5f0ab1d3387289286acc5f3
ndroid/exchange/adapter/FolderSyncParser.java
d673da2868f55f910481e9768bea596db7879816 20-Mar-2010 Marc Blank <mblank@google.com> Don't send null/empty values in SimpleIcsWriter

* Previously, we would send "0", which is just wrong. Better to
send nothing
* Make sure that all tests pass

Bug: 2531679
Change-Id: I01412c6c6f7a2570fafadede75671012b917d25b
ndroid/exchange/utility/SimpleIcsWriter.java
a3b75594040a97fb40f1fdac55e5fd7a87ba5e6e 20-Mar-2010 Marc Blank <mblank@google.com> Handle other validation errors more appropriately

* Previously, we handled the error case for security related errors
* Add code to fail on ANY error, and in particular to recognize the
error in which an OWA server address is used instead of an EAS
server address

Bug: 2494110
Change-Id: Iab7df56e82f5ff73b1f58d386ec6f844db26a312
ndroid/exchange/EasSyncService.java
22d29c67dacf4e8155a588d59815f1f97ecf0588 19-Mar-2010 Makoto Onuki <omakoto@google.com> Fix potential NPE with restoreMailboxWithId().

There are a few places where we don't do the check in restoreMailboxWithId,
but they don't look trivial enough for me to fix.

Bug 2530534

Change-Id: I77b37a87ef108048077f14c1e8a3457ee494100a
ndroid/email/Controller.java
ndroid/email/activity/MessageList.java
ndroid/exchange/EasSyncService.java
e3fbaf56e859888bb219d42f850a36c7392bca53 19-Mar-2010 Marc Blank <mblank@google.com> Merge "Handle EAS versions better"
caba6df302ac4d81674c5a2def5579cd47696bf5 19-Mar-2010 Makoto Onuki <omakoto@google.com> Removing litter.

Change-Id: I96bc07a6af1de57334e936879febadb51e3c125d
ndroid/email/activity/AccountFolderList.java
e4cd885ec42d8f2f642b1b8c9b2740ca666b6075 19-Mar-2010 Marc Blank <mblank@google.com> Handle EAS versions better

* Properly parse the server's supported versions
* Choose the highest server version that we support
* Fail with MessagingException if we don't support any server
versions

Bug: 2527408
Change-Id: I0a2822c8fab31a65c8fea9b78b4a8c23df1804a3
ndroid/email/mail/MessagingException.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
a4049ccbdbef0fa86e1dc50eecf0b8a4fd1857dc 19-Mar-2010 Marc Blank <mblank@google.com> Merge "Do alert work in background thread"
0aa0cd12eb8b2ea205582854abd1651d7d593b00 19-Mar-2010 Marc Blank <mblank@google.com> Merge "Send appropriate ics message for cancellations"
39ea302126b6d205ae561a9c3f568b75aa6a202a 19-Mar-2010 Marc Blank <mblank@google.com> Send appropriate ics message for cancellations

* We were sending cancellations with a request for reply, which is
incorrect
* Send the correct dats in the ics attachment
* Update unit test to reflect this

Bug: 2527606
Change-Id: I4cea0bb8f1c29a3cad8d09fd6a4750f7ab067229
ndroid/exchange/utility/CalendarUtilities.java
bb2f25a23a51db0cd7a564950dd9a0649bf01346 19-Mar-2010 Marc Blank <mblank@google.com> Do alert work in background thread

* An ANR was reported in MailboxAlarmReceiver
* The reciever calls into SyncManager, which does some database
operations, and may abort an I/O operation in a sync service
thread
* Move this potentially long-running code into a background
thread

Bug: 2215045
Change-Id: Id65c51f706b212d6b50af3921f3ba3dc2d014ce0
ndroid/exchange/SyncManager.java
7cda118d3547695202b4ed051323671ba7afe2a7 10-Mar-2010 satok <satok@google.com> Extract delete acount function from UI thread to async task

BUG: 2474078
BUG: 2438333
Change-Id: Id9aac4c73064f05aa666cda26005b61c04fc262e
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListItem.java
ad33c5acf4262d36fe91e0eca9d87738885b4ed0 19-Mar-2010 Marc Blank <mblank@google.com> Merge "Send cancellation mail to removed attendees"
f7da371234fd35ecca11d1087e21170a0135c781 19-Mar-2010 Jim Shuma <jshuma@google.com> Merge "Add "vibrate when silent" mode to notifications"
020af43452cf49e40729793a9f8a85c2637576d5 18-Mar-2010 Marc Blank <mblank@google.com> Fix bugs related to disabling Exchange calendar from UI

* There was a TODO for this... :-)
* First, I added some logging to help debug this kind of situation
in the future
* I also now forcibly stop any ongoing sync of the calendar being
disabled; this appears related to the problem of Events not
reappearing
* Added a kick() after the calendar is re-enabled to make sure it
starts resyncing immediately.

Bug: 2526924
Change-Id: Ib18f4c3c4e016f5cb5205fea5f3f12c0782b5e54
ndroid/exchange/SyncManager.java
9e2ddca59d048fc9ac55278b193ee36b330a7981 17-Mar-2010 Jim Shuma <jshuma@google.com> Add "vibrate when silent" mode to notifications

* Add "vibrate when silent" choice in UI
* Add storage for it in Email's provider. Existing accounts default to
their current settings (always vibrate / never vibrate).
* Respect new mode when notifications are posted
* Updated existing unit tests

Bug: 2457183
Change-Id: I5c933ac39dbef8b2028255f330e0b084a445421a
ndroid/email/Account.java
ndroid/email/LegacyConversions.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
92ef20a5c3cc4d040b81661bd21c0f7f79bc5a10 18-Mar-2010 Marc Blank <mblank@google.com> Send cancellation mail to removed attendees

* We now keep track of attendees in the Event's extended properties
* When a message is updated, we compare current attendees with the
original list, and send cancellations to those who have been removed

Bug: 25623726
Change-Id: I7b3df99e62fb3d4a1482bd6d4612647f5bdb756a
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
aadee36a34395fe2b97c03eb39be24287ed6ad65 18-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Eliminate duplication in Yahoo! sent mailbox"
c4fcd852ba2437645afa5c90dcbac8a66e8dbf25 18-Mar-2010 Andrew Stadler <stadler@android.com> Eliminate duplication in Yahoo! sent mailbox

* Yahoo! is not supporting search by UID so I can't identify the new
the UID after I upload. This inability to correlate the local and
remote messages means that we wind up syncing the same message back
down, in a loop, which spawns more messages.
* Yahoo! has partial support for UIDPLUS, and reports the new UID when
I append (upload) messages.
* Modify IMAP parser to parse response lists
* When APPENDUID is reported, use it (and skip the search)
* Modify the few other existing users of response lists to use the
parsed versions instead. Provided a couple of lightweight utilities
to make it easier to work with ImapList.
* Unit tests for most of it.
* Optimization: share a static date/time parser for all IMAP connections

Bug: 2448220
Change-Id: Ic10fc1a195ccf4671a498188cc8b17848c8d9df7
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ca8cdab2d1c0a9af0555b6a06d4451c006d77d47 18-Mar-2010 Marc Blank <mblank@google.com> Merge "Don't show attendee status for Exchange events"
4655cee65a79aed2fb07dc77baee35a9607d2d99 18-Mar-2010 Marc Blank <mblank@google.com> Don't show attendee status for Exchange events

* There are serious issues with showing consistent and accurate attendee
status for Exchange 2007 events
* Unless and until these can be resolved, it is better to simply not show
the user the supposed attendee status (since it might well be wrong)
* In this CL, I never set the attendee status; therefore, it will appear
"unknown" and be shown simply as "Guest" when viewing the Event in the
Calendar app.
* Will create tracking bug for this, so that we can revisit for a later
release.

Bug: 2524410
Change-Id: I97fdd26750c68ff25bbb102547071c728e4124a9
ndroid/exchange/adapter/CalendarSyncAdapter.java
f223af13927b4f9012451e179631d6ef7897e632 18-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Clear notifications when deleting accounts"
6d55bb08fd5b703cf74771fd7f11b90e5e160187 18-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Fix cases of attachments with no name"
7d738cb7e89353c51c567e466a135b54337f310d 18-Mar-2010 Andrew Stadler <stadler@android.com> Fix cases of attachments with no name

* Most clients send name= in the content-type, but a few clients
send only filename= in content-disposition.
* There was code to handle both cases, but due to two typos, it didn't
work.
* Most easily reproduced by sending from hotmail/live web client.

Bug: 2366961
Change-Id: I1d9a00b9b5fd1094cfb8566c3248d94286a8ae91
ndroid/email/LegacyConversions.java
cb98193f85faddf96bd8b9ad39ef961e50bd2505 18-Mar-2010 Andrew Stadler <stadler@android.com> Clear notifications when deleting accounts

* Quick fix for the bug that notifications may be stale after
and account is deleted.

Bug: 2202317
Change-Id: I950d173d20dee443b03b40ee04618afb98a95f38
ndroid/email/activity/AccountFolderList.java
a29495c03cb9579afde122b5f27a5b5908613723 17-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Add a flag to dump email messages."
dfeb1184ebf6c59fc6e617149e03edb73b7e0df7 17-Mar-2010 Makoto Onuki <omakoto@google.com> Add a flag to dump email messages.

It's useful to debug MIME related problems.

- New MimeStreamParser.LOG_MESSAGE flag
- Cleaned up LoggingInputStream, which now supports all InputStream methods
(e.g. close, available, etc.) properly.
- LoggingInputStream now dumps non-printable ascii chars as '\xXX'.

Change-Id: I4391e125abd418defc1dc21e4f35cf6ef8448acb
ndroid/email/Utility.java
ndroid/email/mail/transport/LoggingInputStream.java
ndroid/exchange/adapter/EmailSyncAdapter.java
5957e89e95da029ef5972db4c561dbf8fd9ab4bc 17-Mar-2010 Marc Blank <mblank@google.com> Merge "Send meeting invite mail as multipart/alternative"
0ed690bfb4fdfa86cb6f75c19e24b8ff39a1756c 16-Mar-2010 Marc Blank <mblank@google.com> Send meeting invite mail as multipart/alternative

* Turns out that Exchange 2003 requires the ics attachment to be in a
multipart/alternative, rather than a multipart/mixed MIME message
* Exchange 2007 accepts both types
* Therefore, we change our output for this particular situation, i.e.
a single attachment that is an ics file, to multipart/alternative
* Rename FLAG_SUPPRESS_CONTENT_DISPOSITION to FLAG_ICS_ALTERNATIVE_PART
and make this flag do double duty - 1) suppress the Content-Disposition
header (also required by Exchange) and 2) send the message as
multipart/alternative
* Add unit tests for Rfc822Output to check that mime parts are composed
properly

Bug: 2516394
Change-Id: I60e26f57b8ecaf01d0340e7828533334e0e7d45a
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/provider/EmailContent.java
ndroid/exchange/utility/CalendarUtilities.java
d806749834f96214595d95b7f904f0a3505f816d 17-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Use proper formatting strings for GAL lookup status"
e281ebc4e2b69ded38e4448c07ca62031553a010 15-Mar-2010 Mihai Preda <preda@google.com> MessageView: reject early invalid messageId.

Bug 2507898

Change-Id: I13148c49d9ad5ddfcf7a757e11651762fc8d1922
ndroid/email/activity/MessageView.java
7b94940c66a30e1ad2aec0668ded2784af0bb5cb 17-Mar-2010 Andrew Stadler <stadler@android.com> Use proper formatting strings for GAL lookup status

* Searching bigcompany.com...
* 12 results from bigcompany.com
* First 20 results from bigcompany.com

Bug: 2249514
Change-Id: Ib3fba9d1ba755d3550235a437f60449bf3c312c3
ndroid/exchange/provider/GalEmailAddressAdapter.java
ddfe27d9a06e1f1ebee8f6cf7948f5fb080b8d25 17-Mar-2010 Marc Blank <mblank@google.com> Only delete events locally when calendar is disabled

* Disabling a Calendar is supposed to delete all events from the
database via CalendarProvider
* We didn't call the delete method with the CALLER_IS_SYNCADAPTER
parameter, so the deletions were propagating to the server, which
is VERY bad
* This CL adds the parameter to the URI used for deletion

Bug: 2521196
Change-Id: Ib366979fe32ebff0f8cfa3e3f0843ad7e2af4d47
ndroid/exchange/SyncManager.java
88a94bca1922615564e70a27bb6ae72bca487c75 16-Mar-2010 Makoto Onuki <omakoto@google.com> Exchange calendar: fixes for the ICS writer.

- Now SimpleIcsWriter does the UTF-8 conversion, and folds lines according
to the number of bytes in UTF-8.
- It now escapes special chars in TEXT values. You can safely put , ; \ or
line breaks. in summary, location, and description.
- Quotes all CN. (leftover from Ibb8f155a)
- Replace "s in CN with 's (rather than removing them)

Bug 2508283
Bug 2515768

Change-Id: Ibdced53ee32bba950608d63f507b11b24eaad7b0
ndroid/email/Utility.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/SimpleIcsWriter.java
40be6b976c33ee19b69409c7f611c07d1917bda3 16-Mar-2010 Marc Blank <mblank@google.com> Add temporary logging to Calendar upsync

Change-Id: Ica4771fb2f6fbe125c7251c0cb4e2f5ecbe88dc3
ndroid/exchange/EasSyncService.java
9d836a9f7fc7708b1034c778acda49f961194d28 16-Mar-2010 Andrew Stadler <stadler@android.com> Merge "GAL (continued)"
caa843068c75b67128ffd9a0fca9e054dfe11a7c 16-Mar-2010 Andrew Stadler <stadler@android.com> GAL (continued)

* Clean up logging
* Clean up TODO's
* Clean up some unused code & warnings
* Bugfix: trim query string before calling provider
* Bugfix: use correct # for "First n results..."
* Bugfix: tie separator position tracking into cursor, to avoid
some concurrency problems when multiple cursors are in flight.

Bug: 2249514
Change-Id: Icf26599ecb9b27cbf88cd80e9abf4a3428598193
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/GalParser.java
ndroid/exchange/provider/ExchangeProvider.java
ndroid/exchange/provider/GalEmailAddressAdapter.java
036170b7e2f81ab3dd99ffd199ddf15c22df98b9 16-Mar-2010 Marc Blank <mblank@google.com> Merge "Fix dtend synced up to server"
1b97c28de259b458a4f33addec1c4173c5aa07f1 16-Mar-2010 Marc Blank <mblank@google.com> Merge "Send appropriate response email when reply from MessageView"
198d518a3af70597eb1b38aafc5662e24227b65b 16-Mar-2010 Marc Blank <mblank@google.com> Merge "Improve message text for invites w/ recurrences"
ad809fd7441d72e8cde7a9e68f5c8b8e7e8c871d 16-Mar-2010 Marc Blank <mblank@google.com> Send appropriate response email when reply from MessageView

* The code was hard-wired to accept (ancient placehold code)
* Send code that depends on the user's actual response
* Rename inappropriately named method in Controller

Bug: 2515961
Change-Id: I8985a3206fc8c4498521b08806a1093abaf4a42c
ndroid/email/activity/MessageView.java
ndroid/exchange/EasSyncService.java
0a6b977939dfa508b4f7348fc145644cd62e7fef 16-Mar-2010 Marc Blank <mblank@google.com> Fix dtend synced up to server

Bug: 2511120
Change-Id: I9194da082f568d804f89d087475efcc11651b081
ndroid/exchange/adapter/CalendarSyncAdapter.java
bf916efe955e07aba2a5bce9eecae325f84d4934 16-Mar-2010 Marc Blank <mblank@google.com> Improve message text for invites w/ recurrences

* Add the (recurring) text when the invite is for a recurring
meeting
* Add a test for message text creation

Bug: 2515474
Change-Id: Ifefbc2ba1ac444175180cb7a58f4ec554d9674a3
ndroid/exchange/utility/CalendarUtilities.java
fa997254d437789ceac60ed787a9e6ccc6dd59dc 16-Mar-2010 Andrew Stadler <stadler@android.com> Merge "GAL UI cleanup work (in progress)"
26b4b47fb3762eece2336d718662f2c1f31e41ab 16-Mar-2010 Andrew Stadler <stadler@android.com> GAL UI cleanup work (in progress)

Provider:
* Move UI (e.g. separator) out of provider, create it entirely in adapter
* Remove timestamp based disambiguation (TODO throttling some other way)
* Add cursor "extras" to report total # of results on server
UI:
* Rewrite background-foreground threading to be more efficient and
signal changes back to UI by calling notifyDataSetChanged())
* Separator strings per Rich's UI (not using real strings yet)
* Remove link back to AutoCompleteTextView

NOTE: There's a bug in ACTV that is causing the window size not to
change properly on notifyDataSetChanged(). Framework team to investigate.

Bug: 2249514
Change-Id: I183b200dcdaa268f0612d2de6442db28e1491d40
ndroid/email/activity/MessageCompose.java
ndroid/exchange/provider/ExchangeProvider.java
ndroid/exchange/provider/GalEmailAddressAdapter.java
fa9fed9b849600a6f8babd1dbca70480a58eac0d 16-Mar-2010 Marc Blank <mblank@google.com> Fix NPE in stopPing (when account has been deleted)

* Check for null when retrieving Mailbox
* Fix other two spots where we needed checks; thanks, Makoto!

Bug: 2516857
Change-Id: I56ccca16b5f85521e67ef6f92d1cd8f10e5f4a44
ndroid/exchange/SyncManager.java
ee1ec2384fdd83a17487de2bcfbd9df3b3e4b995 15-Mar-2010 Marc Blank <mblank@google.com> Fix NPE in exception parsing

Bug: 2516099
Change-Id: I4d64c306f2c0421f0145dab11f10bfb174e46c0a
ndroid/exchange/adapter/CalendarSyncAdapter.java
befa974de8b74877b2f1ea97e672d3eb2067a6d9 15-Mar-2010 Marc Blank <mblank@google.com> Fix utility that retrieves tokens from RRULEs

* The utility wasn't handling commas properly, causing the referenced
bug
* Fixed the utility and updated the relevant test case

Bug: 2515488
Change-Id: Id229e50fcaaed1a0142db301eedaaba9209bed13
ndroid/exchange/utility/CalendarUtilities.java
90299163a3bd7a9d9920701af1ed8aa1562743d6 15-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "ICS Writer: Quote common name."
fc3fc5d26c1f0196d43974c4dcb27efba0b72174 15-Mar-2010 Makoto Onuki <omakoto@google.com> ICS Writer: Quote common name.

Quote common name (CN) in ATTENDEE per RFC 5545.

Bug 2510783

Change-Id: Ibb8f155a43cbe43886b903472489563242cb6771
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/SimpleIcsWriter.java
e2c56fc88c2357892d894a9ff4d6eccd059a5a01 13-Mar-2010 Andrew Stadler <stadler@android.com> GAL support

* Provides GAL autocomplete in email address fields in message composition.

General TODO list:
UI: Implement divider in adapter, not in GAL provider
UI: Use listview_separator for divider
UI: Clean up strings, move all to resources
UI: Only have one GAL lookup in flight at any time
UI: Unit tests

GAL: Use side channel for status, not a row
GAL: Shorten timeout for interactive GAL lookup
GAL: Make watchdogs work
GAL: Figure out why some calls never return (conn pool exhaustion?)
GAL: Unit tests

Bug: 2249514
Change-Id: I513e25628bc2f5ed0920e0ee509cd598b1817b3a
ndroid/email/EmailAddressAdapter.java
ndroid/email/EmailAddressValidator.java
ndroid/email/activity/MessageCompose.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/GalParser.java
ndroid/exchange/adapter/Tags.java
ndroid/exchange/provider/ExchangeProvider.java
ndroid/exchange/provider/GalEmailAddressAdapter.java
ndroid/exchange/provider/GalResult.java
20225d57609d6a5e482c088fdad60c29212d31a0 12-Mar-2010 Makoto Onuki <omakoto@google.com> Explicitly send ICS files in UTF-8.

- In memory attachments are now stored as byte[], not String.
We can store any type of contents now.
- Added blob content_bytes to the Attachment table.
The content field is now deprecated and not used.
- Explicitly convert ICS files to UTF-8.

- Added Utility.to/fromUtf8().

Bug 2509287
Change-Id: I3785a365a9a34039ec12ba82bd857dcdbc4de92d
ndroid/email/Utility.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/utility/CalendarUtilities.java
8c1613b4f7d942cb53744fc11006211033b81249 14-Mar-2010 Marc Blank <mblank@google.com> Only send one reminder time to Exchange server

* Upsync fails if we try to send more than one reminder time
* CalendarProvider allows an unlimited number of reminders
* If there are reminders, send the largest number (i.e. the earliest
reminder)

Bug: 2513106
Change-Id: I90a2fb145446e403edeabc654f725cc88ef1656e
ndroid/exchange/adapter/CalendarSyncAdapter.java
217cfba1f64bb1f86463804bcfeea6fca9ff2aef 13-Mar-2010 Marc Blank <mblank@google.com> Delete Exceptions after deleting an Event

* CalendarProvider does NOT delete exceptions for deleted Events
because the server handles this; this isn't right for Exchange
* Add a second delete operation to delete Exceptions
* Remember to cancel this second deletion for invalid events

Bug: 2512985
Change-Id: I848c8937945b3774251e517071c81a334a77f1a8
ndroid/exchange/adapter/CalendarSyncAdapter.java
9e098eaf75ff51598d55e5748a26e732e7bfb996 13-Mar-2010 Marc Blank <mblank@google.com> Merge "Prevent multiple calls to onDone() in AccountSetupOptions"
b7fe21676ec46ce98e88bc181fc82a18e882236a 13-Mar-2010 Marc Blank <mblank@google.com> Prevent multiple calls to onDone() in AccountSetupOptions

* When "Done" is pressed in AccountSetupOptions and the Account is
EAS, the finish() isn't called until an async method's callback
is invoked (system account creation)
* This allowed the user to execute onDone() multiple times, each
one of which would attempt to create an account
* The net effect was the referenced bug, which can manifest in a
number of ugly ways
* The fix is to prevent multiple calls to onDone()

Bug: 2501574
Change-Id: I61057bbb8c1f85da07e83ed6c56474bfe4e23f6c
ndroid/email/activity/setup/AccountSetupOptions.java
4b3c683014c92ff6e1c9acb96069dffa61e56a22 13-Mar-2010 Marc Blank <mblank@google.com> Improve handling of exception downsync

* We needed to copy some more columns, and also copy reminders
and attendees to the Exception
* Also found a bug in which Description was referenced as a boolean
rather than a String

Bug: 2511405
Change-Id: I485b8d44a6090f8190e681838d2141551227d8f3
ndroid/exchange/adapter/CalendarSyncAdapter.java
82e51e06312c76f37900c7b1718af863caeff9af 10-Mar-2010 Marc Blank <mblank@google.com> Send email related to event exceptions

* We weren't sending out appropriate emails for exceptions and other
event updates
* Write exception specific ics file code in CalendarUtilities (in
the existing ics file creator)
* Send appropriate Update: subject for updated events/exceptions
* Compose simple message text consisting of:
When: <time>
Where: <location>
* Prepend message text for exceptions to indicate that the message
relates to a particular instance of the event:
This event has been canceled for: <date>
The details of this event have been changed for: <date>
* New strings were added in CL#44141
* Updated CalendarUtilities tests

Bug: 2501270
Change-Id: I920de8120bc56d5bd565cbde26ff4807be41579f
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
ea341235826d0d2d1c764bb2344d1e90fa3bb633 12-Mar-2010 Marc Blank <mblank@google.com> Make ORGANIZER_CAN_RESPOND column 0 for Exchange Calendars

* This will prevent the UI from showing attendee status for the
event organizer

Bug: 2507842
Change-Id: If217b10ba9c19812d8f49e72fdae236fb0f4b9f1
ndroid/exchange/utility/CalendarUtilities.java
ff556f7b5f3dd36b6282cbd9acb8d1637f1fb121 11-Mar-2010 Marc Blank <mblank@google.com> Fix #2508283 (Improper wrapping of long text in ics attachments)

* Ignore CR and change LF into backslash + n
* Write unit test for handling of CRLF's
* Rename mLineCount to mColumnCount, which is more appropriate

Bug: 2508283
Change-Id: I8b2081aa474cb07b6cb09383ff6ac58a1dab1bba
ndroid/exchange/utility/SimpleIcsWriter.java
c64ee8f0cb9ff6eea62040e41dcd0e63a5c6a860 11-Mar-2010 Marc Blank <mblank@google.com> Merge "Fix #2507421 related to disabling Exchange calendars"
998709ea4f47078c7532dba208b4cc818fe35463 11-Mar-2010 Marc Blank <mblank@google.com> Fix #2507421 related to disabling Exchange calendars

* The bug is that we shut off sync of the adapter when a calendar is
disabled by the user.
* Instead, we should change the sync interval to never (and set it
back to push when the calendar is re-enabled)

Bug: 2507421
Change-Id: Ieb61e458a0372e40e402691fc4d20b1b85b3a664
ndroid/exchange/SyncManager.java
319155a06124a590593f313980ab4de14dc5b619 11-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Follow-up to MimeMessage efficiency improvements."
019a91e53dc2aa0c2b3d899e21d056f5920b6494 11-Mar-2010 Marc Blank <mblank@google.com> Fix upload of all day events in Exchange calendar

Bug: 2500863
Change-Id: I26f793aa4297103fa513d9cecf4b2b0ec0fa47a6
ndroid/exchange/adapter/CalendarSyncAdapter.java
dfd53b0e821a6c48f128f62566066876a063fed6 11-Mar-2010 Andrew Stadler <stadler@android.com> Follow-up to MimeMessage efficiency improvements.

I missed a case where message-id should not be set locally, which is
the case where the Mime parser clears all headers *and* does not find
a message-id. The parsed MimeMessage should accurately reflect this.

In the old code, the local id was created at construction time and then
immediately discarded by the parser (calling headers.clear()).

In the new code, I was generating a message-id any time I couldn't find
one. Now, when explicitly cleared or removed, I set a boolean to inhibit
automatic generation of a new one.

I also missed the fact that a missing message-id no longer throws an
exception, it simply returns null, and so I changed the code that was
catching that exception to simply check for null.

(Note: Clearly, modeling of legacy behavior is becoming annoying here;
It would be better to do away with all of the automatic logic, and simply
generate message-id locally when appropriate: On locally-generated
messages. I don't want to touch this for the current release, but I left
a note in the code to this effect.)

Bug: 2504774
Change-Id: Ibfcbd2363c7ae39ee6d44e4c3295f88258cb4945
ndroid/email/LegacyConversions.java
ndroid/email/mail/internet/MimeMessage.java
69ade70f2d0857f4eadae97734ee8891e77895cb 08-Mar-2010 Makoto Onuki <omakoto@google.com> Log recent network activities when IMAP parser crashes.

Added DiscourseLogger, which stores last N (currently 64) lines of IMAP
commands sent to the server and responses received from the server.

We dump it to logcat when the IMAP parser crashes, that is, a) getting a
RuntimeException in ImapFolder.fetch() or b) getting a Runtime/IOException
in ImapResponseParser.

Bug 2480227

Change-Id: I6b5a728a7df106627ec29bb3c7c04a97a99b444b
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/transport/DiscourseLogger.java
a5e2aa405723bcbe0c6e1fa14297386d267d6fd2 10-Mar-2010 Marc Blank <mblank@google.com> Merge "Make sure we delete all Events for disabled Calendars"
14b15adbfbbc59a44ff7df015913389e1608c476 10-Mar-2010 Marc Blank <mblank@google.com> Make sure we delete all Events for disabled Calendars

* We were resetting the syncKey in this case, but forgot to also
delete the events

Change-Id: If4042240829c3526b80e2f1558f243097cd7a506
ndroid/exchange/SyncManager.java
44552da606048720de11f89321dc767ef291c391 10-Mar-2010 Andrew Stadler <stadler@android.com> Reduce memory overhead in Message and MimeMessage

Message and MimeMessage were creating a lot of unnecessary sub-objects
even when not needed, so do a bunch of lazy initialization. This should
raise the bar on the size of gigantic inboxes giving us trouble.

* Specific optimizations:
* Replace date formatter with a shared static
* lazy create mHeader (ArrayList)
* lazy create mFlags (HashSet)
* optimize MimeHeader fields class
* lazy create local message-ID (expensive-to-make uuid String)
* make message-id string less expensive to create
* Other cleanups:
* add some override annotations
* privatize some members
* update a fragile test (not a deep fix, it's still fragile)

Side effect, should be faster too.

Bug: 2357564
Bug: 2093422
Change-Id: I8a873879d402e2662339d5398ad0b15da6e580e9
ndroid/email/mail/Message.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
bd2473e818691883e96c9539afd34d8a64a700ce 09-Mar-2010 Marc Blank <mblank@google.com> Only clear dirty flag if we're sure the events were uploaded

* Add new/changed id's to a list, and only clear the dirty flag for
list members
* The implementation is analogous to how deleted items are handled

Bug: 2492857
Change-Id: I3353100ab307a45a5ab684d402253eb589f22008
ndroid/exchange/adapter/CalendarSyncAdapter.java
f448e01478b84bda3787cc57b7ebd6a4f16c894e 09-Mar-2010 Marc Blank <mblank@google.com> Merge "Upload cancellation exceptions properly"
b5dce150680d17f93943a36cc6855b2d786afa90 09-Mar-2010 Marc Blank <mblank@google.com> Upload cancellation exceptions properly

* This was an omission in the code that is now handled

Bug: 2501136
Change-Id: Ib4615e04a1ef61cf07cd356eb3038da3e74a5470
ndroid/exchange/adapter/CalendarSyncAdapter.java
01164908ae394a6bc6df8bf030fc92c6009644b7 09-Mar-2010 Andrew Stadler <stadler@android.com> More work on upgrade accounts

* Locally-deleted POP3 messages are handled properly
* Clean up remaining notes about attachments - code is complete
* Add explicit database close calls.
* Measures to prevent early exit or restart (e.g. by monkey):
* Disallow 'back' key
* Synchronize the main worker, and early exit if not first-and-only
* Fix flicker at end of conversion

Bug: 2065528
Change-Id: Id2990183624ff1f062285a13e29f983cbb1c5e1f
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/mail/store/LocalStore.java
8b8145ebd377cf6efba3fc82eb1497111889cc16 09-Mar-2010 Mihai Preda <preda@google.com> Merge "MessageCompose: when loading message, wait for save to finish."
fd249f61dd9c5fd1e7e0abffcb09b9e285d82bae 08-Mar-2010 Andrew Stadler <stadler@android.com> More work on account migration

* Split account copy loop to do POP3 accounts first, then IMAP
* After upgrading accounts, upgrade folders
* Upgrade messages in those folders
* Preserve attachments on outgoing messages (e.g. drafts)
* Enable composer and start syncing after upgrade
* Fix latent bug in LocalStore (which was not used in Eclair)
* Add tests for upgrade workers in LegacyConversions

Bug: 2065528
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/mail/Address.java
ndroid/email/mail/store/LocalStore.java
5b69eb3e4bb81a059b2f0eaaac85a5b7d444ed20 07-Mar-2010 Marc Blank <mblank@google.com> Make sure that Ping success removes mailbox from error list

* We keep track of sync errors and have an increasing backoff for
failures.
* Make sure that a successful Ping (i.e. one that received a response
at the specified timeout) clears the sync error state for the
pinging mailbox

Change-Id: I35d188aa04618e7604bf6a7905e2ce6992ee3c54
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
0453de3e5e1e660e25096fb6dcae9f29b964e037 08-Mar-2010 Marc Blank <mblank@google.com> Have FileLogger handle errors better

Change-Id: I2c7796495905c484e74e629b881c6f80e7271f5c
ndroid/exchange/utility/FileLogger.java
4b7779fb17d04ffe4026723e62720ed8862e63d9 07-Mar-2010 Marc Blank <mblank@google.com> Enforce system sync settings for Exchange sync

* Only Outbox runs if background data is off
* Calendar/Contacts won't sync automatically if masterSyncAutomatically
is off
* Manual syncs will still operate as usual

Bug: 2099511
Change-Id: I07cd88394caffdd6f2ec475df405058c193116ef
ndroid/exchange/SyncManager.java
c556b6bfe58560ba910cece51f3897ed5c85c027 05-Mar-2010 Mihai Preda <preda@google.com> MessageCompose: when loading message, wait for save to finish.

Bug 2465675

Change-Id: I3290c676bbe63db8441a8f6d320d798abc2fcde5
ndroid/email/activity/MessageCompose.java
b00a660c0af7b0385c409d0b33bd777e7c83c07e 07-Mar-2010 Marc Blank <mblank@google.com> Partially fix #2455341 (Exception adding event w/o DTSTART)

* Apparently, the Exchange server can send event changes that have
incomplete data. This is not documented, and the result is very
bad in that an exception is thrown by CP2, and the sync (and
future syncs) is prevented from finishing
* Wrote some defensive code to detect bad events and simply not
add them
* Open a new bug to track trying to determine why the Exchange
server is sending this kind of data.

Bug: 2455341
Change-Id: Ibcfd412382164351c96f368dc043f38c7b481154
ndroid/exchange/adapter/CalendarSyncAdapter.java
850e9fdda99a444fbaf1c0e68e76a472d5484ccd 06-Mar-2010 Marc Blank <mblank@google.com> Use watchdog alarms with mailbox syncs

* There are cases in which an HTTP POST can hang indefinitely; this
will eventually be caught, but it could be a long time until this
happens (I've seen hours)
* Set a watchdog alarm for all HTTP POSTs (rather than just PING)

Bug: 2492860
Change-Id: Ifccbb54c191c4164bb3188e0291490276bce25fb
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
136d3b96bb57c4838439544a05c9cd92691d2885 06-Mar-2010 Marc Blank <mblank@google.com> Revert code unintentionally checked in; remove unused code

Change-Id: I18160855280173a7599ee7e9252f4dcb2daf7143
ndroid/exchange/SyncManager.java
b581afdfc1e95170e54a616fb4c7b9c50e926c20 06-Mar-2010 Marc Blank <mblank@google.com> Clean up references to INSTANCE in SyncManager

* Help prevent NPEs, especially during testing where the service
is constantly brought up and down
* Generally harden the code and make it clearer

Change-Id: If6c1c74d3fe9a89f67f71c9362a15bfecd70fa58
ndroid/exchange/SyncManager.java
54181220e2936163941cb3e219a64f0720acd467 06-Mar-2010 Marc Blank <mblank@google.com> Fix #2492864 (Upsync failures in Exchange 2003)

* Of all crazy things, Exchange 2003 doesn't like uploading the organizer's
email/name in changes. This isn't documented anywhere.
* Don't send up organizer name/email on changes.

Bug: 2492864
Change-Id: I1f2aefb6f9020025578325c5c7b3cf869f17e27f
ndroid/exchange/adapter/CalendarSyncAdapter.java
99feed44ec7e3b484379fdc26c8fce8c8e97f97d 06-Mar-2010 Marc Blank <mblank@google.com> Stop pings when other syncs in the same account start

* When a mailbox syncs, pings should be aborted, or they appear to
end up timing out with a stale connection (observation from logs)
* The result of timing out is lack of push until the heartbeat time
has elapsed and our alarm triggers
* Also refactor code; some of the names of methods was unfortunate
and these methods were being used in this CL

Bug: 2492848
Change-Id: Ib626a5d3cf6d2c61e3b11f4886a3fedbf9727bfa
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
e8377ae7d452cbdf5045546a86c4b14b637813f9 06-Mar-2010 Marc Blank <mblank@google.com> Merge "Persist pingHeartbeat after pingLoop finishes"
a567edb5157d9c9a8bdeaf359d780475b83b1e03 06-Mar-2010 Marc Blank <mblank@google.com> Persist pingHeartbeat after pingLoop finishes

* We weren't persisting the current heartbeat after the loop finishes,
so we'd end up starting next time with the default start heartbeat
* The new code is a bit more efficient, as we'd start the next pingLoop
with the heartbeat previously in effect

Bug: 2492854
Change-Id: I1d488e3eb05530c452605b25108b35af582e692f
ndroid/exchange/EasSyncService.java
92032cb75cc00ce93e37f333e2ba1a6e1be2eedd 06-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Fix for Account.isValidId() crash when getting -1."
c133e6f1858e33fabaa6ffa173c1402bf9a98e31 06-Mar-2010 Makoto Onuki <omakoto@google.com> Fix for Account.isValidId() crash when getting -1.

Bug 2493026
ndroid/email/provider/EmailContent.java
db9f3d2441d9210e8155f942ba240f9a15f88075 05-Mar-2010 Marc Blank <mblank@google.com> Fix #2490068 (Exchange 2003 won't upload)

* It turns out that Events don't store null for empty fields like location
and description, but rather an empty string.
* Exchange 2003 doesn't like seeing empty values, so check for this before
uploading.

Bug: 2490068

Change-Id: Ib208f9d6ec116a99adf798939dfbc4d4bdd15edf
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/Serializer.java
08ea24ff994d0a3238c04b2965bf2931c87f9d89 04-Mar-2010 Marc Blank <mblank@google.com> Merge "Remove some logging related to alarms/wakelocks"
178888f770a096953ff3fabe42649b4074eb896b 04-Mar-2010 Marc Blank <mblank@google.com> Remove some logging related to alarms/wakelocks

* These logging statements haven't been useful in quite a while
* Leave them in the source, commented out, in case we want to
restore them

Change-Id: Ie8bc6497bc2ea3aa3437f9b2aec8c2b12af907bf
ndroid/exchange/SyncManager.java
989552c10744e2d7f8fca1bdb2baef5273a8a0b9 02-Mar-2010 Mihai Preda <preda@google.com> Move parseDateTimeToMillis() to com.android.email.Utility.
ndroid/email/Utility.java
ndroid/email/activity/MessageView.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
a3cfdd2f3c2ae0ec2f9a675bd4c43c939f57a49f 04-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Continuing work on account migration"
9f73249031303856670651305adff255a00918b7 04-Mar-2010 Andrew Stadler <stadler@android.com> Continuing work on account migration

* Prune all folders, messages & attachments that won't migrate
* Clean up SSL/TLS values for better connection results & security
* Move account setup lookup code to AccountSettingsUtils to share it
* Cleanup config/auto-rotation settings to prevent relaunch of
auto-discover or account check (from exchange).
* A couple of other very small fixes

Bug: 2065528
ndroid/email/VendorPolicyLoader.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/mail/store/LocalStore.java
652be6fb3d04a4ceba6b765cd3160cdaef9e6107 03-Mar-2010 Makoto Onuki <omakoto@google.com> MessageList: Go to Welcome if account not found.

If the account specified with an Intent doesn't exist, show the Welcome
activity instead, which will navigate the user to the appropriate activity.
(e.g. account list if there're more than one account)

Bug 2479609
ndroid/email/activity/MessageList.java
ndroid/email/provider/EmailContent.java
678ab2c780114a935b4802a69e4852956503c2e4 04-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Store UUID instead of _id in desktop shortcuts."
e37881aac562c066e6e666349749e40b7c116a21 02-Mar-2010 Makoto Onuki <omakoto@google.com> Store UUID instead of _id in desktop shortcuts.

- Because AccountBackupRestore won't preserve _id.
- Now MessageList accepts both Donut(1.6)-style URIs and Eclair(2.0-2.1)-style
URIs.

Bug 2479609
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageList.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
bf6f237e21e984a186b4e7799a3edc93f17d83b8 03-Mar-2010 Marc Blank <mblank@google.com> Merge "Harden SyncManager against CalendarProvider query results"
5bf193844ce12afcf5e330e82b4b7c6d89f693eb 03-Mar-2010 Marc Blank <mblank@google.com> Harden SyncManager against CalendarProvider query results

* Unlike EmailProvider, CalendarProvider can return null from queries.
* Put checks for null around code using the result of query to
prevent NPE's

Change-Id: Ia9e8e2f44406dce07dcb2ffa40c22933ec2d4f07
ndroid/exchange/SyncManager.java
a597b59f4619f6112c4625d4960726b82af66cbf 01-Mar-2010 Mihai Preda <preda@google.com> MessageView: invoke calendar for EAS meeting invitation.
ndroid/email/activity/MessageView.java
4476b2a1da49b94569ba7501327d2e9422308f38 02-Mar-2010 Marc Blank <mblank@google.com> Fix #2478711

* We needed to check that clientId wasn't null before sending it back
to the server
* Exceptions don't have a clientId

Bug: 2478711
Change-Id: Ic0d42bb699605a7bb77535b050a4d03b4b6b8b09
ndroid/exchange/adapter/CalendarSyncAdapter.java
d05cc9196a66b2cdff33df5133194a35d3736760 02-Mar-2010 Marc Blank <mblank@google.com> Merge "Add logging when an NPE is imminent when writing WBXML data"
1e474a41ba33e06d49a7a853b7f25ca49591d955 02-Mar-2010 Marc Blank <mblank@google.com> Add logging when an NPE is imminent when writing WBXML data

* We want an NPE to be thrown, since we need to locate/fix errors
of this kind.
* Add logging to help isolate the error

Change-Id: I0f4336b42cbdb88c72459bdeca9c9fc236d9299f
ndroid/exchange/adapter/Serializer.java
4577f71f76c94dc9fcb06efd2656970925dd3f6a 27-Feb-2010 Marc Blank <mblank@google.com> Refine meeting invitation emails; include VTIMEZONE

* VTIMEZONE blocks must be sent in our ics files for meeting
invitations that are recurring, as the originator's time zone
is critical in making attendee's calendars accurate
* Created a utility to convert TimeZone to VTIMEZONE data; the
utility successfully generates data (including recurrence rules)
for the entire tzinfo database (the source of TimeZone).
* Updated our ics files to include VTIMEZONE when appropriate and
send DTSTART/DTEND in local time in that case
* Wrote some unit tests, but more are needed

Change-Id: Iccbdd00cd3b2be2da058b344ebacd17ed6fb0e3d
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/SimpleIcsWriter.java
777dbe5999fd9fea1ed00d6faa59dfd5be7af322 19-Feb-2010 Mihai Preda <preda@google.com> MessageView: use WebView setBlockNetworkLoads().

Instead of setBlockNetworkImage, for security reasons.
Bug 2440315.
ndroid/email/activity/MessageView.java
0ed64fbb3d58d042eac925e249643242baa48b61 02-Mar-2010 Marc Blank <mblank@google.com> Fix #2450322 (ANR's in email)

* My Calendar observer registration code was storing the wrong id
in the hash map. Because of this, the code could be called again
and again, generating lots of extraneous queries and generally
creating a lot of havoc, including ANR's

Bug: 2450322
Change-Id: I03db8156ee99a0c7243a9188558dffc6a843a65a
ndroid/exchange/SyncManager.java
29c38d2c84273851282ae3c799f5bf1845202065 26-Feb-2010 Marc Blank <mblank@google.com> Send cancellation email when user-created event is deleted

Bug: 2465496
Change-Id: I49bf9951e816a4500b7622cbca84fb75edfdb76c
ndroid/email/provider/EmailContent.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
ec2f181b2ce3b01a2a1c50c8a86078de992fd389 02-Mar-2010 Marc Blank <mblank@google.com> Fix build break (Calendar field changed name)

Change-Id: I9532c459f3cf624fa88269370fa36d191481e500
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
726a9fcef3963d8b6f09105e802a8377fbdb567a 24-Feb-2010 Makoto Onuki <omakoto@google.com> Ignore FETCH responses that don't have UID.

We've observed that the secure.emailsrvr.com email server returns an excess
FETCH response for a UID FETCH command. Excess responses don't have the
UID field, even though we request, which led the response parser to crash.

This patch fixes it by making the parser ignore response lines that don't
have UID.

Bug: 2441065
ndroid/email/mail/store/ImapStore.java
642219502c6f0766570a5b8ecc31924bd66990ca 01-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Launch Calendar app when notification is touched."
49491da570eba67b80a8f7151928fb266a32d295 01-Mar-2010 Makoto Onuki <omakoto@google.com> Launch Calendar app when notification is touched.

Launch Calendar app when the "Exchange calendar added" notification is touched.

Bug 2428718
ndroid/exchange/CalendarSyncEnabler.java
361c2ed0eb2271fa735b01bd25f1249df416e695 01-Mar-2010 Marc Blank <mblank@google.com> Merge "Stop calendar/contacts sync in progress when sync setting is turned off"
f8b45d934b7e0acf82ba96b2c48c652d182fdb98 01-Mar-2010 Marc Blank <mblank@google.com> Stop calendar/contacts sync in progress when sync setting is turned off

* Syncs in progress weren't checking the getSyncAutomatically setting in
the account; therefore, a long sync would continue running even though the
user unchecked the "Sync Calendar/Contacts" box in the settings
* Make the adapters check the flag each time through its sync loop (which
is currently 5 items); this should cause in-progress syncs to stop within
a few seconds

Bug: 2185319
Change-Id: Ie181f6de4219ecf27fff58ed59a277ae285622c5
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AccountSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
82ad035422ecca66d3036a303643c4d1282e1a27 01-Mar-2010 Makoto Onuki <omakoto@google.com> Merge "Remove TODO, now that SYNC_OBSERVER_TYPE_SETTINGS is in SDK"
3e69a168b32244410949cfd06c1034a4ef6540dc 01-Mar-2010 Marc Blank <mblank@google.com> Fix meeting invitation email parsing error

Change-Id: Ieaf786f6e466ee57404c6e32ab11c31e35ccc340
ndroid/exchange/adapter/EmailSyncAdapter.java
63a411e9fa20807496f47f9a7cba48d17ffaaffc 28-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix #2474554 (After meeting policy req's, no sync)"
0d0f094de85bef08691453a013ce3c9e889bd71b 28-Feb-2010 Marc Blank <mblank@google.com> Fix #2474554 (After meeting policy req's, no sync)

* We weren't retrying the initial account sync after policies are
successfully enabled. This results in failure to sync, as we
go right into a ping loop.
* Retry account sync after provisioning is first successful

Bug: 2474554
Change-Id: I20165a5941626b690710f82088d8d861679084b2
ndroid/exchange/EasSyncService.java
6d0016229adc13fefe68820fe4d6e46f530952ba 27-Feb-2010 Dianne Hackborn <hackbod@google.com> Move DeviceAdmin APIs to android.app.admin.
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
97c06c9131e1e81014384c181a22a583a3204245 26-Feb-2010 Makoto Onuki <omakoto@google.com> Remove TODO, now that SYNC_OBSERVER_TYPE_SETTINGS is in SDK
ndroid/exchange/SyncManager.java
c18f8f615f134a2b391d06e2d8d49434a8bb94e5 24-Feb-2010 Makoto Onuki <omakoto@google.com> Enable calendar sync for Exchange accounts when upgrading.

On the first boot after upgrade from Eclair, enable calendar sync for all the
existing Exchange accounts, if any, and show notification.

Note on this version, nothing happens when you click on the "Calendar added"
notification. We're waiting for an API (action or something) to launch
calendar.

Bug 2428718
ndroid/email/ExchangeUtils.java
ndroid/email/OneTimeInitializer.java
ndroid/email/service/MailService.java
ndroid/exchange/CalendarSyncEnabler.java
0574a37b4e55fd8f1d013480035efdb8eb6726f8 26-Feb-2010 Mihai Preda <preda@google.com> Merge "MessageView: EAS calendar meeting invite answer buttons."
794f29176d49fa89847e5135fc27d4f86d67faa0 24-Feb-2010 Mihai Preda <preda@google.com> MessageView: EAS calendar meeting invite answer buttons.
ndroid/email/activity/MessageView.java
01c91c307e382d7ae3c4e4ba30b6dd4c347a7dcb 26-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix # 2467153 (Handle change in attendee status from Calendar UI)"
4c6683f152426d60602573535164cd07d3456f45 26-Feb-2010 Marc Blank <mblank@google.com> Fix # 2467153 (Handle change in attendee status from Calendar UI)

* Fill in this missing piece of meeting related functionality.
* We keep track of the last synced attendee status in the newly
created syncAdapterData event column
* When this changes, we (in addition to syncing up the change)
send an email to the organizer (unless we're the organizer, of
course)

Bug: 2467153
Change-Id: I6332fb6d0839e33d4c54bd4358ee0f154bff6612
ndroid/exchange/adapter/CalendarSyncAdapter.java
cb95fbe13554ee6b4e46d9fd3bcd983e09a688cb 26-Feb-2010 Andrew Stadler <stadler@android.com> Send CAPABILITY to all IMAP servers

* Send CAPABILITY to all servers, not just when we check TLS
* Feed capabilities into IMAP ID generation
* Unit tests updated

Bug: 2332183
ndroid/email/mail/store/ImapStore.java
1270218f329b0b0598b410e9807aa5568a8fbef8 25-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix some nasty bugs w/ Exchange calendar upsync"
481ad6a3c5c46e6a25acf787ed1ab98423fbe136 25-Feb-2010 Marc Blank <mblank@google.com> Fix some nasty bugs w/ Exchange calendar upsync

* In #2469254, uploaded new events were rejected because the time zone was
sent after dates; this doesn't matter to Exchange 2007, but it apparently
does to Exchange 2003
* Also, I noticed that upsync was upsyncing all new events, regardless of
whether the event belonged to the Calendar being synced! So this is
fixed as well.

Bug: 2469254
Change-Id: I651d591cf26e00b414f6da19897fddcdb840c97c
ndroid/exchange/adapter/CalendarSyncAdapter.java
4c868ce21fbd5cd5adf14eee7f2c7e01359eeece 25-Feb-2010 Dianne Hackborn <hackbod@google.com> Update to reflect android-common no longer in framework.
ndroid/email/activity/MessageView.java
d4dc57972d5eadad0c9059caa668cd959960949a 25-Feb-2010 Marc Blank <mblank@google.com> Fix #2469569 (Broken EAS calendar downsync)

* Category parsing switch statement was missing a break;

Bug: 2469569
Change-Id: If815300a2ef3824f837f5fa41f55b9421cac8d9b
ndroid/exchange/adapter/CalendarSyncAdapter.java
cdf9dbfa28202337a4a75a410b73f6d408ce72a8 25-Feb-2010 Marc Blank <mblank@google.com> Add logging for persistent wakelock behavior

* Temporarily add email logging for wakelock hold requests

Change-Id: I0233248c34138b3af63abe75e97171da3f4f0031
ndroid/exchange/SyncManager.java
89be77eaea65211fea0ca32efd538318c7e049b3 23-Feb-2010 Marc Blank <mblank@google.com> Send replies to exchange meeting requests

* When the user selects accept/decline/tentative in MessageView, we now send
an email to the organizer, with an iCalendar attachment indicating the reply
* Added a unit test for the reply case, but more tests to be added to handle
other circumstances

Change-Id: Iff799d88a92b6546735bf4965b22febf3a82b56f
ndroid/email/mail/MeetingInfo.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
438dfe64ec2cccbd929edb74c7436851dacfce56 23-Feb-2010 Marc Blank <mblank@google.com> Fix visibility of meeting invite controls

* Was checking for any meeting related email
* Changed to look specifically for incoming meeting invites
* Bug noticed during debugging

Change-Id: I8f43d7a506939dbfc0504f96b249e5c17107bf47
ndroid/email/activity/MessageView.java
d12bb138b0e07e7b683a0d3cbe970b6e415adca4 23-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix bugs in SimpleIcsWriter"
1f4b1b3bd179bb24a477d6701058af74010c926c 23-Feb-2010 Marc Blank <mblank@google.com> Fix bugs in SimpleIcsWriter

* Guilty of failing to run the unit tests
* Fix the (obvious) issues

Change-Id: If12e02facce768ca2d410320bea68a2ca2c116c6
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/SimpleIcsWriter.java
ec88f04deec5065ee521ee56684a6b804ee8edbd 23-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Patch for issue 2363606: Make EAS sync window default 3 days."
6854a4f24a0e93547fc7785553b7f53878a76e08 23-Feb-2010 Makoto Onuki <omakoto@google.com> Patch for issue 2363606: Make EAS sync window default 3 days.
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/provider/EmailContent.java
3b97e1769a623d6eef59981e7ab6193962e90e1a 23-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix #2443881 (Don't display User name field for EAS account)"
18d7222359ac54a5fa788b4a8bb8d58ee16f152b 21-Feb-2010 Marc Blank <mblank@google.com> Send meeting invitations for new/updated Exchange events

* Wrote utility to create an ics file (iCalendar) based on a
CalendarProvider Event. This is a good first pass, but we need
to consider whether to include alarms, etc.
* Use aforementioned utility and new convenience method to send
meeting invitations to attendees of newly created meetings (events)
when they are uploaded to the server via the CalendarSyncAdapter
* Overall, attempted to modify existing provider and rfc822 output
code as little as possible. Rfc822Output is actually very limited
in its capabilities and should be made more robust in future

Change-Id: Ie20b9137df56dc414de6737d05fa40ec9cdf47e0
ndroid/exchange/EasOutboxService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/SimpleIcsWriter.java
5afa18779138e08d6e6cce8b5f428475f8a0b4b1 23-Feb-2010 Andrew Stadler <stadler@android.com> Create a PackedString utility class

* We can use this for meeting request information which will start out with
one or two pieces of information, but might grow in the future.
* Binary compatible with Address.pack() format, so we can eventually
combine code.
ndroid/email/mail/PackedString.java
0faa9881dc45a8ae2203b4da4ae7aeaf32fe2b77 23-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Don't use hidden APIs"
35e5885e9e0728c0a3a69d7fd93600d008bd7c10 22-Feb-2010 Andy Stadler <stadler@google.com> Merge "First part of Exchange meeting request/reply implementation"
3aaba9eb87db34ea0861d70d5c08f84d7ca97ab0 22-Feb-2010 Andrew Stadler <stadler@android.com> First part of Exchange meeting request/reply implementation

* Added two columns to Attachment in EmailProvider
content: content that is written directly as an attachment
suppressDisposition: to suppress the content-disposition header
All meeting invitation emails use these two columns; the first
for ics attachment data (which is quite small, rarely over 1k),
and the second to indicate NOT sending the content-disposition
header; without this, Exchange will consider the ics as an
attachment rather than an iMIP style message (rfc2447)
* Modified tests to include these columns; added upgrade code for
new database version
* New columns and code are designed to be usable outside Exchange,
although there are no other clients of the code at this point.
* Modified Rfc822Output to use the content field, if present, in
lieu of retrieving attachment data via URL; added support for
suppressing the Content-Disposition header
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/adapter/EmailSyncAdapter.java
8068c99945661c7a32d3ae45e3a630d165fa2e3f 20-Feb-2010 Makoto Onuki <omakoto@google.com> Don't use hidden APIs

- The entire android.pim package is hidden.
Use java.text.ParseException instead of android.pim.DateException.

- TelephonyManager.getDefault() is hidden.
Use Context.getSystemService() instead.

- Use newly added Base64 in the framework.

Bug 2226160
ndroid/email/mail/store/ImapStore.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/Duration.java
988981a9ad158deed148711fa6ab92c7760d23a1 22-Feb-2010 Makoto Onuki <omakoto@google.com> Follow up to I07496942.

- Now that reconcileAccountsWithAccountManager() is static, we don't need to
instantiate SyncManager.

- Don't need to set mResolver. reconcileAccountsWithAccountManager() doesn't
use it.
ndroid/exchange/SyncManager.java
5b46171b83d6a92d6cc84db24fb8815d4f8aa50c 20-Feb-2010 Marc Blank <mblank@google.com> Fix #2443881 (Don't display User name field for EAS account)

* Make the field and label GONE for EAS accounts
* Enable the "Done" button at all times for EAS accounts
* Add test case for this, and clean up bad formatting in tests

Bug: 2443881
Change-Id: Ic80b001e443fa37b7cfeb810b1f31edf22b065b9
ndroid/email/activity/setup/AccountSetupNames.java
c98a6131537a08a9eadae9986c39ffae225366a2 20-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix #2457665 (Guests don't appear in Exchange events)"
15036ca0624b2b396beb0ef44ed8a5899f1a1db0 20-Feb-2010 Marc Blank <mblank@google.com> Fix #2457665 (Guests don't appear in Exchange events)

* The "hasAttendeeData" column needs to be set to 1 for all Exchange
events (the case in which the value would be zero doesn't pertain
to Exchange events)
* Also, move code for organizer attendee to the proper place

Bug: 2457665
Change-Id: I3260f883135bb222ce475ccbabf5ba151ab7f557
ndroid/exchange/adapter/CalendarSyncAdapter.java
074969426b4acd7f253796b6ba78ae708aae184c 20-Feb-2010 Andrew Stadler <stadler@android.com> Minor code-review cleanups to previous CL

Related: de7d21c10a6e829dae1b3a00618b871313d5a433
Bug: 2454870
ndroid/exchange/SyncManager.java
de7d21c10a6e829dae1b3a00618b871313d5a433 20-Feb-2010 Andrew Stadler <stadler@android.com> Fix various problems with SyncManagerAccountTests

1. Destructive of existing user accounts in device
2. Can get confused (miscounting) due to existing user accounts
3. Cleaned up use of context and mock context
4. Disallow account backup and account security updates when testing
5. Make account manager removeAccount() calls blocking, so the test
does not proceed until the accounts are really deleted.

Bug: 2454870
ndroid/exchange/SyncManager.java
d3fba0a2d7e943d432cc593fe6602223fa4ae834 19-Feb-2010 Marc Blank <mblank@google.com> Fix #2451630 (No calendar after upgrading Eclair->Froyo)

* Initialization of CalendarProvider Calendar was being done at
account creation time, but Eclair accounts won't have had this
done.
* Move Calendar creation code into CalendarSyncAdapter where it
will be created before the first sync.

Bug: 2451630
Change-Id: I74c669d99f4c8aae4c5847f5cb9b0ca7f44929e2
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/utility/CalendarUtilities.java
263f9bfcfb7accc6aafe29189e670ac8e4a2503e 18-Feb-2010 satok <satok@google.com> Tiny fix of updateListPosition in MessageList
ndroid/email/activity/MessageList.java
13253154c2658c80bf1149044238b27a5ff2ca14 18-Feb-2010 Satoshi Kataoka <satok@google.com> Merge "Show hidden message when the pop-up menu is shown."
0f88306db52c2278555aee6c5756844e1e909646 18-Feb-2010 Marc Blank <mblank@google.com> Merge "Make sure we always send an attendee name w/ email address"
476ee8f7900d55621017966a2d7396cc192af0f2 18-Feb-2010 Marc Blank <mblank@google.com> Make sure we always send an attendee name w/ email address

* EAS requires an attendee name in addition to an address in upsynced
Calendar items.

Change-Id: I9384dcba6fd2fff8be960e18297ef7f641e0abe7
ndroid/exchange/adapter/CalendarSyncAdapter.java
4ae83c58b3e136b4b1e859ee304ad1b332e9597f 17-Feb-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2420412: API review: DeviceAdmin API changes
ndroid/email/SecurityPolicy.java
0f17557c46d72926ecc667ed76624a03f9656156 17-Feb-2010 Marc Blank <mblank@google.com> Fix bug with meeting responses

* We were sending the wrong collectionId to the server, resulting
in a failure (status == 2)

Change-Id: I02ef4039a4ecfbc54ab5cdac2c36e39aea5d7170
ndroid/exchange/EasSyncService.java
1575e7860d2259f1aed201ab23d526cddf787365 15-Feb-2010 Mihai Preda <preda@google.com> MessageCompose: fix delete quoted on reply/forward for EAS.

Also fix display of quoted html text for a draft (Exchange 2007).

Bug 2363249
Bug 2444496
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailContent.java
820d4830cc594a68c4e324b36e7338f5ba41fc52 17-Feb-2010 satok <satok@google.com> Show hidden message when the pop-up menu is shown.

Bug: 2239403

- added animation listener
- change the position of a message when the message is hidden by the pop-up menu.
ndroid/email/activity/MessageList.java
5cb0ccc25b91c815f6fb19f63aec8a613fe03ed1 17-Feb-2010 Andy Stadler <stadler@google.com> Merge "Placeholder invite-accept UI"
643ca675b6226508a41e186c4b49273dcda9c3fc 17-Feb-2010 Andrew Stadler <stadler@android.com> Placeholder invite-accept UI

This is a lightweight placeholder so calendar functionality can be
tested. Simply presents a message about the invitation, and a set of
yes/maybe/no buttons to click.

The UI is shown whenever the message appears to contain an invite.

There are many elements left to be done here:
TODO: response code (EAS protocol) doesn't seem to work
TODO: use real assets & design
TODO: provide a click-link into calendar event
TODO: show calendar icon in messagelist too
TODO: (if possible) persist user's response in button state?
ndroid/email/activity/MessageView.java
ea1eb7a231139db7d1a20771d074ebb2dc872761 17-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Use SSLCertificateSocketFactory to generate "insecure" ssl socket."
c5912e4920bb4fa1979d63d47e7f430e87e3820f 17-Feb-2010 Makoto Onuki <omakoto@google.com> Use SSLCertificateSocketFactory to generate "insecure" ssl socket.

Use SSLCertificateSocketFactory.getDefault() to get an SSLSocketFactory
which performs SSL certificate checks, and getInsecure() to get one
which doesn't (for "accept all certificates").

Bug 2226160
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SSLUtils.java
ndroid/exchange/SyncManager.java
af55e3e436991fde91cdc80efe2786eb8f509d15 16-Feb-2010 Andrew Stadler <stadler@android.com> Respond to loss of device admin status

If the user revokes device admin status, reset our internal state and
the state of any accounts that might have been depending on it. This
halts syncing immediately and rewinds the security/provisioning state
of any such accounts to a known state (as if the account had just been
created.)

Bug: 2387961
ndroid/email/SecurityPolicy.java
4284bc07fb6f01ee80131bb769982a0a3bc604f4 16-Feb-2010 Marc Blank <mblank@google.com> Fix #2321966 (handle EAS version upgrade)

* Add code to recheck protocol version at least once a day

Bug: 2321966
Change-Id: I938a23e1330b7ccfc2149c2988b53462f6a9d7d1
ndroid/exchange/EasSyncService.java
70859ecb4e8291e071c40689a2ee9f2cec4b400c 16-Feb-2010 Marc Blank <mblank@google.com> Merge "Add meetingInfo column to Message; use for meeting invites"
4006e5fc224d097450fd66a321901b6636f7d9c4 16-Feb-2010 Marc Blank <mblank@google.com> Add meetingInfo column to Message; use for meeting invites

* Added a meetingInfo column to the Message database
* When a meeting invite is received, the start time is stored here
in ms from start of epoch. Note that this field is defined to be
a String, for extensibility
* Update ProviderTests

Change-Id: If44892d27ccc5ebdc1f8667befafb8b8a27a2cf4
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/utility/CalendarUtilities.java
33c972e0c62e474d2b2f5a293b92893cac0ea47a 15-Feb-2010 Doug Zongker <dougz@android.com> use the framework Base64 instead of android-common

Change-Id: Ib4f75f66fe8acb1bb5de614bb10e8c938b1d27ef
ndroid/email/Utility.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
d0377b8bb3a837d0f92d3483a72ec2d5a086fabe 16-Feb-2010 Marc Blank <mblank@google.com> Merge "Add support for Exchange 2003 provisioning"
ea0aa9343eb3de7e6cb1c6e1c8827b34ca244882 11-Feb-2010 Marc Blank <mblank@google.com> Add support for Exchange 2003 provisioning

* Provisioning for Exchange 2003 and Exchange 2007 now supported
* Added end-to-end test of Exchange 2003 provisioning parser

Change-Id: I1f86f2909351a8220b963551cd33fecdf59a7e26
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
63647d7870c2374ba266c91648070a502f4b3f7a 16-Feb-2010 Satoshi Kataoka <satok@google.com> Merge "Make "Message deleted" be plural"
cf7581c51c39aad1e8e955bfde62335871a7fd29 15-Feb-2010 Marc Blank <mblank@google.com> Add support for UNTIL in recurrences

Change-Id: I983e1bcb209e794b462ec43efaccefe95bf9bd9d
ndroid/exchange/utility/CalendarUtilities.java
dffe2f486d9c6e12255830372597b5d9ff7bfc49 15-Feb-2010 satok <satok@google.com> Make "Message deleted" be plural

Bug: 2264751
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
c1cea617cc6fa1e4525af3b81a9bc5f2813f57c4 14-Feb-2010 Satoshi Kataoka <satok@google.com> Merge "Add Signature to Email Composer"
672ffc00009dff5824cca775c37fc69c535f5eda 13-Feb-2010 Marc Blank <mblank@google.com> Merge "Handle calendar sync state changes by observing Calendars; cleanup"
694257cb7e7a191b3314cb209b6c38a8a07583ef 12-Feb-2010 Marc Blank <mblank@google.com> Handle calendar sync state changes by observing Calendars; cleanup

* Use a content observer to detect changes in Calendars; we use this to
determine whether or not sync has been turned off. If sync is turned
off, all events will be deleted, so we need to reset the sync key
* Make sure that all code working on Contacts also now works on Calendar
(push, etc.)
* Remove some old crufty logging and out-of-date comments
* Addresses 2433061

Bug: 2433061
Change-Id: I6299168903fcce9bf820b72b5f6bb157d9169653
ndroid/email/provider/EmailContent.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
2a41aa538fe682b1f5dc1dff1ebe3a81c6644193 04-Feb-2010 satok <satok@google.com> Add Signature to Email Composer

Bug: 1323618

- Add signature to the message
- Set selection just after the message
- Add tests for signature
ndroid/email/activity/MessageCompose.java
5f32e2d31f5839081de1f9ee78b4c8b06d5c1150 13-Feb-2010 Jeff Hamilton <jham@android.com> Don't use hard coded package names.

Change-Id: Id65967a87afa969f5410f4fdee058d450776a32e
ndroid/email/service/MailService.java
1a67f06829f46dc59cca0c38325ab1cba335ecfd 12-Feb-2010 Doug Zongker <dougz@android.com> use platform common Base64InputStream

Change-Id: Iebdaf61cd2183c20362052ec39122bf42b23c7b9
ndroid/email/mail/internet/MimeUtility.java
ba714999f24697161f1ecd68199c3b330ea64ab9 10-Feb-2010 Doug Zongker <dougz@android.com> finish replacing Email's base64 implementation with android-common

Change-Id: I19adbbb884311d70073e9f7a961aa6808ac0dfb4
ndroid/email/codec/binary/Base64.java
ndroid/email/codec/binary/Base64OutputStream.java
ndroid/email/codec/binary/DecoderException.java
ndroid/email/codec/binary/EncoderException.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/transport/Rfc822Output.java
b052885ea3625469970c4b4ea724ebd10ebed2c0 10-Feb-2010 Mihai Preda <preda@google.com> Email: husky title for MessageList & MailboxList.

Bug: 2419716
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
842ac048287480e438a4049e95d6cbe116d9f31f 11-Feb-2010 Andrew Stadler <stadler@android.com> Legacy account migration

* Create new activity to encapsulate account upgrade
* Populate it with a list of legacy accounts, and progress bars for each
* Sidestep Welcome when there are legacy accounts to convert
* Super lightweight account migration:
- Account login info only
- no folders, messages, or attachments
* Scrub out old data
* Return to Welcome screen

As noted, the copies working (useable) POP & IMAP accounts, but does
not try to deal with folders, messages, or attachments.

Bug: 2065528
ndroid/email/Account.java
ndroid/email/LegacyConversions.java
ndroid/email/activity/UpgradeAccounts.java
ndroid/email/activity/Welcome.java
ndroid/email/mail/store/LocalStore.java
a5b8b084ff6d94fcd54ddf5865fef4650f28dcf3 11-Feb-2010 Marc Blank <mblank@google.com> Fix #2228604

* Fix anouther in a series of Exceptions that can occur if SyncManager
is shut down abnormally. These tend to happen runnings tests, and
nowhere else.

Bug: 2228604
Change-Id: I064f11017431c1f1a73e8040dbc174f5ba03d7de
ndroid/exchange/SyncManager.java
04a60bb826af08a770e76f4ca4a3e9b45f0f38d1 11-Feb-2010 Marc Blank <mblank@google.com> Merge "Don't use /sdcard when creating Exchange logging"
00eb422a3e1c4404318d7394c66dc725f490c51e 10-Feb-2010 Marc Blank <mblank@google.com> Don't use /sdcard when creating Exchange logging

* Per san, use Environment.getExternalStorageDirectory() instead

Change-Id: Ia7750cca00397734567e03d889e7eb68ac4d9da7
ndroid/exchange/utility/FileLogger.java
ee7ea73eaeb50d72ccd6915a4b0a7618dd3dbe83 10-Feb-2010 Andy Stadler <stadler@google.com> Merge "Force security activation after new account create"
103de0876fda82ab87889fd9b1bf2d709fc28bb9 10-Feb-2010 Marc Blank <mblank@google.com> Fix ordering error in processing a provision request

* After receiving a provision response from the server, first check
for a remote wipe command, as this should always take precendence
* After that, see if the requested policies are active, and if so,
acknowledge them to the server
* Otherwise, indicate that we are blocked due to a security failure

Change-Id: Ie70fae18772f4e3161cf72132982e429c6548e48
ndroid/exchange/EasSyncService.java
673169fac9301c52bf542b14f75d4cbdcbe66e6c 09-Feb-2010 Marc Blank <mblank@google.com> Release security holds based on flags; implement remote wipe

* When the UI indicates that security policies for a particular
account are now in force and releases the security hold (a bit
in the Account flags), we release any syncs that had been
waiting due to security errors
* Clean up code related to sync holds
* Add unit test for sync hold release
* Add support for server-directed remote wipe

Change-Id: I6209f75e4b57c850ae1ac27f407630c9c740514f
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ProvisionParser.java
4ef6c2b78809bd4935187137264e57531e8666ff 10-Feb-2010 Marc Blank <mblank@google.com> Add better comment to calendar color code

Change-Id: Ic4703a98826319031f356bed6da810affe8c76c8
ndroid/exchange/adapter/FolderSyncParser.java
fcf41c4d9e23d12140b057d6f193f6bdccae269f 10-Feb-2010 Marc Blank <mblank@google.com> Fix #2432959 (Exchange events appear transparent in Calendar)

* Forgot to add alpha value to calendar color after retrieving
from the color array

Bug: 2432959
Change-Id: I58710a550b374443f39c0ba7acdea9792f1382db
ndroid/exchange/adapter/FolderSyncParser.java
d71d0b223a5cd02e2a8f1ec5c3f8cebab170d65f 10-Feb-2010 Andrew Stadler <stadler@android.com> Force security activation after new account create

On new accounts, we can accelerate the process of setting up security
by explicitly checking (at the end of the security process). The user
is not required to "answer" the asynchronous notification.

This is an imperfect solution, as a slow initial sync could leave the
user in a non-synced Inbox (with a notification waiting for them), but
we can come back to this after we evaluate real-world performance.

Bug: 2387961
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/activity/setup/AccountSetupNames.java
50d1610c43c70039e9a02b862ec43cd6ee3d7906 09-Feb-2010 Andrew Stadler <stadler@android.com> Relax device admin policies when accounts deleted

If an account is deleted, immediately recompute the aggregate
security policy, and apply it immediately.

When applying policies, handle "no policy" case by releasing device admin
status entirely.
ndroid/email/AccountBackupRestore.java
ndroid/email/SecurityPolicy.java
ndroid/email/activity/AccountFolderList.java
ndroid/exchange/SyncManager.java
34716bb6f96cbc1161feb3d7161c7f979d33d573 09-Feb-2010 Andy Stadler <stadler@google.com> Merge "Rewrite notes to acknowledge wipe-after-bad-passwords"
5893e9e008d46cf4be0c7f709a6e77e2652c3ddd 09-Feb-2010 Andrew Stadler <stadler@android.com> Rewrite notes to acknowledge wipe-after-bad-passwords

It turns out that we have already implemented the built-in version of
local-wipe-after-failed-passwords, and the notes about it were not
necessary.

It should be possible to connect to an account with local wipe
requirements and see proper operation.
ndroid/email/SecurityPolicy.java
0f42334af2510cbfa9f6bc8645596f7819fdb75f 09-Feb-2010 Doug Zongker <dougz@android.com> Merge "replace Email's private base64 class with one from android-common"
f44a40cda14a49d5b02636a3a8a8b2eb8c23fc00 08-Feb-2010 Doug Zongker <dougz@android.com> replace Email's private base64 class with one from android-common

Convert all usages of com.android.email.codec.binary.Base64 to use
com.android.common.Base64 instead, except for Base64OutputStream
(which doesn't exist in android-common yet).

Change-Id: I339a1f451245138187080c7444fcabef8d13f8aa
ndroid/email/Utility.java
ndroid/email/codec/binary/Base64.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
189c22a045a63fdfc5b8a0497250dd09024c5097 09-Feb-2010 Andrew Stadler <stadler@android.com> resolved conflicts for merge of 5f0f1879 to master

Conflicts:
src/com/android/exchange/SyncManager.java
2a5eeea9213005060256054ec773e72406415ce4 09-Feb-2010 Andrew Stadler <stadler@android.com> Adding security hold flag to accounts

* Add hold flag to Account flags
* Add code to set it (when EAS reports policy failure)
* Add code to clear it when we see changes from the device admin side
* unit tests

This should be sufficient to restart sync of an account which is on hold
due to security policy requirements. Note, this is considered a "retry",
and if the account still does not meet requirements for some reason, it
is expected that EAS sync will call policiesRequired() again.
ndroid/email/SecurityPolicy.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/provider/EmailContent.java
5f0f18790fda56b7a04632cec5ae9c457f38c3dd 09-Feb-2010 Andrew Stadler <stadler@android.com> am 26c95dda: Update accounts backup when externally deleted

Merge commit '26c95ddace076ead10d5c42986bcc70b465e9791' into eclair-plus-aosp

* commit '26c95ddace076ead10d5c42986bcc70b465e9791':
Update accounts backup when externally deleted
26c95ddace076ead10d5c42986bcc70b465e9791 09-Feb-2010 Andrew Stadler <stadler@android.com> Update accounts backup when externally deleted

Fix the case in which an Email account is deleted in the Account Manager
UI, and we delete the provider account, but we did not also update the
backups. In some cases, the deleted account would be accidentally
restored from the backups.

Bug: 2414469 (internal)
Bug: 2427663 (external)
ndroid/exchange/SyncManager.java
f3332ddac8a32bef0e0316de18429fbf171ad75a 08-Feb-2010 Marc Blank <mblank@google.com> Merge "Additional work on EAS security"
d4ff80d4049165fc1b880f8e3d0fffb028ee98ed 08-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix bug w/ all day events (hr, min, sec need to be zero in DTSTART)"
37658316f96a7f62a334d1b844f5080cccdd9dbb 04-Feb-2010 Marc Blank <mblank@google.com> Use a single account color resource table; add convenience methods

* The color chip resource table was duplicated in three files
* Move these into a common location in Email.java and add
convenience method for retrieving color chip resource id based
on accountId
* Simplifies future changes to account color selection
* Add RGB color information on these resources (provided by
rfulcher) and add a convenience method for retrieving these

Change-Id: If1c2d22fba91cfce46a2618cd2b73cf7a534ce51
ndroid/email/Email.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
ndroid/exchange/adapter/FolderSyncParser.java
e81b2bfe5ee4f2aa1264433583a79475b1ed0ce9 08-Feb-2010 Marc Blank <mblank@google.com> Fix bug w/ all day events (hr, min, sec need to be zero in DTSTART)

* For some reason, the recurrence expansion system requires hr, min, and sec
to be zero for DTSTART when allDay=1
* Force hr, min, and sec to zero for all day events

Bug: 2427658
Change-Id: Ief6b5b571fa6bc6947bcbc9cda02ab2c04f27549
ndroid/exchange/adapter/CalendarSyncAdapter.java
09b45fdcffd7fc4e5ef2ac498576d713eaf2c3db 07-Feb-2010 Marc Blank <mblank@google.com> Additional work on EAS security

* Add more final plumbing for exchange security
* If policies are supported, we now check to see if they are active;
if so, we acknowledge this to the server, after which we are given a
final policy key which can be used for syncing

Change-Id: I5992c790294e35b5ec5343c7665e2e7fd31a75ca
ndroid/email/SecurityPolicy.java
ndroid/email/service/EmailServiceStatus.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ProvisionParser.java
518a562de38f7b19048138403de62fca20af5526 05-Feb-2010 Marc Blank <mblank@google.com> Merge "Initial implementation of EAS security"
a1c708670b3837749b0ab364c643cafda399db63 05-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix #2422815 (Exception in EAS calendar upsync)"
72a5e7d7c12e370d6f90bfd8f4a88f812064a914 18-Dec-2009 Marc Blank <mblank@google.com> Initial implementation of EAS security

* This first implementation integrates with early CLs for
Email app integration with device security
* Check for policies added to validation process
* If the server has no policy requirements, there is no change
to the existing process
* We automatically declare a set of policies to be unsupported
if any are known to the sync adapter to be unsupported
(e.g. no attachments or password history)
* We call isSupported (PolicySet) to determine whether other
policies use values that the OS can support (e.g. password length,
inactivity time, etc.)
* Depending on whether the server's policies are unsupported or
supported, we throw the proper exception back to the caller

Change-Id: I704cb2151dd87f54c83c2aa23976a8ac8e2c501a
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ProvisionParser.java
ndroid/exchange/adapter/Tags.java
204b7a3bf4f043415e04960e38827b07163633a1 05-Feb-2010 Marc Blank <mblank@google.com> Fix #2422815 (Exception in EAS calendar upsync)

* Exception is due to the presence of values in ContentValues that
are null (would normally expect those fields to be absent)
* Fix all relevant cases that might produce an NPE in this case

Bug: 2422815
Change-Id: I637a21307c2d518912edce093de90a06d94614e5
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/Serializer.java
3d2b3b3b3554be2ac23d9a49fee00faa9693e857 05-Feb-2010 Andrew Stadler <stadler@android.com> Logic to move phone into security-admin mode

* Create notification to display when syncs fail due to security
* Create psuedo-activity (no UI) to manage device admin state transitions
* Clean up and flesh out SecurityPolicy APIs'
* Add placeholders in EasSyncService showing how to react when policies
are not met and sync cannot continue.

Note: There are some STOPSHIP todo's at the top of SecurityPolicy.java.
These should explain any code that you might think is "missing".
ndroid/email/SecurityPolicy.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/setup/AccountSecurity.java
ndroid/email/service/MailService.java
ndroid/exchange/EasSyncService.java
4d2a701844a3dee6828a360abe633ba5393566e9 05-Feb-2010 Marc Blank <mblank@google.com> Merge "Fix #2420732 (crash in Google Services Framework)"
0bbe34bce5284bf20fb60b20fc6679c3f9b4749a 05-Feb-2010 Marc Blank <mblank@google.com> Fix #2420732 (crash in Google Services Framework)

* Exchange calendar sync created Event records for exceptions
that didn't have a _sync_id
* This caused google calendar sync to try to upload these
Events as new, which caused an Exception to be thrown
* Fixed EAS calendar sync adapter to generate a _sync_id for
exceptions in the form <parentId>_<exception start time>

Bug: 2420732
Change-Id: I46769175ca89ffa4cec4fe8b0c35ef2242536185
ndroid/exchange/adapter/CalendarSyncAdapter.java
a1550678af6a22a18ac0c9066105e1f101a545a5 05-Feb-2010 Andrew Stadler <stadler@android.com> Integrate policies into account setup process

* Rename SECURITY_POLICIES_REQUIRED to SECURITY_POLICIES_UNSUPPORTED
* Create new pathway for SECURITY_POLICIES_REQUIRED, making it advisory
* Cleaned up strings for account setup error dialogs
* Refactored AccountSetupExchange.onActivityResult() to split up the
three primary use cases, making them more readable.
* Always finish() in AcccountSetupAccountScreen, because it's usually
cleaner to return to the previous screen (enter username & password).
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/mail/MessagingException.java
ndroid/exchange/EasSyncService.java
48e20b81e6b8a6016ee848db57cbf78a7a2da24a 04-Feb-2010 Marc Blank <mblank@google.com> Fix #2415185 (Email disappears after a while)

* Exchange account validation tests security policies by sending a
FolderSync command and determining whether this generates an
error
* Unfortunately, we use the real deviceId when sending the command
and this causes the next real sync to fail such that all data is
wiped and reloaded (the bug)
* The fix is to use a false device id while doing validation

Bug: 2415185
Change-Id: Ibe577e36f770d737ba5952b347aa0d73bda3568a
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
8f8179f07e623decf588c816bc8832e899399707 04-Feb-2010 Marc Blank <mblank@google.com> Merge "Add calendar sync checkbox to account settings screen"
0692ec483627f036fa9354ad836a50baeb61ee90 04-Feb-2010 Marc Blank <mblank@google.com> Fix #2414056 (NPE after delete account)

* Add check for deleted mailbox

Bug: 2414056
Change-Id: I20aea69b0ad2c2ad2eacb76febcafb881f9eecc3
ndroid/exchange/SyncManager.java
a1c997a2b6de19a4d397d9e14c0c3d91669d6b47 04-Feb-2010 Marc Blank <mblank@google.com> Add calendar sync checkbox to account settings screen

Bug: 2414157
Change-Id: I60ead139552f3e7c86b113f8b8b10ef3cf57abbf
ndroid/email/activity/setup/AccountSettings.java
d9080ed32eba3092b21633f269ec4b71faf93a34 02-Feb-2010 satok <satok@google.com> Add UI for Signature in Email Application

Bug: 1323618

- changed summary of signature to show hint if signature is not set
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/provider/EmailContent.java
7c6c1fd5196bfc2c76e8eb71369b0accee0746b2 03-Feb-2010 Marc Blank <mblank@google.com> Merge "Build proper TimeZoneInformation strings for upsync; fix bugs"
6f3013b78708321879728c28db044ab233cb2016 03-Feb-2010 Marc Blank <mblank@google.com> Build proper TimeZoneInformation strings for upsync; fix bugs

* Create full TZI strings for upload of events (previously, we
omitted DST information)
* Add documentation to some unit tests
* Put in correct logic for determining if upload needed
* Fix problem w/ parsing empty tags

Change-Id: I268ce8a2db30b3cfdf0e44f6a78befd6bd933243
ndroid/exchange/CalendarSyncAdapterService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/utility/CalendarUtilities.java
91237e9dcb0a948f17488b464edabcea0f259d31 03-Feb-2010 Makoto Onuki <omakoto@google.com> Adding script for building Email app without exchange.

remove-exchange-support.sh makes it possible to build the email app without
exchange support.

This script:
- removes all packages under com.android.exchange.
- removes all lines surrounded by EXCHANGE-REMOVE-SECTION-START and
EXCHANGE-REMOVE-SECTION-END

And the resulting source should still build and run fine.

Bug: 2369784
ndroid/email/AccountBackupRestore.java
ndroid/email/Email.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/Debug.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EasAuthenticatorService.java
8bb0ee3b924f6b0e948733dacac3228f88bd50dc 03-Feb-2010 Andrew Stadler <stadler@android.com> Fix auto-discover / account verification logic

New behavior:
* There are two primary paths through this activity:
* Edit existing:
* Load existing values from account into fields
* When user clicks 'next':
* Confirm not a duplicate account
* Try new values (check settings)
* If new values are OK:
* Write new values (save to provider)
* finish() (pop to previous)
*
* Creating New:
* Try Auto-discover to get details from server
* If Auto-discover reports an authentication failure:
* finish() (pop to previous, to re-enter username & password)
* If Auto-discover succeeds:
* write server's account details into account
* Load values from account into fields
* Confirm not a duplicate account
* Try new values (check settings)
* If new values are OK:
* Write new values (save to provider)
* Proceed to options screen
* finish() (removes self from back stack)
* Added unit test for new loadFields method

Bug: 2412300
ndroid/email/activity/setup/AccountSetupExchange.java
b854d05a89e1d2be7c3d3465727a90df1d289e30 28-Jan-2010 Makoto Onuki <omakoto@google.com> Change EAS authenticator's label according to the vendor policy.

Our original plan was to disable both authenticators by default, and enable
one of then on boot. However, it turned out existing exchange accounts will
be removed if there's no enabled authenticators for the account type.
So, instead, in this patch we initially enable only the default one, and switch
to the other one on boot if the vendor policy indicates so.

(If a device has a vendor policy apk, it should also have the email app
preloaded, so changing the label at boot time isn't too late.)

Bug: 2382710
ndroid/email/OneTimeInitializer.java
ndroid/email/Preferences.java
ndroid/email/service/EasAuthenticatorServiceAlternate.java
130988e49da6b7eed2afebda7d3cff556f58f9f5 02-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Gather common exchange related methods into one place"
561e10d4c02d08884e7dbef56956ab5802a1d824 02-Feb-2010 Andy Stadler <stadler@google.com> Merge "Clean up exception handling in VendorPolicyLoader"
9fe51f632965f5d085ae45a1089c7c97dcec8881 02-Feb-2010 Makoto Onuki <omakoto@google.com> Gather common exchange related methods into one place

So that it'll be easier to remove exchange dependency.
ndroid/email/AccountBackupRestore.java
ndroid/email/Controller.java
ndroid/email/ExchangeUtils.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/BootReceiver.java
049509d10edc97eb2439ecae24445c526ba4cfef 02-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Move Eas.ACCOUNT_MANAGER_TYPE out of the package."
a6e6dd096cf41e556ed8aa23cd18d0227e10ddd1 02-Feb-2010 Andrew Stadler <stadler@android.com> Clean up exception handling in VendorPolicyLoader

Per code review suggestions, clean up exception handling, and add
commentary to make intended behavior more explicit.

Followup to: 0434fef1f6706a0a6fc53b499f3e982f70d7142d
Bug: 2413388
ndroid/email/VendorPolicyLoader.java
0434fef1f6706a0a6fc53b499f3e982f70d7142d 02-Feb-2010 Andrew Stadler <stadler@android.com> Fix crash in VendorPolicyLoader

* Create unit test to reproduce crash
* Fix handling of empty bundle (the default return value)
* Clean up some exception handling in the policy module loader, which
reduces some unneeded logging.

Bug: 2413388
ndroid/email/VendorPolicyLoader.java
cfbbb99c67ce20863998b4b0941303820723c18d 02-Feb-2010 Marc Blank <mblank@google.com> Merge "Handle upsync of multiple BYDAY values; add some unit tests"
d62860821c2dbc14ab493b888cb129bd5addd53d 02-Feb-2010 Andrew Stadler <stadler@android.com> Additional SecurityPolicy functionality

* Begin wiring into system DevicePolicyManager requirements
* Semi-real implementations of isSupported() & isActive()
* Added new API (placeholder) updatePolicies()
* Updated existing unit tests as needed

Bug: 2387961
ndroid/email/SecurityPolicy.java
a8259394596eda7aed2b9edfdb30ff03c34acb66 02-Feb-2010 Marc Blank <mblank@google.com> Handle upsync of multiple BYDAY values; add some unit tests

Change-Id: If3be28df41ed88cb83edca2f6ea6ca1f734f506f
ndroid/exchange/utility/CalendarUtilities.java
ecb1af804144689d4ead96a247b565f9b4eb8160 02-Feb-2010 Andrew Stadler <stadler@android.com> Finish up IMAP ID implementation

* scrub all external strings to keep them compliant for IMAP protocol
* move Build.MODEL to x-android-device-model
* send x-android-mobile-net-operator
* send AGUID
* unit tests for above
* retrieve providers from VendorPolicyLoader

Bug: 2332183
ndroid/email/Preferences.java
ndroid/email/VendorPolicyLoader.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/mail/store/ImapStore.java
faed6178b1858f0e6df388a409d14fb3f94afefa 02-Feb-2010 Makoto Onuki <omakoto@google.com> Move Eas.ACCOUNT_MANAGER_TYPE out of the package.

Moved Eas.ACCOUNT_MANAGER_TYPE to Email.EXCHANGE_ACCOUNT_MANAGER_TYPE.

This constant is not related to the exchange protocol, and referred in
a lot of different places. Moving it out of the package will make it a lot
simpler when removing exchange dependency.
ndroid/email/AccountBackupRestore.java
ndroid/email/Email.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/Eas.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
b89bc81f543bb79acda0290c35b2f451d2cf9a00 01-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Fix confusing setup screen title."
e5c3c98e9a85198e0b023fd25529512baeb88cdb 01-Feb-2010 Makoto Onuki <omakoto@google.com> Fix confusing setup screen title.

Change the title of the screen for adding an exchange account from "Set up email" to "Add an Exchange account".

Bug: 2159019
ndroid/email/activity/setup/AccountSetupBasics.java
31ac14aa511ddcd28746574a444b5f0660cc5fcf 01-Feb-2010 Marc Blank <mblank@google.com> Remove default EAS Calendar parser logging

Change-Id: Id05d9721b1f40242cb9f77ae21575bfef2d1b671
ndroid/exchange/adapter/CalendarSyncAdapter.java
7a2776a5b4fe4413c676bbf3e8c5a21bc961fc5c 01-Feb-2010 Marc Blank <mblank@google.com> Further work on Exchange calendar sync; exception upsync

* Add code to upsync exceptions; debug same
* Use AccountManager to handle sync keys (as w/ Contacts)
* Add unit tests in next CL

Change-Id: Ib8526d70de33ed7e551b9713a3bbf1ad80612948
ndroid/exchange/adapter/CalendarSyncAdapter.java
0088918e4edf79c45938c018a6b45765ba4be62b 31-Jan-2010 Marc Blank <mblank@google.com> Merge "Additional work on new Event upload to EAS server"
dc6930c0b36950d420c8da0e70164c5c4e083fbe 29-Jan-2010 Marc Blank <mblank@google.com> Additional work on new Event upload to EAS server

* Added support for reminders and recurrences
* Note that Duration class is copied from CalendarProvider with only
formatting changes

Change-Id: Icf399df422f813ba8e7880646bfbc96a2156a204
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/utility/CalendarUtilities.java
ndroid/exchange/utility/Duration.java
e85328671397ac38bbb30a31bffd66c9d74ca323 30-Jan-2010 Makoto Onuki <omakoto@google.com> Merge "Move non-exchange specific classes to com.android.email.service."
8ee17c7012105fd7a5bad644b455d3e894b557dc 30-Jan-2010 Makoto Onuki <omakoto@google.com> Unifying dupe code in Debug.java and Email.java.
ndroid/email/Email.java
ndroid/email/activity/Debug.java
bb9b5163c19449efab72746351479d193be5e122 29-Jan-2010 Makoto Onuki <omakoto@google.com> Move non-exchange specific classes to com.android.email.service.
ndroid/email/Controller.java
ndroid/email/activity/MessageView.java
ndroid/email/service/EmailServiceConstants.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/EmailServiceStatus.java
ndroid/email/service/IEmailService.aidl
ndroid/email/service/IEmailServiceCallback.aidl
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailServiceConstants.java
ndroid/exchange/EmailServiceStatus.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/IEmailServiceCallback.aidl
ndroid/exchange/SyncManager.java
d99dbf01fb99d6e028bbbf975fab721c5a0c2562 28-Jan-2010 Marc Blank <mblank@google.com> Fix problem with Event creation by EAS calendar sync

* Turns out that DURATION is required by CalendarProvider, and
DTEND has a different meaning than it does to EAS
* Fix downsync to create proper recurring events

Change-Id: Ibf85422de73579a93de89b2c27c13f96994bedc8
ndroid/exchange/adapter/CalendarSyncAdapter.java
f3fcb8929e3690bc092aec0d4d643b346f079acd 29-Oct-2009 Marc Blank <mblank@google.com> Implement Exchange calendar sync support

What should be working:
* Events sync down from server and appear in calendar
* Recurrences and exceptions appear in calendar
* Changed events on server should be reflected in calendar
* Deletions on server should be reflected in calendar
* Push of new/changed/deleted events should work
* Changes on device are NOT synced back to server
* New, single events on device are synced back to server
(no time zone, attendee, or recurrence support)
* Checkbox for syncing calendar added to setup flow
* System sync glue in manifest, etc.
* Bugs are to be expected
* A few unit tests; needs more

Change-Id: I7ca262eaba562ccb9d1af5b0cd948c6bac30e5dd
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/CalendarSyncAdapterService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/utility/CalendarUtilities.java
b4e7a85eaad5c82c576ac9186b47176388cd94eb 28-Jan-2010 Mihai Preda <preda@google.com> Merge "MessageCompose: properly remove quoted text from saved draft."
f98ffb6f44068299a57b83bf1c3067d5afd9427f 28-Jan-2010 Makoto Onuki <omakoto@google.com> Merge "Add "vendor policy" loader, and alternate exchange descriptive text."
f613489663cdc5df71b029dfcec5fd3c5173a549 27-Jan-2010 Makoto Onuki <omakoto@google.com> Add "vendor policy" loader, and alternate exchange descriptive text.

- Dynamically switch to the alternate exchange strings to substitute overlays.
- Added the mechanism to load the "vendor policy", which tells you when the
alternate strings should be used.

Bug: 2382710
ndroid/email/VendorPolicyLoader.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
d423fb996f7836bb8d8439bab36798669a809fc3 28-Jan-2010 The Android Open Source Project <initial-contribution@android.com> am 08d92ebf: merge from open-source master

Merge commit '08d92ebf4722e45216ee225775a3b86f9ceecc0d'

* commit '08d92ebf4722e45216ee225775a3b86f9ceecc0d':
Trim the mime type portion of Content-Type.
46199c65a357de63ae2899b90d5e0b70a1b7421f 27-Jan-2010 Marc Blank <mblank@google.com> Fix #2382368 (NPE in AccountSetupExchangeTests)

* AccountSetupExchange defaultly tries using EAS AutoDiscover, which isn't
appropriate in the unit test setting
* Add an Intent extra to disable AutoDiscover and use it in unit tests

Bug: 2382368
Change-Id: I3d4e8d7194b02da44ad583da0cf2fe60ffb19311
ndroid/email/activity/setup/AccountSetupExchange.java
345fb8b737c1632fb2a7e69ac44b8612be6237ed 27-Jan-2010 Andrew Stadler <stadler@android.com> Add utilities for processing account security policies

* Add security sync key & signature columns
* Add utilities for easy read/write of security columns
* Write aggregator for multiple accounts
* Simple API's for exchange security (very preliminary)
* Unit tests of above

Bug: 2387961
ndroid/email/Account.java
ndroid/email/LegacyConversions.java
ndroid/email/SecurityPolicy.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
3ef6b0493eaa1b271b87c569fa2b97c2c291c805 26-Jan-2010 Marc Blank <mblank@google.com> Merge "Handle Exchange meeting invitation responses"
5de54008e58ff63d388e4d448b50a47950990e22 25-Jan-2010 Marc Blank <mblank@google.com> Handle Exchange meeting invitation responses

* Includes some refactoring of internal "request" code in SyncManager
* Adds Message flags to tag meeting invites and cancellations
* Adds meetingResponse method in EmailService
* Hooks into Controller and MessageView UI included

Change-Id: I4c5e10bccc4b41956b94d9dfa55925e5af030939
ndroid/email/Controller.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasAuthenticationException.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailServiceConstants.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/MeetingResponseRequest.java
ndroid/exchange/PartRequest.java
ndroid/exchange/Request.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/MeetingResponseParser.java
ndroid/exchange/adapter/Tags.java
e3e65ed9195f2258c8a5eb452690e60c70461940 26-Jan-2010 Mihai Preda <preda@google.com> MessageCompose: properly remove quoted text from saved draft.

Bug 2363249.
ndroid/email/activity/MessageCompose.java
468371917e68bfcb8f364f9b837754e5874a6647 26-Jan-2010 Andrew Stadler <stadler@android.com> IMAP ID

* Add IMAP ID command to all login sequences
* Send generic information for now
* Explicitly catch & discard parsing errors, since we really don't
care if the command succeeds or not.
* Unit tests

Bug: 2332183
ndroid/email/mail/store/ImapStore.java
def85b1ce48d51bd1d43fd48ddfce9f7702b4eb8 22-Jan-2010 Mihai Preda <preda@google.com> Merge "MessageCompose: show account name in title."
08d92ebf4722e45216ee225775a3b86f9ceecc0d 21-Jan-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master
fc8d943a828cd79ff71c703ced37001bd5482173 21-Jan-2010 Andrew Stadler <stadler@android.com> Add security column to Account

* Upgrade accounts table to add security column
* Read/Write new column
* Backup/Restore new column
* Unit tests for all of the above
* First cut at defining bitfields (non-binding, just putting down ideas)

Bug: 2387961
ndroid/email/Account.java
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
2517a3dfd15a4bdb01677fd1ed6a63645eaad3f7 08-Dec-2009 Patrick Horn <patrick.horn@gmail.com> Trim the mime type portion of Content-Type.

Fixes parsing of Content-Type headers like "text/plain ; charset=iso-8859-1"
Added unit tests for whitespace and the charset parameter
ndroid/email/mail/internet/MimeUtility.java
87a520d7b9cc40ae7a91b3723b8bd5fc4a241e61 20-Jan-2010 Mike Lockwood <lockwood@android.com> Use default values rather than hard coding green for LED notification color.

Change-Id: Id192ea4d34725abf9ce892bc24e5c8562215f3e3
BUG: 2329568

Signed-off-by: Mike Lockwood <lockwood@android.com>
ndroid/email/service/MailService.java
f9623b9e784c93c1699d1b1c7afe7d942eee29d0 05-Jan-2010 Mihai Preda <preda@google.com> MessageCompose: show account name in title.

Bug 2338152.
ndroid/email/activity/MessageCompose.java
66051529084d6c160c60b04afaf72397adf95ef1 21-Jan-2010 Andrew Stadler <stadler@android.com> am 346a0cc1: Backup/Restore accounts - bugfix - DO NOT MERGE

Merge commit '346a0cc1e00fcfde05df66eb37433172c96b1c36' into eclair-plus-aosp

* commit '346a0cc1e00fcfde05df66eb37433172c96b1c36':
Backup/Restore accounts - bugfix - DO NOT MERGE
346a0cc1e00fcfde05df66eb37433172c96b1c36 21-Jan-2010 Andrew Stadler <stadler@android.com> Backup/Restore accounts - bugfix - DO NOT MERGE

* Followup to 85d765f4
* Workaround for (HTC bug: 2275383) & (Moto bug: 2226582)
* Restores mSyncKey as null instead of empty string, which is how
a new account is initialized. Bug: 2385980
* Cleanup synchronized logic in backup & restore
* Minor cleanups & improved comments

Cherry-picked from master d612717340b2670776a75a1d2e9e3df81fd4c052
ndroid/email/AccountBackupRestore.java
ndroid/email/LegacyConversions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
d612717340b2670776a75a1d2e9e3df81fd4c052 21-Jan-2010 Andrew Stadler <stadler@android.com> Backup/Restore accounts - bugfix

* Followup to 5e91cccd
* Workaround for (HTC bug: 2275383) & (Moto bug: 2226582)
* Restores mSyncKey as null instead of empty string, which is how
a new account is initialized. Bug: 2385980
* Cleanup synchronized logic in backup & restore
* Minor cleanups & improved comments
ndroid/email/AccountBackupRestore.java
ndroid/email/LegacyConversions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
d3998ebe4e3581bbd34669fa5fb78537fa6ec98b 20-Jan-2010 Andrew Stadler <stadler@android.com> am 85d765f4: Quick backup/restore of accounts DO NOT MERGE

Merge commit '85d765f41c20e6efb3b120055eb4f1efae166e8b' into eclair-plus-aosp

* commit '85d765f41c20e6efb3b120055eb4f1efae166e8b':
Quick backup/restore of accounts DO NOT MERGE
85d765f41c20e6efb3b120055eb4f1efae166e8b 20-Jan-2010 Andrew Stadler <stadler@android.com> Quick backup/restore of accounts DO NOT MERGE

* Workaround for (HTC bug 2275383) & (Moto bug 2226582)
* Adds checkpoints for backing up and restoring accounts
* Uses legacy Account / prefs to back up accounts - this is because
some of this code will be reused for legacy account migration
* Unit tests of Account & LegacyConversions
* Unit tests of backup & restore
* Not done: testing of EAS/Account Manager interface (this will require
deeper dependency injection, to avoid the embedded calls to the Account
Manager and other system services.)

Cherry-picked from master 5e91cccd4b530eb2aeace5c5bf4f3328a5b5d69d
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/LegacyConversions.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/MailService.java
ndroid/exchange/SyncManager.java
5e91cccd4b530eb2aeace5c5bf4f3328a5b5d69d 20-Jan-2010 Andrew Stadler <stadler@android.com> Quick backup/restore of accounts

* Workaround for (HTC bug 2275383) & (Moto bug 2226582)
* Adds checkpoints for backing up and restoring accounts
* Uses legacy Account / prefs to back up accounts - this is because
some of this code will be reused for legacy account migration
* Unit tests of Account & LegacyConversions
* Unit tests of backup & restore
* Not done: testing of EAS/Account Manager interface (this will require
deeper dependency injection, to avoid the embedded calls to the Account
Manager and other system services.)
ndroid/email/Account.java
ndroid/email/AccountBackupRestore.java
ndroid/email/LegacyConversions.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/MailService.java
ndroid/exchange/SyncManager.java
950f6c65dd6d66c0bb0ca46b9c57525cb2fd7b46 19-Jan-2010 Satoshi Kataoka <satok@google.com> Merge "Fix bugs rerated to updateMailboxRefreshTime"
0b8b68cbebdba372c7302a207e2321cd80b384ae 17-Jan-2010 Marc Blank <mblank@google.com> Fix account creation race condition

* Due to the order in which account creation occurs in the Provider
and in AccountManager, and the fact that there are data observers
on each that initiate account reconciliation, a race condition exists
that can cause either of these accounts to appear to be orphaned,
and thereby get deleted
* We add an "incomplete" flag to the Account in EmailProvider and
set/clear it during account creation. The various reconciliation
methods will ignore accounts marked as incomplete.

Bug: 2353755
Change-Id: I13fb144dd857f839eb3471b01f271f3a0d4d8159
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/provider/EmailContent.java
ndroid/exchange/SyncManager.java
74724af62c10eeb685a67057c36d3cac8cfb691f 15-Jan-2010 Marc Blank <mblank@google.com> Fix autodiscover when attempted with Exchange 2003 server

* Make sure 403 error in autodiscover isn't treated as an auth error
(401 is used for that)
* Make non-auth errors in autodiscover fail silently (and move user
to manual setup)

Bug: 2374302
Change-Id: I4699bff70cf5ec4a513e6443e4817543c2ab2cef
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
0f4efcd4833e973f5408d263febeeb7378b08d67 15-Jan-2010 satok <satok@google.com> Fix bugs rerated to updateMailboxRefreshTime

BUG: 2131243

- change the parameter updateMailboxRefreshTime in MailboxList
- add updateMailboxRefreshTime to MailboxList
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
9d82553b34de47aa79668039f9a76902e859a192 14-Jan-2010 Marc Blank <mblank@google.com> Merge "Implement Autodiscover for Exchange servers"
17da1767e396b873723d53b2aef93da8aca2c00e 18-Dec-2009 Marc Blank <mblank@google.com> Implement Autodiscover for Exchange servers

* Autodiscover allows complete configuration using only email address
and password
* Code handles the two standard autodiscover addresses and redirect
* Autodiscover process starts when the user chooses "Exchange" as the
account type. If the account is created via the AccountManager,
autodiscover begins upon tapping "Next" for the first time
* If autodiscover fails due to anything other than auth failure for
autodiscover-capable servers, the user is placed into the standard manual
configuration screen

Bug: 2366019
Change-Id: I936712b924833d9a133e8da04e11c3ba45d92f92
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailContent.aidl
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailContent.aidl
ndroid/exchange/IEmailService.aidl
ndroid/exchange/SyncManager.java
08f9bfe8314a183778a9903395d6a7d2f8005697 06-Jan-2010 Makoto Onuki <omakoto@google.com> unbundle: Moving DomainNameChecker to android common.
ndroid/email/mail/store/TrustManagerFactory.java
80eb4fd0fed32800cd0c78e0e26ca0b3d54c7d2b 11-Jan-2010 Marc Blank <mblank@google.com> am d1c56ea1: Ensure protocol version always set in sync services DO NOT MERGE

Merge commit 'd1c56ea144fb3e91ad1fdf8bba4c57531ec9cc18' into eclair-plus-aosp

* commit 'd1c56ea144fb3e91ad1fdf8bba4c57531ec9cc18':
Ensure protocol version always set in sync services DO NOT MERGE
d1c56ea144fb3e91ad1fdf8bba4c57531ec9cc18 07-Jan-2010 Marc Blank <mblank@google.com> Ensure protocol version always set in sync services DO NOT MERGE

* A recent change caused an issue in which protocolVersion could
be null, resulting in an NPE
* Ensure that protocolVersion is always set to a valid version,
defaulting to 2.5

Change-Id: Ifba6c8089fdbd93dffe38ab9895cfd3e994e29d0
Bug: 2353859
ndroid/exchange/EasSyncService.java
63ba69d5d0ea9ca953aa9a54c9aebbdf0d2c9fdf 08-Jan-2010 Makoto Onuki <omakoto@google.com> Merge "Move stub logging classes to org.apache.james.mime4j"
0f2e1a800925cd33a49b4efa83cf86b1feb39c41 08-Jan-2010 Marc Blank <mblank@google.com> Merge "Make sure protocol version is always set in sync services"
2cb9c55f3b71034be96c9a8669bcb68d3e7c4fe3 23-Dec-2009 Marc Blank <mblank@google.com> Add new tests for Email sync parsing

Change-Id: Ib3be60b5f439f79f62f62eff607673e34c75506d
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/Serializer.java
a31cb777eb3c60947a9b955a5e7e8246e33204b1 08-Jan-2010 Makoto Onuki <omakoto@google.com> Move stub logging classes to org.apache.james.mime4j
ndroid/email/apacheloggingstub/Log.java
ndroid/email/apacheloggingstub/LogFactory.java
89ab89dd83764a5dadc4725c92759fa6cc7244d2 07-Jan-2010 Marc Blank <mblank@google.com> Make sure protocol version is always set in sync services

* A recent change caused an issue in which protocolVersion could
be null, resulting in an NPE
* Ensure that protocolVersion is always set to a valid version,
defaulting to 2.5

Bug: 2353859
Change-Id: I6e07ba3df5362c988658e401bebc1776a6780876
ndroid/exchange/EasSyncService.java
fc59359db590c4984d6f0e11a14da4ae1a8d0946 05-Jan-2010 Makoto Onuki <omakoto@google.com> Unbundle: Remove the use of internal SSL APIs.

1. Replaced SSLContextImpl with SSLContext with TLS. (They're the same, according to crazybob)
2. Copied SSLSocketFactory from org.apache.http.conn.ssl, so that we can use the hidden costructor. (Which wasn't in the original code -- it was added by the android team, which is why it's hidden.)
ndroid/exchange/SSLSocketFactory.java
ndroid/exchange/SyncManager.java
f39e5f38eb34a01739e1c12627ec01f9a1114318 05-Jan-2010 Makoto Onuki <omakoto@google.com> Unbundling: Get rid of the reference to the hidden field.

Remove the reference to CursorAdapter.mDataValid.
ndroid/email/activity/AccountFolderList.java
86919853f70ba0ad8b9304ccfb194ea92d377f40 22-Dec-2009 Marc Blank <mblank@google.com> am e83d0d64: am bb12286f: Merge change Ie25ac73d into eclair-mr2

Merge commit 'e83d0d640e9964500097571d9dea4993e5609123'

* commit 'e83d0d640e9964500097571d9dea4993e5609123':
Fix "back key" flow for Email account setup
bb12286f287efcdb841f6b0e3d448e1f3fa8929c 22-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie25ac73d into eclair-mr2

* changes:
Fix "back key" flow for Email account setup
0de7377985d813e56e9fa1cfebe49d92192c7328 22-Dec-2009 Mihai Preda <preda@google.com> am 78f609db: am af1bf487: MessageView: upon delete move to older instead of newer.

Merge commit '78f609db56500c01f75ea2d8742468907255f7ba'

* commit '78f609db56500c01f75ea2d8742468907255f7ba':
MessageView: upon delete move to older instead of newer.
1e1bb40062fa21c96329befddd4a81776948e21b 22-Dec-2009 Mihai Preda <preda@google.com> am 9d024a5b: am 2b6dfc97: Merge change I55f52567 into eclair-mr2

Merge commit '9d024a5b4f42d9d7687d06e5f86f9c68f22fccf8'

* commit '9d024a5b4f42d9d7687d06e5f86f9c68f22fccf8':
MessageCompose: fix NPE cased by WebView set to null in onDestroy().
af1bf48773154226fd88ab823a250fafa2814241 09-Dec-2009 Mihai Preda <preda@google.com> MessageView: upon delete move to older instead of newer.

Bug 2233586
ndroid/email/activity/MessageView.java
2b6dfc9796b6c54b329e234244e076a8dc6d3a07 22-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I55f52567 into eclair-mr2

* changes:
MessageCompose: fix NPE cased by WebView set to null in onDestroy().
ec82f9d7c0b9a6db7c656cb0ac70085082ee575f 22-Dec-2009 Makoto Onuki <omakoto@google.com> email unbundling: get rid of the write access to the CursorAdapter.mDataValid.

MessageListAdapter.doRequery() is supporsed to do the same thing as CursorAdapter.onContentChanged() does. So the entire method body can be replaced with super.onContentChanged().
ndroid/email/activity/MessageList.java
4b31f3c7a6caf0967beef208c172c899c8b6fac1 21-Dec-2009 Marc Blank <mblank@google.com> am 27051e48: Merge change Ife6689fa into eclair

Merge commit '27051e480f9cc5396aacc3cc5e520d5875390548' into eclair-plus-aosp

* commit '27051e480f9cc5396aacc3cc5e520d5875390548':
Use correct EAS version in Outbox (fixes #2319892) DO NOT MERGE
420f664891b2f46356bfc5cdd645aae727ecc71f 21-Dec-2009 Marc Blank <mblank@google.com> am bfc5de35: Merge change I06d98e54 into eclair

Merge commit 'bfc5de35fa08b6e747e5d5afe72bffafca08ce2a' into eclair-plus-aosp

* commit 'bfc5de35fa08b6e747e5d5afe72bffafca08ce2a':
Fix delay sending mail after tapping "Send outgoing mail" DO NOT MERGE
c76a22b01a2cb78fe75cc591066441fbcf3d90ac 21-Dec-2009 Marc Blank <mblank@google.com> am c874824c: Merge change Iad377728 into eclair

Merge commit 'c874824ca8b76f795575538ffa34138e2de47cad' into eclair-plus-aosp

* commit 'c874824ca8b76f795575538ffa34138e2de47cad':
Don't delete referenced messages from the Exchange server DO NOT MERGE
27051e480f9cc5396aacc3cc5e520d5875390548 21-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ife6689fa into eclair

* changes:
Use correct EAS version in Outbox (fixes #2319892) DO NOT MERGE
bfc5de35fa08b6e747e5d5afe72bffafca08ce2a 21-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I06d98e54 into eclair

* changes:
Fix delay sending mail after tapping "Send outgoing mail" DO NOT MERGE
f1efd65a5ebac0a2f1e218c0ae6bb8ceb1a19af6 18-Dec-2009 Marc Blank <mblank@google.com> Fix "back key" flow for Email account setup

* The existing flow is badly broken; every "back" causes the user
to leave the setup flow and therefore have to start from scratch.
This is a very bad user experience, as previously entered data is
lost and must be re-entered.
* The fix corrects these problems, allowing the user to back up
through screens UNTIL the account is successfully created.
* After account creation, the user is returned to the proper screen,
depending on whether we're in "eas flow mode" or not

Bug: 2337511
Change-Id: Ie25ac73dfcd8a1dca36e1b31c75ffb22359840d1
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupNames.java
320a065b6bbfd588235845d0f5bea9d8a5a60337 19-Dec-2009 Marc Blank <mblank@google.com> am 719610ab: am 42e5dca4: Add sanity checks in SyncManager and EasSyncService

Merge commit '719610ab8faee6a0c0ed4ff748cd1eeec3459fa6'

* commit '719610ab8faee6a0c0ed4ff748cd1eeec3459fa6':
Add sanity checks in SyncManager and EasSyncService
03e9e2d886b52e449ab32322bb31b3a20b77647a 19-Dec-2009 Makoto Onuki <omakoto@google.com> Fix typo
ndroid/exchange/SyncManager.java
42e5dca4efb6a5932f2062e9f97af914a3e84aa1 18-Dec-2009 Marc Blank <mblank@google.com> Add sanity checks in SyncManager and EasSyncService

* Prevent possible NPE's

Change-Id: I2b3c747609c6a87ec6060fd59006f2912dfcc591
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
425fd30a9cfd90a49bab000f49d307017cd3ba1d 18-Dec-2009 Makoto Onuki <omakoto@google.com> Email unbundling: Use accessor for CursorAdapter.mCursor and ListActivity.getListView().

Also added a todo for ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS.
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageList.java
ndroid/exchange/SyncManager.java
99bfd7e9b7e9d931f2e9f32b2005ce2194a613b1 17-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ibf071fa6

* changes:
Unbundling email: Make Base64 hidden API free.
bf071fa6256d33fa7b4edb78a570fe16603c9cde 17-Dec-2009 Makoto Onuki <omakoto@google.com> Unbundling email: Make Base64 hidden API free.

Seems like it's the simplest way to make it.
- Base64 no longer implements BinaryEncoder/Decoder. Email app doesn't use them.
- Copied Decoder/EncoderException. Email app doesn't catch them either.
ndroid/email/codec/binary/Base64.java
ndroid/email/codec/binary/DecoderException.java
ndroid/email/codec/binary/EncoderException.java
22a4e0ddbfae02299a5a6345683a13166284d50d 17-Dec-2009 Makoto Onuki <omakoto@google.com> Unbundling email: Stub out apache logging. (See b/2226160)

Let me know if you don't like the package name.
ndroid/email/apacheloggingstub/Log.java
ndroid/email/apacheloggingstub/LogFactory.java
608ca667b25e6107d20bf2fac8243a42abfad719 04-Dec-2009 Marc Blank <mblank@google.com> Don't delete referenced messages from the Exchange server DO NOT MERGE

* Addresses #2287439 incompletely
* The most likely reason for a reply/forward to get stuck in the Outbox
is that the referenced message has been deleted from the client, with
the deletion occuring BEFORE the message gets sent (currently, the two
are completely independent)
* This change causes deletes NOT to be sent to the server if the message
to be deleted is referenced by an outgoing message

Change-Id: Iad3777282385bea82276f363d6f95ba8b07cc01c
ndroid/email/provider/EmailContent.java
ndroid/exchange/adapter/EmailSyncAdapter.java
23a1cfc8a89e335f52e2849822be0e8232883605 10-Dec-2009 Marc Blank <mblank@google.com> Fix delay sending mail after tapping "Send outgoing mail" DO NOT MERGE

* Fixes #2317429
* When "Send outgoing messages" is tapped in Outbox MessageList view,
we clear the error state for all "stuck" messages
* We didn't, however, clear the error state of the Mailbox, which doesn't
clear itself until the end of a pingLoop, which can be up to 30 minutes
* The fix is in two parts:
* We clear the error state of the Outbox when a sync is requested by
the UI
* We don't set the error state of the mailbox for non-auth errors when
sending, because we don't want to block OTHER messages from getting sent.

Change-Id: I06d98e54049b01c2156b1bc3ebbccf043e7b93f5
ndroid/exchange/EasOutboxService.java
ndroid/exchange/SyncManager.java
21d077e60b43072a610a01f6d4e4c6a29aa006e1 10-Dec-2009 Marc Blank <mblank@google.com> Use correct EAS version in Outbox (fixes #2319892) DO NOT MERGE

* We inadvertently failed to set the EAS version in EasOutboxService,
so the default of 2.5 is used
* This works, but SmartReply/SmartForward were enhanced in 12.0 and we
aren't taking advantage of those changes
* The fix is to set the version using common code

Change-Id: Ife6689fa9934da42d98a48df74fca90ba6d1718c
ndroid/exchange/EasSyncService.java
55f5256761bb1e509c147fbb817fa2b43722dfc0 16-Dec-2009 Mihai Preda <preda@google.com> MessageCompose: fix NPE cased by WebView set to null in onDestroy().

Bug 2329276.
ndroid/email/activity/MessageCompose.java
ec3daeedb3ba65230a49d91b2ca6a3032fb3bd76 16-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I783790b6 into eclair-mr2

* changes:
Check null pointer in MessageList
9151d86e680f8b80ccc2e0bce32a2752c131c317 07-Dec-2009 satok <satok@google.com> Check null pointer in MessageList

BUG: 2299971
ndroid/email/activity/MessageList.java
4a7a50f6a694c3d57cb18ee8011c473851b065a8 15-Dec-2009 Marc Blank <mblank@google.com> Fix potential NPE in earlier CL

* Noted this problem in reviewing a newer CL
* Fix is to add a check in setupService

Change-Id: Ia4d71365f8036aac8bf531b835b184dabfbc06fa
ndroid/exchange/EasSyncService.java
d2481f95f2707c2f0f6589d65e8f9efeb3fba47a 12-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I768138b6 into eclair-mr2

* changes:
Fix delay sending stuck mail after tapping "Send outgoing mail"
4848aa2a1fda59f20e7acb9259dd355a047f3b93 11-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9a3d501a into eclair-mr2

* changes:
Run MailboxAlarmReceiver's code in a background thread
079589641a7f412a995c52d528f43ab08d754ba3 10-Dec-2009 Marc Blank <mblank@google.com> Run MailboxAlarmReceiver's code in a background thread

* Fixes 2313077
* Broadcast receivers are run in the UI thread, so we must ensure that
any long-running code is executed in a background thread

Change-Id: I9a3d501a308445a84a1baa99fc6abb9feb56ff2d
ndroid/exchange/EmailSyncAlarmReceiver.java
caf56443607856b996d151a0f0364c7acba8f8c7 10-Dec-2009 Marc Blank <mblank@google.com> Fix delay sending stuck mail after tapping "Send outgoing mail"

* Fixes #2317429
* When "Send outgoing messages" is tapped in Outbox MessageList view,
we clear the error state for all "stuck" messages
* We didn't, however, clear the error state of the Mailbox, which doesn't
clear itself until the end of a pingLoop, which can be up to 30 minutes
* The fix is in two parts:
* We clear the error state of the Outbox when a sync is requested by
the UI
* We don't set the error state of the mailbox for non-auth errors when
sending, because we don't want to block OTHER messages from getting sent.

Change-Id: I768138b6f31eb696811aa94f621b6fa758ec1a5e
ndroid/exchange/EasOutboxService.java
ndroid/exchange/SyncManager.java
9b83870a091084a3575a354539eaf98c516ccf2c 11-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I3b505448 into eclair-mr2

* changes:
Use correct EAS protocol version in Outbox (fixes #2319892)
e312c12b748e9984715295b71e95c90ee8d3d3bd 11-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I356b8bfa into eclair-mr2

* changes:
Deal with mismatch between our accounts and AccountManager accounts
423680653a91d6f0cd9a8bcd074dc3cf0cfa03a4 04-Dec-2009 Marc Blank <mblank@google.com> Deal with mismatch between our accounts and AccountManager accounts

* Addresses #2226426
* Recognize the case in which there is no EmailProvider Account corresponding
to an AccountManager account (the case being addressed is that of the
EmailProvider database being deleted due to corruption
* In this case, delete the AccountManager account so that the two are in
sync
* Refactor and add unit test for account reconciliation

Change-Id: I356b8bfaa0846f85223cc15994b750df207a63ea
ndroid/exchange/SyncManager.java
ec2d0e41b76942877306e9993fb9d11863b507d9 10-Dec-2009 Marc Blank <mblank@google.com> Use correct EAS protocol version in Outbox (fixes #2319892)

* We inadvertently failed to set the EAS version in EasOutboxService,
so the default of 2.5 is used
* This works, but SmartReply/SmartForward were enhanced in 12.0 and we
aren't taking advantage of those changes
* The fix is to set the version using common code

Change-Id: I3b505448003f340681deeb8fb22e61e9dd8d10a0
ndroid/exchange/EasSyncService.java
3c1334ae1f6769b55e4728341ef4c2ae3acb9b90 10-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I915b13a6 into eclair-mr2

* changes:
Fix MessageListUnitTests
052eefe406c7cedad65ed497f2f1137a1a210a42 07-Dec-2009 Fred Quintana <fredq@google.com> changed to use the new EntityIterator interface
ndroid/exchange/adapter/ContactsSyncAdapter.java
7a4b1c72f6f2e8395dd67af4b00f9f1c1efbb97b 08-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I146f63ab into eclair-mr2

* changes:
Don't delete referenced messages from the Exchange server
c29e435eb3a1b42b7bd8ddfe2d9d72b140c69928 04-Dec-2009 Marc Blank <mblank@google.com> Don't delete referenced messages from the Exchange server

* Addresses #2287439 incompletely
* The most likely reason for a reply/forward to get stuck in the Outbox
is that the referenced message has been deleted from the client, with
the deletion occuring BEFORE the message gets sent (currently, the two
are completely independent)
* This change causes deletes NOT to be sent to the server if the message
to be deleted is referenced by an outgoing message

Change-Id: I146f63ab345c07e684790e1d7d1fc08870468bbf
ndroid/email/provider/EmailContent.java
ndroid/exchange/adapter/EmailSyncAdapter.java
0e1595c177e40428b267a8696dfc05d015ce6a2f 19-Nov-2009 Marc Blank <mblank@google.com> Handle unexpected deletion of EmailProvider database

* Addresses #2226426
* If the user deletes Email data, or if data corruption causes
EmailProvider.db to be deleted, we will be in an inconsistent
state with any existing Exchange accounts, since the AccountManager
will still know about them, contacts (and eventually calendar) items will
continue to exist, etc.
* Run an integrity check when the provider is created, deleting any
orphaned EmailProvider.db or EmailProviderBody.db
* Catch SQLiteException's in the Provider and do an integrity check
if any is caught

Change-Id: I47d523b90a6b8f71ba8e13fba4b04846b3da1b1d
ndroid/email/provider/EmailProvider.java
3d00377b356631f555e3938bf63d7c5c292e505a 07-Dec-2009 satok <satok@google.com> Fix MessageListUnitTests

This is supperement of change,33265

* Move custom cursor to inner static class
* Change public to /* package */
* Move PROJECTION to a package
ndroid/email/activity/MessageList.java
ecfc9e92e5910fa47f2b6e4d699e951ce81ab99e 08-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Icba56688 into eclair-mr2

* changes:
Ensure that service calls run outside the UI thread (#2235734)
3af9f4cbf325ee8be923e98344e9a441c0284ae7 07-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9bec1244 into eclair-mr2

* changes:
Fix #2300147 (mistakenly reporting connection error)
b720ed318324c69ddbcb15c4a1b9e132f3266775 04-Dec-2009 Vasu Nori <vnori@google.com> revert previously submitted CL 34143.

turns out the change I submitted before is not required at all. I mistakenly
assumed sqlite wouldn't be able to handle it. but tested it with the latest
version of sqlite 3.6.20. the old style triggers work fine.
ndroid/email/provider/EmailProvider.java
d3da948c31c96e92327dcd5b6c7d0da292e0f5af 03-Dec-2009 Marc Blank <mblank@google.com> Fix #2300147 (mistakenly reporting connection error)

* When a mailbox sync is stopped intentionally (for example, if account
settings change), we report a connection error by mistake
* Handle this case properly, reporting "success" (i.e. no error state)
* Remove obsolete comment

Change-Id: I9bec1244267cd2240c369b9b7f905948381a0f91
ndroid/exchange/EasSyncService.java
3379c51569368d4e56123e5f9be97df7eb5b8e29 03-Dec-2009 Marc Blank <mblank@google.com> Ensure that service calls run outside the UI thread (#2235734)

Change-Id: Icba566884f3b994c8a4ccc4b8658c40b133a3509
ndroid/email/service/EmailServiceProxy.java
98796942eab3215eb1c3c8486a65a152e8cee516 02-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I8e09bde5 into eclair-mr2

* changes:
change BEFORE triggers to AFTER triggers - to make them work with sqlite 3.6.20 and beyond
4cb25d93a23d086b954c03cb72afb2cf0248f1c4 16-Nov-2009 satok <satok@google.com> Save the state of checkboxes when orientation is changed

BUG: 2239516

* Add tests for save/restore Instance State
ndroid/email/activity/MessageList.java
8e09bde56833c1d7e55b1553d20b0537794d02b9 26-Nov-2009 Vasu Nori <vnori@google.com> change BEFORE triggers to AFTER triggers - to make them work with sqlite 3.6.20 and beyond
ndroid/email/provider/EmailProvider.java
ee0c01548e7c0f8c66572f83d6c11064e6490790 24-Nov-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
d457c744cde468c3bd9b92f28a140379c714f540 20-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ic1a2e5b9 into eclair

* changes:
Fix improper constant to allow retry for sending Exchange mail
eec04663feb74ead2c9a1cb6942da57493740230 20-Nov-2009 Marc Blank <mblank@google.com> Fix improper constant to allow retry for sending Exchange mail

* Related to MR1 triaged bug 2274389 in which mail was stuck in the
Outbox and wouldn't send
* It turns out an improper constant was being used in the SQL code
for turning off the "error" state flag

Change-Id: Ic1a2e5b9dd34ec3f9d7da0b3d2cd63d77bb7681e
ndroid/exchange/SyncManager.java
6ba40085d7519681c140cbcacdecd4636bfc4ce3 20-Nov-2009 Marc Blank <mblank@google.com> am 863e6c40: Handle "send outgoing messages" properly for combined Outbox

Merge commit '863e6c40202fe804d92a263809da74ec1e904e66' into eclair-mr2

* commit '863e6c40202fe804d92a263809da74ec1e904e66':
Handle "send outgoing messages" properly for combined Outbox
863e6c40202fe804d92a263809da74ec1e904e66 20-Nov-2009 Marc Blank <mblank@google.com> Handle "send outgoing messages" properly for combined Outbox

* The "send outgoing messages" button doesn't work in the combined
inbox (the case wasn't handled)
* Add code to loop through accounts, calling the Controller for each
in this case
* Fixes (partially or completely) #2274389

Change-Id: I94e984247d43f93a4d6546b8c10f6ce149b091be
ndroid/email/activity/MessageList.java
bdb28c164494178fa5d62858c17876a8568470df 18-Nov-2009 Marc Blank <mblank@google.com> Fix #2267475 (NPE when changing incoming settings for EAS)

* When settings are changed, we loop through the sync error map,
clearing mailboxes in the changed account that are in an error
state.
* It's possible that there are mailboxes referenced in the map that
no longer exist. When trying to retrieve them from the provider,
null is returned, but we're not checking for this case, and an
NPE results.
* The fix is simply to check for null, and clear the error map for
the mailboxId that references a deleted mailbox

Change-Id: I8c1c847090026fa1c53b09bbe6b12d864bce4df1
ndroid/exchange/SyncManager.java
6b93f61eea40f83e2bb35aa45fb0301b48225260 19-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ib35bb866 into eclair-mr2

* changes:
Don't allow "trash" to be synced (Fixes #2116463)
6daaf76459b955b82dbc0775c4d318076e4e14a3 19-Nov-2009 Marc Blank <mblank@google.com> Don't allow "trash" to be synced (Fixes #2116463)

Change-Id: Ib35bb86641b473194fea32b55db328a44de1c67b
ndroid/exchange/SyncManager.java
2da2e4632dfd84f956d778f3fe6a83c2719296c7 18-Nov-2009 Dan Egnor <egnor@google.com> Change android.text.util.Regex to com.android.common.Patterns
ndroid/email/activity/MessageView.java
5e062514bfc320af550596031925e0fe6ae0d565 14-Nov-2009 Elliott Hughes <enh@google.com> Move the org.kxml2.wap.Wbxml class into the EAS code, the only user.

(I notice that you already have, for example, an END constant, but with
a different value. Bug?)

Bug: 2249953
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/adapter/Wbxml.java
b1487a203051c679fe568e9d4c90a40180576ab4 16-Nov-2009 Elliott Hughes <enh@google.com> DO NOT MERGE: Back-port 2249953 fix (for email unbundling).

Original check-in comment:
Move the org.kxml2.wap.Wbxml class into the EAS code, the only user.

Dr No approval: danfuzz
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/adapter/Wbxml.java
56e48981f0093c737b38b7757410283be9ed823f 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/GroupMessagingListener.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/Preferences.java
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListItem.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/AddressTextView.java
ndroid/email/activity/Debug.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListItem.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/Address.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/Folder.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/Transport.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/exchange/ExchangeSenderExample.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
ndroid/email/mail/exchange/ExchangeTransportExample.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/ExchangeSender.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/EmailServiceProxy.java
ndroid/email/service/MailService.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/BootReceiver.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/Eas.java
ndroid/exchange/EasException.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailContent.aidl
ndroid/exchange/EmailServiceStatus.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/IEmailServiceCallback.aidl
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/MockParserStream.java
ndroid/exchange/PartRequest.java
ndroid/exchange/StaleFolderListException.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/AccountSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/PingParser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/adapter/Tags.java
ndroid/exchange/adapter/patent_disclaimer.txt
ndroid/exchange/patent_disclaimer.txt
ndroid/exchange/utility/FileLogger.java
ndroid/exchange/utility/patent_disclaimer.txt
83b67e61989b5ca61be4754272618bc51b42cb47 10-Nov-2009 Marc Blank <mblank@google.com> Fix #2251837; better response w/ security req'd. DO NOT MERGE

* Currently, we validate EAS accounts using a command that will
succeed even if we do not support required security policies.
* This causes a confusing "invalid username or password" error
when trying to sync with a validated account in the case that
there are, in fact, required policies
* The fix is to send a sync command after validating the user name
and password; a 403 error indicates the requirement for
security policies.
* When we see the 403 error, we put up a message that is appropriate
to the situation.

Change-Id: I74e132cb81f021cbb697cc9ee146405bf3ebc0ba
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/MessagingException.java
ndroid/exchange/EasSyncService.java
29935abb1cbb64ffa232daefeaae7ecc4541722b 10-Nov-2009 Marc Blank <mblank@google.com> Fix #2251837; better response when provisioning is required.

* Currently, we validate EAS accounts using a command that will
succeed even if we do not support required security policies.
* This causes a confusing "invalid username or password" error
when trying to sync with a validated account in the case that
there are, in fact, required policies
* The fix is to send a sync command after validating the user name
and password; a 403 error indicates the requirement for
security policies.
* When we see the 403 error, we put up a message that is appropriate
to the situation.

Change-Id: Ic40820253dca1f357297b2355ad987bc39d0775f
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/MessagingException.java
ndroid/exchange/EasSyncService.java
151ebde5d1135ca7b50ffd97df14cda5d3282477 29-Oct-2009 Marc Blank <mblank@google.com> Allow sync data via the chunked transfer encoding DO NOT MERGE

* Fixes #2216885
* The bug is that the sync adapters weren't set up to handle chunked
encoding, primarily because 1) I hadn't seen any servers use it, and
2) when we changed from HttpUrlConnection to HttpClient, support for
chunked wasn't added (HttpUrlConnection didn't support it)
* The fix for xml data is trivial, since the Content-Length returned in
the chunked case (-1) was being disallowed, but works perfectly well
with HttpClient.
* The fix for attachments is less trivial, but still straightforward.
* With this change, we are no longer dependent on receiving content-length,
which is highly desirable

Change-Id: I8d46790e41eaeee2887c8a207006c5d6786498ed
ndroid/exchange/EasSyncService.java
038be0fc4d5fe36a4691a1227f9af484f0933d98 04-Nov-2009 Marc Blank <mblank@google.com> am c5ec3d0b: Merge change I2eee4ddc into eclair

Merge commit 'c5ec3d0bce03de10c4bb1bc5cf013494c6d62947' into eclair-mr2

* commit 'c5ec3d0bce03de10c4bb1bc5cf013494c6d62947':
Improved fix for #2189704 (sync loss)
c5ec3d0bce03de10c4bb1bc5cf013494c6d62947 04-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I2eee4ddc into eclair

* changes:
Improved fix for #2189704 (sync loss)
d676ab6a982ad76bb29beef5894823e5c6f18a77 04-Nov-2009 Marc Blank <mblank@google.com> Improved fix for #2189704 (sync loss)

* The prior fix prevented looping in the case that a new sync key wasn't
received.
* Unfortunately, the prior fix tested for the looping condition (moreAvailable)
before it would have been set.
* The correct fix is to detect the looping condition after both the sync key
and the moreAvailable flag are guaranteed to have been set

Change-Id: I2eee4ddc123fb2a5ce4ef3bd4e7d0614fcfbdf36
ndroid/exchange/adapter/AbstractSyncParser.java
ccd29c33ed9b95eb69a1b769c53d9a8965888e9f 29-Oct-2009 Marc Blank <mblank@google.com> Allow sync data to arrive via the chunked transfer encoding.

* Fixes #2216885
* The bug is that the sync adapters weren't set up to handle chunked
encoding, primarily because 1) I hadn't seen any servers use it, and
2) when we changed from HttpUrlConnection to HttpClient, support for
chunked wasn't added (HttpUrlConnection didn't support it)
* The fix for xml data is trivial, since the Content-Length returned in
the chunked case (-1) was being disallowed, but works perfectly well
with HttpClient.
* The fix for attachments is less trivial, but still straightforward.
* With this change, we are no longer dependent on receiving content-length,
which is highly desirable

Change-Id: Ie3bd6af0cf68f3afa190711d96b1dbd2e6341f79
ndroid/exchange/EasSyncService.java
e7965e975fb1904e457928d18bb5751ebcf7a830 30-Oct-2009 Marc Blank <mblank@google.com> am 1e1d7cb1: Merge change Ie2804ddc into eclair

Merge commit '1e1d7cb189e7ea7164d1335539d68d3d3ca8c0e5' into eclair-mr2

* commit '1e1d7cb189e7ea7164d1335539d68d3d3ca8c0e5':
Fix #2225869 (Regression in attachment loading / Exchange 2003)
1e1d7cb189e7ea7164d1335539d68d3d3ca8c0e5 30-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie2804ddc into eclair

* changes:
Fix #2225869 (Regression in attachment loading / Exchange 2003)
68942b93a49c4bfed972ee0b5cffd301cebdacc8 30-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9733dc5d into eclair

* changes:
Fix folder deletion; support folder rename (#2118439) DO NOT MERGE
05dfc20853503d1bc5bb13201b4f9e6db1da856d 30-Oct-2009 Marc Blank <mblank@google.com> Fix #2225869 (Regression in attachment loading / Exchange 2003)

* The fix to bug #2191778 inadvertently broke attachment loading for
Exchange 2003 servers; the server responds with a 403 error (indicating
an authentication issue)
* All other communications with the server work properly
* We use a slightly different set of calls in the case of attachments (we
wanted to change as little as possible in the fix to #2191778) than we
do in the other cases
* The fix here is to use the same calling sequence for attachments that we
use elsewhere
* This fix has been observed to work on multiple servers, and in various
SSL scenarios (on/off, trusted/untrusted)

Change-Id: Ie2804ddcbfa2b10edff42f7a3811734c325e933d
ndroid/exchange/EasSyncService.java
94d2e9958111aad6eece998077120599863b2b69 29-Oct-2009 Marc Blank <mblank@google.com> Fix folder deletion; support folder rename (#2118439) DO NOT MERGE

* Folder delete had a subtle error that could cause subsequent folder
changes in the same sync to fail (using wrong end tag)
* Folder change (rename, move) wasn't implemented; this was added and
tested. The change is very straightforward and low risk.

Change-Id: I9733dc5da1a535c388e2feb299a641642ba531c2
ndroid/exchange/adapter/FolderSyncParser.java
0911d6290f7e137d4deeda8104d49743ee84a6ef 29-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Id69cee9b into eclair-mr2

* changes:
Fix folder deletion; add support for folder rename (#2118439)
d2cc8327826f33e36308f18bd35f19adff3b56e0 29-Oct-2009 Marc Blank <mblank@google.com> Fix folder deletion; add support for folder rename (#2118439)

* Folder delete had a subtle error that could cause subsequent folder
changes in the same sync to fail (using wrong end tag)
* Folder change (rename, move) wasn't implemented; this was added and
tested. The change is very straightforward and low risk.

Change-Id: Id69cee9b99e9a988a176a6525ba9a1615b741c44
ndroid/exchange/adapter/FolderSyncParser.java
9abd1bf9dabbf5f55b0f84a61d61b031250154bc 29-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I21052e28 into eclair-mr2

* changes:
Controller: modify the test for "attachment already loaded".
6bb7c7248af1057eaf6f672be03bc46c8d03472d 19-Oct-2009 Mihai Preda <preda@google.com> MessageView: disable reply&forward for Trash messages.

Bug 2170118
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
0054c1a9e699e5c90daed6fd0a30ffc8aec3955e 28-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change If12d0e7c into eclair

* changes:
Go to combined inbox on notify for 2+ accounts (#2147265) DO NOT MERGE
2533132c84b9721b9692b284bbb14e5e0d237237 28-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ic29d3eac into eclair

* changes:
Server validates even though server address is wrong DO NOT MERGE
5d4bb79044a7392849076e44987598f6d2d9f39d 21-Oct-2009 Marc Blank <mblank@google.com> Go to combined inbox on notify for 2+ accounts (#2147265) DO NOT MERGE

* The problem is that PendingIntents aren't updated when a notification
is updated, so the changed extras when a 2nd account gets a new message
aren't seen by MessageList when it's started up upon tapping the
notification (it uses the extras from the 1st account to get a new
message)
* The fix is to use the newish (cupcake) flag in the PendingIntent that
causes the extras in the PendingIntent to be updated

Change-Id: If12d0e7c6d3f256befeca98b560443395820737f
ndroid/email/service/MailService.java
e53de6985a6ffe5cfb6d3749239d77925202b58d 08-Oct-2009 Marc Blank <mblank@google.com> Server validates even though server address is wrong DO NOT MERGE

* Fixes #2173664
* Make sure that not only is the OPTIONS command accepted, but that
the server reports EAS versions and commands

Change-Id: Ic29d3eacfdc54d107600afc443964a1e8b3d5e59
ndroid/exchange/EasSyncService.java
ea5b93d9b825e17eddf7f34cd37abef98e9949bd 15-Oct-2009 Marc Blank <mblank@google.com> Handle moreAvailable true w/o changes (#2189704) DO NOT MERGE

* An Exchange log from Moto has shown sync behavior in which moreAvailable
is set to true even though there are no changes in the sync response
(i.e. the SyncKey is unchanged)
* This leads to long-lived looping which impacts battery life
* The fix is to recognize the behavior and prevent looping by
setting moreAvailable = false

Change-Id: Icf45efbc24331c874c820b7b177e39b16df445d8
ndroid/exchange/adapter/AbstractSyncParser.java
9ef6f645f57d869a600113f555389b5d5e368c21 17-Oct-2009 Mihai Preda <preda@google.com> Controller: modify the test for "attachment already loaded".

Bug 2192510.

update unit test.
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/provider/AttachmentProvider.java
da08e3bcb6dc83409f136b5e80e1ce1ab2925936 22-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I218079f2 into eclair-mr2

* changes:
Fix timing-dependent crash in Medium tests (#2202726)
d16b4b921fef0a79a12fd90a5fad353413ba80ea 21-Oct-2009 Marc Blank <mblank@google.com> Go to combined inbox from notification for 2+ accounts (#2147265)

* The problem is that PendingIntents aren't updated when a notification
is updated, so the changed extras when a 2nd account gets a new message
aren't seen by MessageList when it's started up upon tapping the
notification (it uses the extras from the 1st account to get a new
message)
* The fix is to use the newish (cupcake) flag in the PendingIntent that
causes the extras in the PendingIntent to be updated

Change-Id: Ia4ab14954b2c1413526016975216b2516372f2aa
ndroid/email/service/MailService.java
38203a3fde183943da123ab5ec0ed6243c431761 21-Oct-2009 Marc Blank <mblank@google.com> Fix timing-dependent crash in Medium tests (#2202726)

Change-Id: I218079f24f1ce08d770624d1272e1d9a46c1be26
ndroid/exchange/EasSyncService.java
3045bb967fa7bd88dc52c332cbeb7ffcd4252fe4 21-Oct-2009 satok <satok@google.com> Add view of all counts in AccountFolderList

BUG: 2201097
ndroid/email/activity/AccountFolderList.java
528fa1bbca31c0c436dc6dc941286d9757f8675f 20-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Icabbe5fe into eclair-mr2

* changes:
Fix #2159410 (side-effect of unexpected account deletion)
c1b8efad5070f3da424c4903910335d8ef2b98bb 20-Oct-2009 Marc Blank <mblank@google.com> Fix #2159410 (side-effect of unexpected account deletion)

Change-Id: Icabbe5fe5c417ff72b542eff7a54c658814d482b
ndroid/exchange/SyncManager.java
367963639d4291511b7e175a208e2b553aac26c2 20-Oct-2009 Marc Blank <mblank@google.com> Fix SQL for upgrade from ver 6 to ver 7 of Email database

Fixes #2196917

Change-Id: Ia403e50e9ec4ea553d38ded656bba769a4a4dd18
ndroid/email/provider/EmailProvider.java
4bc81bb2863101aad460a24c04abd08370adfa6e 19-Oct-2009 satok <satok@google.com> Fix build breakage
ndroid/email/activity/AccountFolderList.java
ba78d18f59c73273739260e52d87b2ef8b81ab44 19-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I23b7f225 into eclair-mr2

* changes:
Clean up appearance of unread counters
fa368b50d637ab8d74d1b77698a37e958fb703f0 16-Oct-2009 satok <satok@google.com> Clean up appearance of unread counters

BUG: 2161746
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
3a88e2c35c274b249b095067ae87f89eaf15906e 19-Oct-2009 Marc Blank <mblank@google.com> am 55a97fc3: Fix attachment loading with "accept certificates" checked

Merge commit '55a97fc360ac549631af3aa3aad9833812674562' into eclair-mr2

* commit '55a97fc360ac549631af3aa3aad9833812674562':
Fix attachment loading with "accept certificates" checked
55a97fc360ac549631af3aa3aad9833812674562 19-Oct-2009 Marc Blank <mblank@google.com> Fix attachment loading with "accept certificates" checked

* Fixes #2191778 (P1/S1)
* Attachment retrieval wasn't using newer code to create its
HttpClient.
* Fix is simple, extremely safe

Change-Id: I65be27decae8719bbad8ac7dce1c1164de4371a5
ndroid/exchange/EasSyncService.java
dc9bc35bb1adf4ef5deb4125eb0df0fef0c45dfc 15-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Idef455f3 into eclair-mr2

* changes:
Handle case of moreAvailable true with no changes (#2189704)
288bb26ab82f1a3d7053affd766d158d5a7c8d9f 15-Oct-2009 Marc Blank <mblank@google.com> Handle case of moreAvailable true with no changes (#2189704)

* An Exchange log from Moto has shown sync behavior in which moreAvailable
is set to true even though there are no changes in the sync response
(i.e. the SyncKey is unchanged)
* This leads to long-lived looping which impacts battery life
* The fix is to recognize the behavior and prevent looping by
setting moreAvailable = false

Change-Id: Idef455f3e1170caf4002542ca432d128b3a19e56
ndroid/exchange/adapter/AbstractSyncParser.java
f095e9df5a8dbd97dcefecb479fbcce05ddb4d87 15-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ib53e4411 into eclair-mr2

* changes:
Clear out orphaned messages in updates/deletes tables
ef83299b99288c00b9d661260d19715e73e6889c 14-Oct-2009 Marc Blank <mblank@google.com> Clear out orphaned messages in updates/deletes tables

Case #1:
* Fixes #2184702
* Messages can be in the base Messages table, but also in
Message_Deletes and Message_Updates; the latter two were not
being purged of deleted messages.
* This CL deletes from all three tables when a Mailbox is deleted
* Also run a check for orphaned deletes/updates when the email
provider's db is first opened
* Unit test updated to check for proper deletion
* Unit test for the provider check for orphans

Case #2:
* Fixes #2184708
* Messages in Outbox/Drafts can get modified or deleted, but the
rows added to the updates/delete tables never get removed because
the boxes don't sync
* Added code to SyncManager.ping (which gets notifications of these
changes) to delete these rows

Change-Id: Ib53e441136b0da1e88bc220150d631999058a8f0
ndroid/email/provider/EmailProvider.java
ndroid/exchange/SyncManager.java
3afd66cda8e466f23a8febb4906a8957abde86b7 14-Oct-2009 Mihai Preda <preda@google.com> MessageCompose: disable "save as draft" button logic.

Bug 2184404
Disable "save as draft" button when there are no changes to be saved.
ndroid/email/activity/MessageCompose.java
347a44af5663d720b747714b0ccb137ffd54b144 09-Oct-2009 satok <satok@google.com> Fix the bug that the count of draft and trash icons are wrong.

BUG: 2159565

* Currently only the number of unread messages is shown.
* Fixed to show the number of all messages
ndroid/email/activity/MailboxList.java
53123c2f914db357fa5b4a8451b23c6be77314a5 14-Oct-2009 Andrew Stadler <stadler@android.com> DO NOT MERGE. Prevent duplication of POP3 attachments

* For each attachment we add, check the DB for an existing attachment
with similar metadata (name, mime type, content id, etc.)
* Skip adding them if already held
* Unit tests

Originally fixed in 5b0a12c1991988 / CL I036f39c6

Fixes bug http://b/2084704
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailContent.java
196f6187bb25c7ed1b2f6f5f3178152294b3cc22 14-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I036f39c6 into eclair-mr2

* changes:
Prevent duplication of POP3 attachments
5b0a12c199198870161876996296b1262c17408e 14-Oct-2009 Andrew Stadler <stadler@android.com> Prevent duplication of POP3 attachments

* For each attachment we add, check the DB for an existing attachment
with similar metadata (name, mime type, content id, etc.)
* Skip adding them if already held
* Unit tests

Fixes bug http://b/2084704
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailContent.java
e3e02adac681790ff4bea653e273f7e2b0eea35b 14-Oct-2009 Andrew Stadler <stadler@android.com> am dee4e253: Do not trust server-provided content type for attachments

Merge commit 'dee4e25320c5154a5626446e1aa37f63ae97c48c' into eclair-mr2

* commit 'dee4e25320c5154a5626446e1aa37f63ae97c48c':
Do not trust server-provided content type for attachments
dee4e25320c5154a5626446e1aa37f63ae97c48c 14-Oct-2009 Andrew Stadler <stadler@android.com> Do not trust server-provided content type for attachments

* Fixes a bug that caused some attachments to be labeled with the
wrong content type and thus unable to be opened by local apps.
* When the attachment code was written, MimeTypeMap had very few
entries, so we tried to get the mime type of Exchange attachments
from the stream when the file was read off the server. It turns
out that the server's idea of mime type is unpredictable
* In the meantime, MimeTypeMap has been fleshed out, so we really
do know the type in the vast majority of cases (and including all
common document types)
* The fix is to remove the lines related to reading the mime
type from the attachment stream
* Content type is set (properly) when attachment record is created. See
EasEmailSyncParser.getMimeTypeFromFileName() for details.

Fixes bug http://b/2182955

Change-Id: Iebb3de529df4548327d7112e1dedb3bd448462a4
ndroid/exchange/EasSyncService.java
7cfda60b2b2f8769079189727cee4c8fb9934d35 13-Oct-2009 Marc Blank <mblank@google.com> am 4e424a33: Merge change Ie093215f into eclair

Merge commit '4e424a33c29446d750790e360e43fb7c83ec0c6f' into eclair-mr2

* commit '4e424a33c29446d750790e360e43fb7c83ec0c6f':
Add truncation at 100k (EAS 2.5) and 200k (EAS 12) (#2184807)
4e424a33c29446d750790e360e43fb7c83ec0c6f 13-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie093215f into eclair

* changes:
Add truncation at 100k (EAS 2.5) and 200k (EAS 12) (#2184807)
b7c67a0124fe4897c71f5cbe4bbae87621a6a1fa 13-Oct-2009 Andrew Stadler <stadler@android.com> am 754240bc: Fix race condition in testMultiple()

Merge commit '754240bcf3ccc8492a50ba9ee8056b34f6e4e8d0' into eclair-mr2

* commit '754240bcf3ccc8492a50ba9ee8056b34f6e4e8d0':
Fix race condition in testMultiple()
5fd81cad4cb328cf9882e84728886625f086114c 13-Oct-2009 Marc Blank <mblank@google.com> Add truncation at 100k (EAS 2.5) and 200k (EAS 12) (#2184807)

* Prevents OOM errors with huge message bodies

Change-Id: Ie093215f96a514b3a1bcd31aa1f5957d1ada7719
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
754240bcf3ccc8492a50ba9ee8056b34f6e4e8d0 13-Oct-2009 Andrew Stadler <stadler@android.com> Fix race condition in testMultiple()

* If we close the activity while a requeryList() is pending in the
handler queue, we'll eventually try to operate on a closed cursor
when we get to testMultiple().
* The fix: Return immediately if the cursor is not available.

Fixes bug http://b/2180416
Followup for bug http://b/2149083
ndroid/email/activity/MessageList.java
2bc47f24a4db464f58977ae808f754e2a9191daa 12-Oct-2009 Mihai Preda <preda@google.com> MessageView: use FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET when viewing attachments.

Bug 2180995.
ndroid/email/activity/MessageView.java
255dba84f123ee4645217fd7e07b5bdd0d89aa61 12-Oct-2009 Marc Blank <mblank@google.com> am 2c74ee56: Prevent EmailAddressAdapter from leaking cursors; load in bg

Merge commit '2c74ee56a44e7a43bda14e88fd2b571fd88952fe' into eclair-mr2

* commit '2c74ee56a44e7a43bda14e88fd2b571fd88952fe':
Prevent EmailAddressAdapter from leaking cursors; load in bg
2c74ee56a44e7a43bda14e88fd2b571fd88952fe 12-Oct-2009 Marc Blank <mblank@google.com> Prevent EmailAddressAdapter from leaking cursors; load in bg

* Relates to a number of bugs related to ANR's and slow behavior
when addressing mail
* Call changeCursor(null) on the Adapter when the activity is destroyed
* Call getCount() in the background thread to force data there rather
than in the UI thread
* If this change is accepted, something equivalent should be
used in the Gmail app as well
* Addresses #2180237 (P1, target Eclair_Sholes) as well as
#2180976 and #2146926, the latter two of which were fixed
with workarounds.

Change-Id: I7503c5fbe091dbc5e784d5a7bebeb3d60226d57d
ndroid/email/EmailAddressAdapter.java
ndroid/email/activity/MessageCompose.java
89966059c997a410c0b54be2d56e1259ed99940f 12-Oct-2009 Mihai Preda <preda@google.com> am 1a377f09: MessageCompose: corretly set initial mSourceMessageProcessed=true for the cases where there\'s no source message, to avoid duplicated email addresses on orientation change.

Merge commit '1a377f096f3a263bba536355823290db4bba7434' into eclair-mr2

* commit '1a377f096f3a263bba536355823290db4bba7434':
MessageCompose: corretly set initial mSourceMessageProcessed=true for the cases where there's no source message, to avoid duplicated email addresses on orientation change.
1a377f096f3a263bba536355823290db4bba7434 12-Oct-2009 Mihai Preda <preda@google.com> MessageCompose: corretly set initial mSourceMessageProcessed=true for the cases where there's no source message, to avoid duplicated email addresses on orientation change.

Bug 2180955.
ndroid/email/activity/MessageCompose.java
d5e7afa1ebd6ffe29338e69e709d7998e6572137 12-Oct-2009 Andrew Stadler <stadler@android.com> Remove obsolete resources & code

* FolderMessageList
* Fat title bar (remnants)
* Drawables

Bug # http://b/2071133
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
8be9b8937be04cc50e7fd2e79d2d91c99aace1b5 11-Oct-2009 Marc Blank <mblank@google.com> am ea878be1: Make sure we hold WakeLock during mail sending (fixes #2180551)

Merge commit 'ea878be11729cd793d9183fc264118241cd5a5b6' into eclair-mr2

* commit 'ea878be11729cd793d9183fc264118241cd5a5b6':
Make sure we hold WakeLock during mail sending (fixes #2180551)
ea878be11729cd793d9183fc264118241cd5a5b6 09-Oct-2009 Marc Blank <mblank@google.com> Make sure we hold WakeLock during mail sending (fixes #2180551)

* Don't runAsleep unless this is a Ping
* Relates to #2178288 in that it's possible that the system could
sleep while we're trying to send (not sure if this is possible;
will check), so we prevent it by holding a WakeLock in this case

Change-Id: Ib3f8786501b942e1cfcb7a0bbb07b8e3084e2a86
ndroid/exchange/EasSyncService.java
0fd132d26c0846c00419cae124fb7f881331418b 10-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I5de51a43 into eclair-mr2

* changes:
Allow photo changes to be uploaded to Exchange (fixes #2179082)
59da135e15756675e9ac6b7ff761eab59299a1dd 09-Oct-2009 Marc Blank <mblank@google.com> Allow photo changes to be uploaded to Exchange (fixes #2179082)

Change-Id: I5de51a4313c43dbe4e3d12d4d0e11b20adedaa8f
ndroid/exchange/adapter/ContactsSyncAdapter.java
4cce00d6c4c70bfc43409f677556ef07098d3700 09-Oct-2009 Mike Cleron <mcleron@google.com> am 479b22a2: Make multiselect buttons update when the list state changes

Merge commit '479b22a2f8966b63789c89e878b615ebd53708c0' into eclair-mr2

* commit '479b22a2f8966b63789c89e878b615ebd53708c0':
Make multiselect buttons update when the list state changes
479b22a2f8966b63789c89e878b615ebd53708c0 09-Oct-2009 Mike Cleron <mcleron@google.com> Make multiselect buttons update when the list state changes
ndroid/email/activity/MessageList.java
7a8bbfe0b07a111d8e77fe05165575deed9bb4b6 09-Oct-2009 Marc Blank <mblank@google.com> am 4b59cfc8: Fix problem with timeouts and sending attachments (#2178288)

Merge commit '4b59cfc8ed4054ffb5ad85cea8aba94a430cc2cb' into eclair-mr2

* commit '4b59cfc8ed4054ffb5ad85cea8aba94a430cc2cb':
Fix problem with timeouts and sending attachments (#2178288)
4b59cfc8ed4054ffb5ad85cea8aba94a430cc2cb 09-Oct-2009 Marc Blank <mblank@google.com> Fix problem with timeouts and sending attachments (#2178288)

* Standard Exchange command timeouts are 20 seconds
* For sending, however, these need to be significantly longer to
handle the case of sending large attachments, as sending (of any
length) happens in a single HTTP Post command
* Having an infinite timeout leads to the (small) possibility of the
Outbox hanging for a long time, holding up the sending of other
mail, so we set a long, but not infinite timeout for this case
* Timeout now set for 15 minutes
* Prevent sync of Outbox and Drafts (the UI triggers these by changing
the contents of these boxes, but we need to ignore the pings that
are generated this way)

Change-Id: I5b830d6b4e94525d95138b2112be12898a37882e
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
affa5660e7b4b97d3011d7272bb8c05f45990f26 07-Oct-2009 Mihai Preda <preda@google.com> MessageView: UI change prev/next arrows.

Bug: 2149187

The prev/next buttons now each extends half the width, and are on black background.
ndroid/email/activity/MessageView.java
676ea183bdb57c4331add12ced3d4c9ae2629c3a 08-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I15dccd1f into eclair-mr2

* changes:
Server validates even though server address is wrong
ff0c1f631348f0cdfa6733b37e2a65202a434923 08-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ic2d782c1 into eclair-mr2

* changes:
Add checks to prevent duplicate service starts (fixes #2099830)
ba0b734043186f7eb0c7de01aec44f9b0307c569 08-Oct-2009 Mihai Preda <preda@google.com> am 73032f46: Email: exit AsyncTask.onPostExecute() if the result is null or isCancelled().

Merge commit '73032f4657a77f733a348fe3c2c1fa783d335ff0' into eclair-mr2

* commit '73032f4657a77f733a348fe3c2c1fa783d335ff0':
Email: exit AsyncTask.onPostExecute() if the result is null or isCancelled().
73032f4657a77f733a348fe3c2c1fa783d335ff0 06-Oct-2009 Mihai Preda <preda@google.com> Email: exit AsyncTask.onPostExecute() if the result is null or isCancelled().

Bug: 2167479
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
8063528202b66433388a859175ed29d5b6ebd59d 08-Oct-2009 Marc Blank <mblank@google.com> Server validates even though server address is wrong

* Fixes #2173664
* Make sure that not only is the OPTIONS command accepted, but that
the server reports EAS versions and commands

Change-Id: I15dccd1fbd06aa3cf2ba8fbbf72d20918ec44617
ndroid/exchange/EasSyncService.java
ec7bdde6a5e8d329291ffc7861bee5ac37877277 08-Oct-2009 Andrew Stadler <stadler@android.com> am 5b26bbe4: Switch QuickContact presentation from MEDIUM to LARGE.

Merge commit '5b26bbe4551ca095697f07eca7d09b24573cba11' into eclair-mr2

* commit '5b26bbe4551ca095697f07eca7d09b24573cba11':
Switch QuickContact presentation from MEDIUM to LARGE.
5b26bbe4551ca095697f07eca7d09b24573cba11 08-Oct-2009 Andrew Stadler <stadler@android.com> Switch QuickContact presentation from MEDIUM to LARGE.

Bug # http://b/issue?id=2170878
ndroid/email/activity/MessageView.java
9331d413b27f5e8ed40f6dd9e60f055c6fdb0069 07-Oct-2009 Andrew Stadler <stadler@android.com> am 25920f67: Merge change I7a3482fd into eclair

Merge commit '25920f67e6ff67ee74637360aff072483b454a42' into eclair-mr2

* commit '25920f67e6ff67ee74637360aff072483b454a42':
Handle IMAP empty bodies more safely
b6756688b1bf07c50b999c9d30dd6cb224d3812b 07-Oct-2009 Andrew Stadler <stadler@android.com> Handle IMAP empty bodies more safely

Some IMAP servers return NIL if you BODY.PEEK[TEXT] a messsage with
no body, instead of the more canonical {0}CRLF. Instead of messing with the
parser to deal with that, it makes more sense not to try and fetch empty
bodies. So there are three changes:

* Don't fetch parts when size = 0
* Don't append "null" when there is null body text
* Slight change to attachment handling so size is reported >0
* Unit tests on some of the related lower-level protocol stuff

Bug http://b/issue?id=2160387

Change-Id: Ifb8fb0ed5ce7297908e1ae8d5a02dda5975c4a3c
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/store/ImapStore.java
572f6058f4733b095856ba71014a4d030ac27d85 07-Oct-2009 Marc Blank <mblank@google.com> Add checks to prevent duplicate service starts (fixes #2099830)

Change-Id: Ic2d782c1b36459212f7f3441202220353eccd776
ndroid/exchange/SyncManager.java
df002ccfac0b61175a99169fdd12206b43e7997d 07-Oct-2009 Fred Quintana <fredq@google.com> am 2c79efd8: Merge change I303304ab into eclair

Merge commit '2c79efd82736c4fd9a8351130b9410e9fb23f7f7' into eclair-mr2

* commit '2c79efd82736c4fd9a8351130b9410e9fb23f7f7':
changes from Sync Manager API Review: bug 2164262
a39b643d79180ab8f91aa4b1ae28d0b0b768834e 07-Oct-2009 Marc Blank <mblank@google.com> am e1b5e857: Merge change I2b0e3b10 into eclair

Merge commit 'e1b5e8574c86e4dcc184f1b3a4db352c9a631d99' into eclair-mr2

* commit 'e1b5e8574c86e4dcc184f1b3a4db352c9a631d99':
Help with another push inconsistency edge case (#2131432)
2c79efd82736c4fd9a8351130b9410e9fb23f7f7 07-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I303304ab into eclair

* changes:
changes from Sync Manager API Review: bug 2164262
84c975033d75dd3449c4a36017d0d8732dd5de16 07-Oct-2009 Fred Quintana <fredq@google.com> changes from Sync Manager API Review: bug 2164262
ndroid/exchange/ContactsSyncAdapterService.java
e1b5e8574c86e4dcc184f1b3a4db352c9a631d99 07-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I2b0e3b10 into eclair

* changes:
Help with another push inconsistency edge case (#2131432)
aa32726d8b0001bfdd9498d9ecc4459f1aa3fc70 06-Oct-2009 Andrew Stadler <stadler@android.com> am eb7752bf: Fix back-to-back message-id bugs

Merge commit 'eb7752bf695b2a93854e0bb89ddbbc2236bb9aea' into eclair-mr2

* commit 'eb7752bf695b2a93854e0bb89ddbbc2236bb9aea':
Fix back-to-back message-id bugs
37aa27440bd3d73c9720252078b7507f5be480b1 06-Oct-2009 Mihai Preda <preda@google.com> am 85d718cb: MessageCompose: quote plain-text body if available, otherwise quote HTML body.

Merge commit '85d718cb0735de9069673fbf9834fa64459c2178' into eclair-mr2

* commit '85d718cb0735de9069673fbf9834fa64459c2178':
MessageCompose: quote plain-text body if available, otherwise quote HTML body.
eb7752bf695b2a93854e0bb89ddbbc2236bb9aea 06-Oct-2009 Andrew Stadler <stadler@android.com> Fix back-to-back message-id bugs

* MessageCompose now adds message-id to new messages (it was previously
done on its behalf by MimeMessage).
* LegacyConversions.updateMessageFields() now handles missing message-id
without error.
* Unit tests for the LegacyConversions change

These two issues were combining with a failure of comcast's SMTP server
to insert message-id headers, to prevent delivery of a message between
any two comcast accounts using this client.

Bug # http://b/issue?id=2161478
ndroid/email/LegacyConversions.java
ndroid/email/Utility.java
ndroid/email/activity/MessageCompose.java
ffef9d9fe8fdf7ff176b57d975f7610518d47ca8 05-Oct-2009 Marc Blank <mblank@google.com> Help with another push inconsistency edge case (#2131432)

* If we are forced to abort a "ping" due to a watchdog alarm, we should
handle this as a ping failure (which potentially changes the heartbeat)
rather than a garden variety IOException.
* This prevents the additional overhead of connection error backoffs,
which would only tend to increase the time needed to recover from the
error.
* In one case reported by Moto, this appears to be the behavior of a WiFi
router with NAT timeout. This fix will cause maximum delay for pushed
mail to be reduced in most cases.

Change-Id: I2b0e3b10d82762d20f63cac3ac4638a03f13f842
ndroid/exchange/EasSyncService.java
25c7efc8eb496136b734349babf463f3edcc6edb 06-Oct-2009 Marc Blank <mblank@google.com> Use constants for elements in projections.

Change-Id: I304e03da4419b4e7166189e08e4ce947c5f74383
ndroid/exchange/adapter/EmailSyncAdapter.java
85d718cb0735de9069673fbf9834fa64459c2178 02-Oct-2009 Mihai Preda <preda@google.com> MessageCompose: quote plain-text body if available, otherwise quote HTML body.

Bug 2082852.
ndroid/email/activity/MessageCompose.java
1ef86a50f8f6bf09cb031359c1d7cf0902c4a441 02-Oct-2009 Mihai Preda <preda@google.com> MessageView: scroll to (0,0) on message change.

Bug 2156934.
ndroid/email/activity/MessageView.java
d493ba257a1632a8de578e06a7df7ed311227887 06-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie90b74aa into eclair

* changes:
Avoid NPE at onRefresh in MessageList
8647be095a75a25df98487d6e908a94f2d6fb076 05-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Id1c0bc24 into eclair

* changes:
Correct issue with mail change parsing (fixes #2165649)
d0848056f18bd2ea96aad0b08104e10b9f11d7e0 05-Oct-2009 Marc Blank <mblank@google.com> Correct issue with mail change parsing (fixes #2165649)

* Older parsing code that didn't take into account the fact that
'flag' is a structured data item
* Requires Dr. No approval for Eclair_Sholes

Change-Id: Id1c0bc24e784b19c598d2b852975e135abebbdb0
ndroid/exchange/adapter/EmailSyncAdapter.java
794b7e9258db816aa7097779f20e99878e412eda 03-Oct-2009 Fred Quintana <fredq@google.com> account manager api review changes
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/SyncManager.java
888ea64f86e518de18806ef85bc7c16ba29f72f6 05-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I26bb7b8b into eclair

* changes:
Handle change from push to other intervals properly (#2165032)
86765f34632bf34e0b2e9beed5a70c0775063aac 04-Oct-2009 Marc Blank <mblank@google.com> Handle change from push to other intervals properly (#2165032)

* Make sure eas account mailbox is also changed to the new sync interval

Change-Id: I26bb7b8b740c09f4c2cf848c33c9b642b9776fcc
ndroid/exchange/SyncManager.java
65aae18de30be842537d15f7b535243e96071c75 05-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Iaf15ead1 into eclair

* changes:
Add patent disclaimer to appropriate directories (#2079270)
c5563407dd2e80cac6532587a6aeb7eae36ded0e 03-Oct-2009 Marc Blank <mblank@google.com> Add patent disclaimer to appropriate directories (#2079270)

Change-Id: Iaf15ead1df560633f9d1b7e915ac846bb6789bf2
ndroid/exchange/adapter/patent_disclaimer.txt
ndroid/exchange/patent_disclaimer.txt
ndroid/exchange/utility/patent_disclaimer.txt
e90b74aa0410ea93f6b40617bf721770e50585e2 05-Oct-2009 satok <satok@google.com> Avoid NPE at onRefresh in MessageList

BUG: 2161449
ndroid/email/activity/MessageList.java
c9e05f16b278967f929d18798d3f9d254096b01d 05-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I13229d84 into eclair

* changes:
Change logging command to help debug Moto issue (#2165649)
b3e449edf958012d7ec589b2a1a764d663fffac1 05-Oct-2009 Marc Blank <mblank@google.com> Change logging command to help debug Moto issue (#2165649)

* It has been reported that messages for a particular user are not
staying in sync re: deletions via PC
* This hasn't been reported elsewhere
* The new logging command logs the subject of deleted messages which
will help track down the problem
* I have also requested, and expect to receive, an account on the
Moto server in question to try to replicate the issue

Requesting Dr. No approval for this important change to user logging
code.

Change-Id: I13229d843ef828b54f3514bdded5a7561a87989a
ndroid/exchange/adapter/EmailSyncAdapter.java
ba7decd89de39d3ed8d27e8e0e48ad517b435190 03-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I1197ac76 into eclair

* changes:
MessageCompose: allow sending email when started through external intent.
36842abe9f5f022685bff1a7dd72f4664aba9326 02-Oct-2009 Marc Blank <mblank@google.com> Fix push failure edge case (#2161999)

* Unsafe (potentially stale) data was being written to the Mailbox table near
the end of each sync. It would effectively undo changes made to the
Mailbox in other threads that occurred while the Mailbox was syncing.
* In this particular case, changes to sync interval (push/ping/timed)
were being overwritten, which could cause push to get lost for as
long as 30 minutes (the pingLoop timeout when there aren't any
pingable mailboxes)
* Watchdog alarm was being set to wrong time (typo)
* Add extra user logging in case there are additional cases of push
* Only set sync status and time on successful sync
* Move ping error check into pingParser to avoid unnecessary sync

Change-Id: Icb4494078480ada39b7494b3abf380fb08858406
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/EmailSyncAdapter.java
1197ac7692588f1da0a4da58ad041700a0e4720a 02-Oct-2009 Mihai Preda <preda@google.com> MessageCompose: allow sending email when started through external intent.

Bug: 2161199.
ndroid/email/activity/MessageCompose.java
1eb0af5d80514d03acca7ce040a8c01230f3c47e 01-Oct-2009 Marc Blank <mblank@google.com> Fix NPE issue w/ Contacts sync (#2160417)

* Oversight in late-night submission; simple fix

Change-Id: I0c3ebd4b23c1e913d74e153b3692b3ce8e3c0220
ndroid/exchange/adapter/ContactsSyncAdapter.java
2d34c669c10ec5aec70ec53fe7582feba8166394 01-Oct-2009 Mihai Preda <preda@google.com> MessageView: scroll webview to (0,0) on message change.

Bug 2156934.
ndroid/email/activity/MessageView.java
f9ccc0ba88e00c4175f6720aca07876d50b9f22f 01-Oct-2009 Andrew Stadler <stadler@android.com> Plumb send-message status callbacks from service

* Make sure service callbacks are installed
* Route from service sent-message callback to controller results

This sends the callback information back to listeners who care about
sent messages. Note, due to impedance mismatch between the service
and the controller, this should not be used for much more than an
indication that outbox status has changed.

Bug # 2158497

Change-Id: I8d013d97ef53dcca85216f9b8c027ba3917c1e85
ndroid/email/Controller.java
3ea49f215135f0c57456de399f2ea7ad7cb7f17a 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ic3cbc51d into eclair

* changes:
Cleanup delete handling issues in POP3
f16a3f2f6a952640b07acfe669ac626c45cbd8cb 01-Oct-2009 Andrew Stadler <stadler@android.com> Cleanup delete handling issues in POP3

* Removed obsolete "delete after 7 days" option from pop-up prefs
* Mark deleted message sentinels as "read" so they don't contribute
to unread counts.

Bug # 2157487 and Bug # 2159278

Change-Id: Ic3cbc51d6f5ede2eb923e2d0e5c0dfee377764f5
ndroid/email/MessagingController.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/provider/EmailContent.java
4f81086e34c4f28d78d516461f525321109d4804 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie39a95f5 into eclair

* changes:
Update unread count of outbox when messages are sent.
e39a95f59b458c2b310fc6971ba88cd0c05da58a 01-Oct-2009 satok <satok@google.com> Update unread count of outbox when messages are sent.

BUG: 2158497
ndroid/email/activity/AccountFolderList.java
2433cba85b4d73e32abdec12248edcefeb66352f 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ic87cf984 into eclair

* changes:
Call deferred requery from handler instead of Runnable
7aca36b240db9913b4482ee08f448d5588e5f970 01-Oct-2009 Andrew Stadler <stadler@android.com> Call deferred requery from handler instead of Runnable

* code cleanup for Change I9cab6558
* Bug # 2126515

Change-Id: Ic87cf98485271e3fbf162c8b696114035337bd78
ndroid/email/activity/MessageList.java
cdd477e16a82417fb924abc42a2a834c29fb0db8 01-Oct-2009 Marc Blank <mblank@google.com> Delete attachments for mailboxes/messages deleted by server

Change-Id: Idd94dd0be9e8febe449fd4888fdb911af76618ce
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
8401e1aca4c3b3b7b99a5505cb0b0e6281267468 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I99731e64 into eclair

* changes:
Delete attachments when necessary, don't leak disk space
3a8867798889080ac1afd1e40643472fa8eb5697 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9cab6558 into eclair

* changes:
Throttle the refresh of the message list as it changes (fixes #2126515)
71754d3f940fe82e251c274e3e56781e702cfd6f 01-Oct-2009 Andrew Stadler <stadler@android.com> Delete attachments when necessary, don't leak disk space

* Add AttachmentProvider.deleteAllMailboxAttachmentFiles
* Call it when server deletes a mailbox
* Confirmed (no change) all message deletes call deleteAllAttachmentFiles
* Unit tests of course :)

Bug # 2069004

Change-Id: I99731e6489fdca4cc9cebdff5fcf9c09d12b7b3a
ndroid/email/MessagingController.java
ndroid/email/provider/AttachmentProvider.java
faae6edc55d0c20b62257f4e78684a2d90428272 01-Oct-2009 Marc Blank <mblank@google.com> Fix problem in which email/phone #'s could get erased erroneously

* Fixes #2158960
* Needed to keep track of existing untyped phone/email data

Change-Id: I5e58f092a35253ee785521fad6a2be7f1d2f4d6b
ndroid/exchange/adapter/ContactsSyncAdapter.java
385014923990fab3ea8c7139fb2235efaae8f981 01-Oct-2009 Marc Blank <mblank@google.com> Throttle the refresh of the message list as it changes (fixes #2126515)

* Catch onContentChanged and throttle calls to cursor.requery()
* Use 2.5s for now. This seems to provide excellent responsiveness
with little apparent latency.
* Also fixes #2135882

Change-Id: I9cab6558c9cfeb1dbdb5fb250f4f04059db324f7
ndroid/email/activity/MessageList.java
ndroid/exchange/SyncManager.java
1e3ac08a3f7a043248d7c7ce70867f876170aa69 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Iee4f5e88 into eclair

* changes:
use Events for birthdays
eddebdf951a9ab687f1a2857802ecc952a88c895 01-Oct-2009 Fred Quintana <fredq@google.com> use Events for birthdays
ndroid/exchange/adapter/ContactsSyncAdapter.java
82d201b33a7e8766977750285d6c0606c8d487cc 01-Oct-2009 Evan Millar <emillar@google.com> FastTrack->QuickContact

Change-Id: I7fc4b053ef86c9bc8374167dc11b1c04934a77bb
ndroid/email/activity/MessageView.java
b93860b5e4ca4f7e194748895d075063849eed7d 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9f70f20b into eclair

* changes:
Fix problem that could prevent push from working
1660d17cbf37a3a4a7fd8b1cef4749122f148c26 01-Oct-2009 Marc Blank <mblank@google.com> Fix problem that could prevent push from working

* Could be related to issues seen by various testers

Change-Id: I9f70f20b3c52347b38468ca2b82ede7b46c39fa1
ndroid/exchange/SyncManager.java
f6f029b8e0171b5a6e1ddd2df24750cb7908681d 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I18fdf62f into eclair

* changes:
Fix mail sending for new message (#2158054)
2f222b4b86319f8f4515967b83d2c50812f8cde4 01-Oct-2009 Marc Blank <mblank@google.com> Fix mail sending for new message (#2158054)

Change-Id: I18fdf62f10ca350731446728b6095dabbc049bc1
ndroid/email/activity/MessageCompose.java
f9597e71d5a397dcede9728b3b3696d5260d5e75 01-Oct-2009 Andrew Stadler <stadler@android.com> Fix assets & colors for MessageList & MessageView

* change read/unread list bkgnds
* change read/unread list text params
* new checkbox
* new stars

Bugs:http://b/issue?id=2156331 & http://b/issue?id=2156332
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
6c1d3be245ca21bd683b02cdcd6d24076b01c344 01-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I9c697612 into eclair

* changes:
Use built-in rows for Birthday and OfficeLocation (fixes #2154423)
21563fad0908f257d984677dcfa41145582a0d4e 30-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ie6d16a89 into eclair

* changes:
Fix an issue related to ping loop errors and ping state; add logging
3fef6f4a47c0bf4874d901a9b0e95e14ff7fb33a 30-Sep-2009 Marc Blank <mblank@google.com> Fix an issue related to ping loop errors and ping state; add logging

Change-Id: Ie6d16a8914205ddf63ae1929961279f66360eb89
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
54e0a5f65c777147a1d90cd73d2ebeab2a67e417 30-Sep-2009 Andrew Stadler <stadler@android.com> Only auto-refresh when user opens mailbox

This prevents auto-refresh from triggering on non-explicit entry
to the mailbox (e.g. by resuming from another activity).

BUG: 2155843
ndroid/email/activity/MessageList.java
0b50eea451e8a09da859d730507fbe64a1b23551 30-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ib8ee27f0 into eclair

* changes:
Add "deselect all"
b8ee27f013766d6c89befa36bd265c6104ffb036 30-Sep-2009 Andrew Stadler <stadler@android.com> Add "deselect all"

* New menu items in MessageList
* Show/hide menu item if anything is checked
* Clear the selected items map, redraw listview, hide button panel

Bug # 2116257
ndroid/email/activity/MessageList.java
059b3e5ed55b025affab63e5bcfc23cf418fbbd6 30-Sep-2009 Marc Blank <mblank@google.com> Make sure intro text is saved/restored properly (fix #2155286)

Change-Id: I015783972e685472ea27cbdb854511e918d8f35e
ndroid/email/activity/MessageCompose.java
536f04d3fb0fc554b0c0b829fe719d7fc83cf8d6 30-Sep-2009 Mihai Preda <preda@google.com> MessageView: UI: change prev/next arrows, re-enable notification bar shadow.

Bug: 2149187.
ndroid/email/activity/MessageView.java
ba6cf35b4f43cd59fe98c4c32e1e83af6efa5107 30-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Ib17b43c7 into eclair

* changes:
MessageCompose: avoid saving Draft early, before the message was loaded.
62b5a51b8fc7d85f8b71d5d6db04986a6080eff7 30-Sep-2009 Andrew Stadler <stadler@android.com> Use FLAG_ACTIVITY_CLEAR_TOP for list activities

This prevents these activities from ever repeating on the task stack.

Helps http://b/issue?id=2149204 (and may even fix it)

Change-Id: Idf8255b703094a78a2df3e9f535b67fd65faef32
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
bedd617c89a9a63e7808af77f35b2c2101a1548c 29-Sep-2009 satok <satok@google.com> Fix the bug that combined Drafts folder is hidden when there are only read messages.

* Count all messages count in drafts folder
ndroid/email/activity/AccountFolderList.java
3786cab2aa1776e92fc67af3931a76cd8b848b48 29-Sep-2009 satok <satok@google.com> More refresh account and folder list

BUG: 2149171

* Change the string of combined inbox
* Change the string of combined starred folder
* Change the icon for combined inbox
* Change the icon for combined starred folder
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageList.java
e4a7cc440f081ef9c4375a2bd2f82680cc11b152 30-Sep-2009 Andrew Stadler <stadler@android.com> Re-enable modernized version of "optional" SSL/TLS

* Add "Accept all certificates" modes to incoming/outgoing secure choices
* Change URI scheme slightly to make "trust" a flag, not part of the
protocol.
* Change Stores to know about new URI scheme
* Slightly rework Transport API to make "trust" an independent flag
* Adapt HostAuth to handle new Uri scheme
* Remove the old ambiguous "optional" code, which was allowing
some unsigned certificates, but was *also* allowing TLS to
optionally start (though not SSL, despite the UI strings.)
* Add a few unit tests to EmailContent
* Add logging and a bunch of comments to TrustManagerFactory, and a bit
of simple cleanup to make it more readable.
* Add missing conversion of SSLException->CertificateValidationException
in TLS so we get the correct certificate errors from TLS too.
* Re-enable TLS for mac.com accounts (which had a certificate problem)

Fixes bug http://b/2119755, http://b/1374780, and probably a raft of
earlier and/or external bugs about certificate problems.

Change-Id: Iaf99a8da3eaadaa4cdeec224737838b5d6813e55
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/provider/EmailContent.java
1d0e9e6fb9f5d7a6d447f9057577214ed150680a 29-Sep-2009 Marc Blank <mblank@google.com> Use built-in rows for Birthday and OfficeLocation (fixes #2154423)

Change-Id: I9c6976121c662b5071fb7c86e70ab91d3ae47e53
ndroid/exchange/adapter/ContactsSyncAdapter.java
0797b4e35189c47574476773c126178a493bfada 29-Sep-2009 Marc Blank <mblank@google.com> Near-final tweaks to sync timeouts and logging

* Tighten up user logging
* Send all HttpClient commands w/ watchdog to prevent
holding wakelocks too long
* Fix case in which no ping boxes are ready in which
ping loop would hang on to WakeLock indefinitely
* Release WakeLock for waits < 10 seconds, rather than
30s in SyncManager
* Improve logging of IOExceptions
* Log network status (at least until #2150976 is fixed)

Change-Id: I020b8a21c2c4f536d5b6df871f6b5c03fdc66ab8
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
2ab30ce247151c3400b870e7b93310e130c91e4f 29-Sep-2009 Mihai Preda <preda@google.com> MessageCompose: avoid saving Draft early, before the message was loaded.

And correctly set mDraftNeedsSaving when started through external intent.

Bug: 2149148, 2152044.
ndroid/email/activity/MessageCompose.java
2dd894df2fee388addcf23ea4c63c2a95b984890 29-Sep-2009 Mihai Preda <preda@google.com> MessageCompose: fix unit tests that were broken by CL 27435.

Bug 2150598.
ndroid/email/activity/MessageCompose.java
b0b61fa2e4b9e884e745115697f7f4f081272f08 29-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I74466dcc into eclair

* changes:
Update unread counts and default sender Id in AccountFolderList after folder loding messages
3b95f691ee7b0d2e78a65a641b9597e29466290b 29-Sep-2009 Marc Blank <mblank@google.com> Handle upload of Phone.TYPE_ASSISTANT (fixes #2127721)

Change-Id: Ic59931b9d8643c599c43a164da4b4cfcc36f98c2
ndroid/exchange/adapter/ContactsSyncAdapter.java
a4258ed4877a0d559c7f600be9a326135aed4440 29-Sep-2009 Marc Blank <mblank@google.com> Fix sendPing to set proper ping timeouts

* We were setting the timeout and heartbeat to the same time,
which could cause mistaken timeouts
* Set timeout ten seconds after the heartbeat for now, and set
an alarm a few seconds after that

Change-Id: Ic2f7b44c9626ebbdd7a8821f53f7aaf6169f62c3
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
473a5e5c6692bf9c538e4d4b0f746306dd9dc2f2 28-Sep-2009 satok <satok@google.com> Update unread counts and default sender Id in AccountFolderList after folder loding messages

BUG: 2072360
ndroid/email/activity/AccountFolderList.java
62cf0a3336875752b1a180f55ed19f1f6fb3ee68 29-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Id6da4520 into eclair

* changes:
Remove a bit of logging in ContactsSyncAdapter
4833cd686fd6fed0d22bf6d5ed2b2b2ae8968c47 29-Sep-2009 Marc Blank <mblank@google.com> Remove a bit of logging in ContactsSyncAdapter

Change-Id: Id6da45202f0fa0970571a624a89546e90d1bee2c
ndroid/exchange/adapter/ContactsSyncAdapter.java
0d4681cd6606015fd242f148ec213a3256a81ec7 29-Sep-2009 Andrew Stadler <stadler@android.com> Catch possible NPE in IMAP sync.

I don't know the root cause of the null pointer (possibly a broken
connection earlier in the sync) but we shouldn't be crashing here.

Fixes http://b/2135743
ndroid/email/mail/store/ImapStore.java
aff9926d84a2ae3b669d8acb1cb2f80e3b37b33f 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I56e23586 into eclair

* changes:
Reduce the sync window from 20 items to 5 (partial fix #2149029)
f60bf5f351c76214ce57b4220ae57da7c346941e 28-Sep-2009 Marc Blank <mblank@google.com> Reduce the sync window from 20 items to 5 (partial fix #2149029)

* This change trades off network time / overhead with time keeping
ContactsProvider2 busy
* The net effect will probably be to reduce some UI slowdowns while
syncing Exchange contacts, while increasing the time it takes to
sync those contacts

Change-Id: I56e2358698aa4c901cda4559f7a8f9117681f627
ndroid/exchange/EasSyncService.java
deffba584e9a66ca3dca3c897728fd1b8c66b368 28-Sep-2009 Andrew Stadler <stadler@android.com> Stop forcing email logging for all users

* Don't force Email.Debug == true
* Also, remove some unneeded development logging from MailService
ndroid/email/service/MailService.java
832e4a02a670b565a377938b3138e73421d59388 27-Sep-2009 Marc Blank <mblank@google.com> Add hostChanged service call; use it from UI (fixes #2148572)

* After a HostAuth has been changed for an EAS account, the SyncManager needs
to be alerted so that it can take appropriate action
* Added hostChanged service call
* Send service call from AccountSetupExchange after a HostAuth is edited
* Stop running syncs and clear error states in hostChanged

Change-Id: I2311e2d00be81ea7829f5f4e38b2377f18c63f30
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/SyncManager.java
695fdb1cbbe2da817b5b70a00568a0a905e139f0 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27443 into eclair

* changes:
MessageView: check for null mMessageContentView on access.
02fcd3b4e7ad526d1be1f7a62d7dfbefc50727ba 28-Sep-2009 Mihai Preda <preda@google.com> MessageCompose: fix loading the quoted text after a configuration change.

Bug 2136283.

Because of the mSourceMessageProcessed guard, the loading after a config change
was done exclusively by the default view hierarchy save/restore.

But this default view restore does not handle WebView content,
thus affecting the quoted text.
ndroid/email/activity/MessageCompose.java
7768ce276ede4ee979df28ee514ddca79bdb90ab 25-Sep-2009 Mihai Preda <preda@google.com> MessageCompose: delete the attachments that are removed in the UI.

Bug 2139949.
ndroid/email/Controller.java
ndroid/email/activity/MessageCompose.java
ce3bb9abccf02f047b1d11083584d5ab04ad6341 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27407 into eclair

* changes:
Per spec, allow all attachments to be added via INTENT.
7f025a15c4e80816ed68cd0af03ea67efd2f8e61 28-Sep-2009 Mihai Preda <preda@google.com> MessageView: check for null mMessageContentView on access.

Bug 2148358.

It seems that AsyncTask.onPostExecute() can be invoked even after the task
was cancelled, and after Activity.onDestroy().
ndroid/email/activity/MessageView.java
4c8f06283ff1ecdb197d4e446588928333e77a81 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27393 into eclair

* changes:
Don't send local changes of Drafts/Outbox to server (fixes #2149122)
c91b1489e5ca2d259fe74ef957dacb62b2d689c8 28-Sep-2009 Marc Blank <mblank@google.com> Don't send local changes of Drafts/Outbox to server (fixes #2149122)

* Also, check that there's a valid serverId before doing any updates
to a message

Change-Id: I5cbfafcc20949b8a33ba08a12ea726168742205b
ndroid/exchange/adapter/EmailSyncAdapter.java
92a1ff9b770c3aec6c4a56df5f8d13c5cf4edc87 28-Sep-2009 Andrew Stadler <stadler@android.com> Per spec, allow all attachments to be added via INTENT.

* Change manifest intent-filter to */*
* Split incoming whitelist into send_ui and send_intent versions

Bugs: 2097457 (general) & 2138790 (.vcf)

Change-Id: Id4a2bb3a75808811578c643a7b841de9491efce4
ndroid/email/Email.java
ndroid/email/activity/MessageCompose.java
c05a48591eaac1d751696e962f4111743bc848f5 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27394 into eclair

* changes:
Fix race condition NPE in medium tests (#2148940)
e0aefba5febf00d0c0f606920dd526989ed57e27 28-Sep-2009 Marc Blank <mblank@google.com> Fix race condition NPE in medium tests (#2148940)

Change-Id: I53a5fcb7eb4889da2cefa0fdc9092e44e57a2741
ndroid/exchange/SyncManager.java
fff989df752fb3843a4fff3bae0fb5b07e3d6a1a 28-Sep-2009 Dmitri Plotnikov <dplotnikov@google.com> Renaming Presence and Presence-related columns.

Change-Id: Icba02cdb905ae3514ec16bea097167e09bc18a63
ndroid/email/activity/MessageView.java
e6a8d98e9e038f17d528d45ce2779c65fe46630b 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27350 into eclair

* changes:
Make checkbox and star more easily selected
9d249df5b8875175cb56f84a33371370944eacc7 28-Sep-2009 Andrew Stadler <stadler@android.com> Add WebViewClient to specialize link-click behaviors.

* If external, set FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
* If mailto: always open the composer

Fixes bugs 1631784 and 2122326
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
2c6e2f72b191a45b5beb54329498b054b1421804 28-Sep-2009 Andrew Stadler <stadler@android.com> Make checkbox and star more easily selected

Fixes bug # 2149033
ndroid/email/activity/MessageListItem.java
386153695bf3207ff160dc33a1112f7ea6dbd721 28-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27308 into eclair

* changes:
Watch for null results when updating internaldate.
ba64cbcaf81b8ce1dcb5981f973c36c83d0f33cf 27-Sep-2009 Andrew Stadler <stadler@android.com> Watch for null results when updating internaldate.

Fixes bug # 2148971

Note, this condition happens when we APPEND a message to the server
but then we turn around and query for it, and the server reports that
it's not there:

>>> 7 APPEND "Sent" {490}
<<< #null# [Ready, for, argument]
<<< #null# [194, EXISTS]
<<< #7# [OK, [APPENDUID, 1233339552, 1191], APPEND, completed]
>>> 8 UID SEARCH (HEADER MESSAGE-ID \
<pwyc0i5yviwvu5nwio2lwdo5.1254073239445@email.android.com>)
<<< #null# [SEARCH]
<<< #8# [OK, UID, SEARCH, completed]
>>> 9 UID SEARCH UID NULL
<<< #9# [BAD, UID, SEARCH, error;, bogus, or, incorrect, syntax, \
of, search, critera]

I don't know why the Yahoo! server did this, but now we'll at least not
crash if they do it again.
ndroid/email/MessagingController.java
a4cc0006f10156426cbfb9045dc4584eda104fdd 27-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27286 into eclair

* changes:
Don't send DisplayName to CP2 from Exchange contacts sync
3c7c3c0529130bf758a2518a7f363b4a90516546 27-Sep-2009 Marc Blank <mblank@google.com> Don't send DisplayName to CP2 from Exchange contacts sync

* Should fix #2141888

Change-Id: I31d769fd23de4ec7e2d06f108afd8642700a8500
ndroid/exchange/adapter/ContactsSyncAdapter.java
e4405a714ddbdc659336edbb530bf77d3b212a7f 27-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27165 into eclair

* changes:
Messages upsynced to "sent" should be marked as "read".
c6aaeb99424862cf5ae249e5c6a5a1c8ce7cd24c 27-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27229 into eclair

* changes:
Fix NPE issue in empty MessageList (fixes #2147432)
8aed46b4d804b09983d44fce46a842ffa95d3e63 27-Sep-2009 Marc Blank <mblank@google.com> Fix race condition in SyncManager (#2137804)

Change-Id: I1165084a5868f340adb51d0d953092fac68d1f64
ndroid/exchange/SyncManager.java
c6a392937e755aba1593d45cea285f43c8edba3c 26-Sep-2009 Marc Blank <mblank@google.com> Fix NPE issue in empty MessageList (fixes #2147432)

Change-Id: Idea4e4193e95686411f8e8257d729fcfc14d50b5
ndroid/email/activity/MessageList.java
b422bda4d65c2a504ecb588e57ace450aa9c5e80 26-Sep-2009 Andrew Stadler <stadler@android.com> Messages upsynced to "sent" should be marked as "read".

Part of cleanup of bug 2097471 but also addresses old bug 1362964.
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/store/ImapStore.java
c41c47fa07a22f8a7612fb0191f152a36d95b7a5 25-Sep-2009 Andrew Stadler <stadler@android.com> Enable message upload

* Create logic to detect upsyncable messages in Sent
* Note: Drafts is now local only for IMAP - no sync, either way
* Rewrite MessageController.processPendingAppend for Provider world
* Write provider message -> legacy message converter
* Fixed bug in IMAP APPEND (it was not picking the right UID for the
uploaded message.)
* Better handling of server internaldate
* Add constants for new X-Android-Body-Quoted-Part header
* Add EmailContent routines to get each of the 5 parts of the body
* Remove "Load more" from unsynced message lists
* Add toString to MimeHeader for debug support

Bug # 2097471

TODO (next CL): Upload attachments records too

Change-Id: I209182f5adc6b6696919f559e3cbbdd58b3eed3a
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/mail/Folder.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/provider/EmailContent.java
1086473056eaaa8f473af632fb6d701c8376e132 25-Sep-2009 Mihai Preda <preda@google.com> MessageView: fix prev/next navigation in compound mailboxes.

Bug 2132262.

Change-Id: Ic3b8d9ccedc6101abb90dcac3545f87cbf233659
ndroid/email/activity/MessageList.java
c946f878399b1a54d35458095ad5d6e6f4110e68 25-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26815 into eclair

* changes:
UI refresh and add default sender indicator
10a4908369c5dfd8db22e969fc00ce0ec695a065 25-Sep-2009 Marc Blank <mblank@google.com> Remove "Refresh" from bottom of EAS message lists

* It's confusing and inappropriate

Change-Id: I4633d34ad022ab7970384f14182dbf3c9aa4207f
ndroid/email/activity/MessageList.java
a4e604a9bb81ce8513b36e3f51d34ed7017438d0 24-Sep-2009 satok <satok@google.com> UI refresh and add default sender indicator

BUG: 1904417

* Fix the color of Read/Unread
* Add default sender indicator
ndroid/email/activity/AccountFolderList.java
d32d78634c776fa12afb7478fdc7e67140f2167e 25-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26812 into eclair

* changes:
Remember the list positions in MessageListView for onResume
bce49bb3f56177eb61526426336fd0100ca34687 25-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27048 into eclair

* changes:
Harden a few calls in Controller
e06706987aebd1d15b4bfbb1cf46caaf85e190cb 25-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 27056 into eclair

* changes:
Add check in SyncManager before stopping thread (fixes #2131380)
484e137691a0fb33511a5815304ac3a5c0c8238b 25-Sep-2009 Marc Blank <mblank@google.com> Add check in SyncManager before stopping thread (fixes #2131380)

Change-Id: I0f0dcc9721094ed29fd241b8a71e30ee0717cdfb
ndroid/exchange/SyncManager.java
0d6e69ce8ac7e5d2ec508ec3223e9ed7c1174c8b 25-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26913 into eclair

* changes:
Don't drop local mailboxes if we created them.
e959645070c9bfa5b5169e0b9e8472606d2246a9 25-Sep-2009 Andrew Stadler <stadler@android.com> Don't drop local mailboxes if we created them.

Reimplement a dropped snippet from the original MessagingController
that preserved locally-created special mailboxes (drafts, sent, etc.)
instead of dropping them when they were not found on the server.

Bug # 2078209
ndroid/email/MessagingController.java
e892f6f978c18d1d43f94681f4d73f36d5f8a2cd 25-Sep-2009 Marc Blank <mblank@google.com> Harden a few calls in Controller

* Check for null account (situation in which the Account has been
deleted)

Change-Id: Iabd949c32443c7496a249ac5b7cdca22fc920a18
ndroid/email/Controller.java
af30d6cfacf0947d98ef1c9da2c5b5e06f7fc8f6 25-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26964 into eclair

* changes:
Run sync threads in background priority (helps with #2126515)
58a28fdceb67a146a57de993ab81424d8536a61e 24-Sep-2009 satok <satok@google.com> Remember the list positions in MessageListView for onResume

BUG: 2131474
ndroid/email/activity/MessageList.java
1033fe606cfe7fa9f75b7c7f13868ec7df2ad993 24-Sep-2009 Mihai Preda <preda@google.com> MessageCompose: correctly handle saving Draft in relation to restarting the activity on configuration change.

Avoids saving multiple drafts when opening/closing the keyboard.
Bug 2133003.
ndroid/email/activity/MessageCompose.java
7822aec3831bd67dd1d47033d387328224d4350b 25-Sep-2009 Marc Blank <mblank@google.com> Run sync threads in background priority (helps with #2126515)

* Seems to improve UI responsiveness while doing large syncs,
but it can still slow down quite a bit

Change-Id: I539b8a9a96a922d810fba02ff4093759489a8153
ndroid/exchange/EasSyncService.java
7a59191bf1089ec2b89128406637c2094077cbce 23-Sep-2009 Mihai Preda <preda@google.com> Fix loading the quoted text when editing draft.

Bug 2140036.

Only load the reply fields for an edit-draft situation.

Change-Id: I851e3851ab595a0a2e6829a3bf3845ae576f1ba7
ndroid/exchange/adapter/EmailSyncAdapter.java
e1145d173971ebe741e42e9caa209ef2f7bbefa4 24-Sep-2009 Marc Blank <mblank@google.com> In EAS flow mode, don't try to use auto-setup (fixes #2143583)

Change-Id: I53a287d909fdde3c6ab75087a4a049c3afe9852c
ndroid/email/activity/setup/AccountSetupBasics.java
d66b465776261b3313c4b3bb3ef7c3954ebb08e4 23-Sep-2009 Mihai Preda <preda@google.com> Fix loading the quoted text when editing draft.

Bug 2140036.

Only load the reply fields for an edit-draft situation.
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailContent.java
0dbc15e6f15a01fdb2bd4f5263c06369299ec361 22-Sep-2009 Mihai Preda <preda@google.com> Email: catch RuntimeException when loading message with huge body from DB.

Bug: 2133062.
ndroid/email/activity/MessageCompose.java
b19bc4c0b6b96516870665cf0d4e5b45638c16f4 24-Sep-2009 Marc Blank <mblank@google.com> Save HostAuth's when returning from editing Incoming/Outgoing settings

* in onActivityResult, we not only need to update the Account, but also
the relevant HostAuth (both if coming from AccountSetupExchange)

Change-Id: I0657ff257fe949e46e100eb3e6cfec6162514aa9
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
cf19af4c742a03685a6e352b940f2b4c60457395 24-Sep-2009 Marc Blank <mblank@google.com> Add more ping logging to detect odd looping behavior in Moto log

Change-Id: I66f9789cf9ded590ec96b502c2f74f5d0ae5d17d
ndroid/exchange/EasSyncService.java
5fed93408390ba154f0c9d493e259caaa7a3c124 24-Sep-2009 Marc Blank <mblank@google.com> Make sure we call setServicesEnabled in the BootReceiver

* Otherwise, there's a chance that various activities will be
disabled (like MessageCompose), even if there are existing
accounts.
* Enable BootReceiver by default

Change-Id: Id4669c41a846545d8bac5ad85736e1508074864a
ndroid/email/Email.java
ndroid/email/service/BootReceiver.java
3e1c871f049f13e433e8e5c4dd8ad789dd93c6c8 23-Sep-2009 Marc Blank <mblank@google.com> Fix EAS sending, which was inadvertently broken by a change in EmailProvider

* syncServerId in the Message table can now be NULL; this broke a test
used by EasOutboxService and SyncManager to determine whether there
were sendable messages in the Outbox
* Changed test to allow for NULL in syncServerId

Change-Id: Id76c7a45bc306abe7a927ab2395700f54a01a298
ndroid/exchange/EasOutboxService.java
f4a045a58fdb1a0492a0009118ac320835a01985 23-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25957 into eclair

* changes:
Always show combined inbox
fea3de19bfca91d1b0766ff26335f91f5863f01d 20-Sep-2009 satok <satok@google.com> Always show combined inbox

BUG: 2129902
ndroid/email/activity/AccountFolderList.java
5fc57eccefeba517fe5e6f093786f37c6c4d50e6 23-Sep-2009 Marc Blank <mblank@google.com> Fix reply/forward for both SMTP and EAS; fixes #2138725

* Add new introText column in the Body database
* Reply/Forward put the appropriate String into this new column
* Rfc822Output uses this when required when streaming the message

Change-Id: I34602fdb3f91692c46fc8bc31ba0e6f680d445a0
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
0d00889f83fc8c1d69039a2c849b630fb4dd28dd 23-Sep-2009 Andrew Stadler <stadler@android.com> Cleanup Provider Message in preparation for upload

* Remove mServerIntId and its special logic
* Add mServerTimeStamp
* Add column dynamically so we don't lose accounts

Bug # 2097471
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
39ec429862545b622e166bb0d0a5cf0c1e0e019e 22-Sep-2009 Marc Blank <mblank@google.com> Have SyncManager.ping check that the service is properly started

* If not, it will start the service
* This will catch cases in which the Email process has been killed
while alarms are set (this would be the vast majority of the time)
* Will look into ways of catching any remaining cases...
* Fixes #2131432

Change-Id: Id71e68d14b5d1b0402c866db49a07c7b1adf499d
ndroid/exchange/SyncManager.java
4cf3252fb07623fe4985aaf3bf63360099320a41 22-Sep-2009 Marc Blank <mblank@google.com> Workaround system peculiarity to fix #2134509

* Our AccountManager listener was getting unregistered due to the way
ApplicationContext caches AccountManager in a static member
* The result was that AccountManager registers its listeners against the
FIRST context it is instantiated with! Future calls will all obtain
this pre-initialized AccountManager.
* In this case, AccountSetupOptions was the first caller (to create the
AccountManager Account for Exchange)
* The subsequent call to register a listener therefore had its registration
tied to the context of AccountSetupOptions, and was therefore leaked
when AccountSetupOptions finished!
* This caused a chain of problems - the leaked receiver, an Exception in
AccountManager when trying to ping the listener in an expired context,
and eventually the bug referenced above, which became a P1 issue

Change-Id: I478e28d21ca77419afa8011e4ed8101cdf67ab79
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/exchange/SyncManager.java
b2f71dac39730afa349459c399811bcadaf05f7b 22-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26262 into eclair

* changes:
Only handle mailbox alarms for EAS mailboxes
ac028f3ccaef4509067862a2ccef9170801113de 22-Sep-2009 Marc Blank <mblank@google.com> Only handle mailbox alarms for EAS mailboxes

* Fixes #2135238 in which a change to a POP/IMAP mailbox
ended up causing a sync of that box as an EAS mailbox
* The fix is to check that mailboxes with changes actually
belong to an EAS account before trying to sync them

Change-Id: I832095ce61665813cbcfb2aa58e45a48db8a34e7
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/SyncManager.java
fa52e6c95674aef6461a5cfc670a052e1c5b7f2f 21-Sep-2009 Andrew Stadler <stadler@android.com> Clean out old mailbox names logic and fix a couple of bugs.

* Get rid of old Account.getxxxFolderName() calls.
* Clean up any call sites to them
* Properly rename the existing special folder name identifiers
* Use a hash table in MessagingController to improve identification
of special folders for IMAP accounts
* Fix a bug in Controller, which was creating new server-side folders
using localized names.
* Fix a bunch of code in Controller that was using mContext, instead of
using mProviderContext to support testability.
* Fix broken unit tests in ControllerProviderOpsTests

Fixes bug 1904373
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/Utility.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/provider/EmailContent.java
ad4ec0590d3d38c9cca621eb12569b6b6766be02 21-Sep-2009 Andrew Stadler <stadler@android.com> Fix broken MessageView tests

I'm surprised these were working at all.
ndroid/email/activity/MessageView.java
f20fa620d2cd0a871d5b02c113d59bc181c88619 21-Sep-2009 Marc Blank <mblank@google.com> On service calls to startSync, make sure SyncManager is running

* Check that SyncManager's thread is running when called for startSync;
if not, start the service via Intent
* Mostly fixes #2133115 (although there are possibly other cases for
SyncManager not running, this will cause any manual "Refresh" to start
it up.)
* Added large comment at onCreate to explain how all this works

Change-Id: Ib43211ddb36e2f79ee5b1f6973f8bc2bc499024c
ndroid/exchange/SyncManager.java
06261b704e210b9f560fbef71142c0071dff1acd 21-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26062 into eclair

* changes:
make EAS set CALLER_IS_SYNCADAPTER for writes
7b79163aac1542577304d60fa76de6feb6be48c7 21-Sep-2009 Marc Blank <mblank@google.com> Show "sync contacts" setting properly in the settings page

Change-Id: I9c198e7795a8f2ea348361092eae22c8ff22a1a0
ndroid/email/activity/setup/AccountSettings.java
c06b6290c720ab65b0b38eddc522cc8f4f78cfca 21-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26118 into eclair

* changes:
Clean up recent submission per stadler
2b4b5e2f26b2fc9e0875a2a1974d8010794f3642 21-Sep-2009 Marc Blank <mblank@google.com> Clean up recent submission per stadler

Change-Id: I9fdaf3ccefe7eab41ad853e120af36b78a30ce7b
ndroid/email/mail/transport/Rfc822Output.java
1d4d1b8d9032b7a4bab3bf3368d582392aea9dc3 21-Sep-2009 Marc Blank <mblank@google.com> Make sure we don't start account sync without push/ping active

* Wait for mailboxes to finish the initial sync while waiting in pingLoop

Change-Id: Ie1606e225261e071981cef0aab3bd623a360fc86
ndroid/exchange/EasSyncService.java
c190de8369478ccfb155afed89348a8d5a9c6ebc 21-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26015 into eclair

* changes:
Handle issues in SmartReply/SmartForward
8067b54294356f375521ba3d1e7db3df117b65a4 21-Sep-2009 Andrew Stadler <stadler@android.com> UI cleanups for new account creation

* Improve appearance of basics screen and use simplified text
* Provide alternate text when in EAS account setup flow (from acct mgr)
* Change "Exchange/ActiveSync" button to "Exchange account"
* Add some spacing to the three buttons, to improve appearance

Bugs addressed:
2128055 Change string in account picker activity to Exchange
2132713 Welcome message for Email app is inappropriate when coming from
Settings -> Accounts & sync -> New account
ndroid/email/activity/setup/AccountSetupBasics.java
db08876316572837093dd41daa4ecc93a35b1f77 21-Sep-2009 Fred Quintana <fredq@google.com> make EAS set CALLER_IS_SYNCADAPTER for writes
ndroid/exchange/adapter/ContactsSyncAdapter.java
2f99314326de0ee3bab9fbf18d511b24c0574ee1 20-Sep-2009 Marc Blank <mblank@google.com> Handle issues in SmartReply/SmartForward

* SmartReply doesn't put in header information related to the original, which
looks like a bug in EAS, so we add our own (as we do for SMTP)
* SmartForward works properly, but doesn't put any CRLF between the new text
and the original; we fix that by adding one after the original text.
* Addresses #2132658

Change-Id: I48efec0d02598a8e9ce2a54b4c66464e8e62e5d6
ndroid/email/mail/transport/Rfc822Output.java
cc15a77b289e3c840d0ed49213d7a62dfe2ee25a 21-Sep-2009 Marc Blank <mblank@google.com> Replace commented out call to actionNotifyNewMessages

* Fixes #2132978

Change-Id: Ia7d50c6eb890a5f4938ac2d567183b25e0b923bd
ndroid/exchange/adapter/EmailSyncAdapter.java
7041dc5d1b4e231c7ee51a76b0dd02f5525ac51d 20-Sep-2009 Marc Blank <mblank@google.com> Reconnect Settings -> Accounts to Email account settings screen

* This was broken during the AccountManager naming reversion

Change-Id: Ib2ccc9ca187ffdaf4a978c3c8111808be50d1583
ndroid/email/activity/setup/AccountSettings.java
a740e2935746254b836051069813489cb38be666 20-Sep-2009 Marc Blank <mblank@google.com> Fix bugs related to orientation change in MessageCompose

* Save reference to LoadMessageTask and cancel it in onDestroy
* Check whether we've already processed the source message
before calling processSourceMessage
* Fixes #2097361 (Duplicate addresses in reply/reply all)
* Fixes NPE (not in Buganizer) related to fast orientation changes
due to duplicated background task

Change-Id: Ib8115e29c9d88db1be009df4f549f925db8a1c19
ndroid/email/activity/MessageCompose.java
8d5004a6eb28844c9d86a5e97a947043b693eee6 20-Sep-2009 Andrew Stadler <stadler@android.com> Modernize the code to load message and body from DB.

* Don't use unneeded managed cursors
* Put more of the DB work in async
* Don't try to load HTML and plaintext simultaneously
* Explicitly catch & handle exceptions during db ops

Bug # 2087051 (see also bug # 2122960 re unexpected db exceptions)

Change-Id: I446086bc4f3a85b2e766b12d1f7271e61e3ae8d5
ndroid/email/activity/MessageView.java
8587aa61211d288d05b5fb2ddf02d69cabe6a9e2 19-Sep-2009 Marc Blank <mblank@google.com> Make EmailProvider more threadsafe w/r/t transactions

* Since transactions can be nested, get rid of pointless/dangerous
flag for indicating we're in a transaction.
* Fixes #2131847

Change-Id: I2955e8a7659533e8ee9e71b949a042570466df45
ndroid/email/provider/EmailProvider.java
9d43de5d1206eb54c4486cefec44a7bbd810bada 20-Sep-2009 Marc Blank <mblank@google.com> Remove parser logging from standard SD logging

* Change description for one of the logging labels to reflect
what it actually does

Change-Id: Ib07b7330a20af5b099b42ae3733b71641c4bddd9
ndroid/exchange/Eas.java
726d22b96280f376f52367304a53f5ac1d4e60f3 20-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25895 into eclair

* changes:
Fix service behavior w/r/t onStartCommand, onCreate, onDestroy
02df29b647ae77f0ff283ab9ace737b077db3509 19-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25903 into eclair

* changes:
Fix bug that caused Cc field to be displayed when empty.
a4482e865dd3b219be672898df13dbbf1f4ae48d 19-Sep-2009 Marc Blank <mblank@google.com> Fix service behavior w/r/t onStartCommand, onCreate, onDestroy

* Make sure to null out vars in onDestroy
* Use START_STICKY as return value for onStartCommand
* Start SyncManager from EasAuthenticator callback, rather from the
authenticator itself (otherwise, the Account might not have been
created when we start SyncManager)

Change-Id: I54ff8d5586e96f016b365587717710dee3202da8
ndroid/email/activity/MessageList.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EmailSyncAdapter.java
24bbde37478bb717d72a13e880359d1ab28216a8 19-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25897 into eclair

* changes:
Revert change to AccountManager naming; use email address again
b4626d151c1b63a48f7a2fea104fbdb62abcbcee 19-Sep-2009 Andrew Stadler <stadler@android.com> Fix bug that caused Cc field to be displayed when empty.

The IMAP & POP messages are being stored with cc="" instead of null,
which is taken care of by testing the output of toFriendly() instead
of the raw field from the DB.

Change-Id: I9460e7ae098ac5cd0ccd527381ffd4e6d9defae4
ndroid/email/activity/MessageView.java
657de3bfd6024811c6d6ef6fb2fb2c2750d9f54a 19-Sep-2009 Marc Blank <mblank@google.com> Revert change to AccountManager naming; use email address again

* Forces wipe of existing accounts

Change-Id: I65d08e07a2d74f94f9142e85791d9bf49c100241
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
9312faea437854f075df57b9ec23a5d57cb8db0c 19-Sep-2009 Andrew Stadler <stadler@android.com> Restore lost connection error UI

We lost the reporting of connection errors in the UI. These were
originally displayed in FolderMessageList, under the name of each folder.

In the new implementation, we borrow the "undo" banner from Gmail and
display it whenever there is a connection error in a mailbox.

* Add banner, and code to animate it on/off the top of the list.
* Toggle banner whenever a connection state change occurs in MessageList
* Toggle banner whenever a connection state change occurs in MailboxList
* Slight change to callback semantics for sendMailCallback
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
cd1e2072008da7467c852d6043fb9f69ff5bc42b 19-Sep-2009 Andrew Stadler <stadler@android.com> Fix NPE when entering account settings.
ndroid/email/activity/setup/AccountSettings.java
91f12b8d520fbdcd26e6cf80fed26ce73d9ad782 18-Sep-2009 Marc Blank <mblank@google.com> Fix problem with account settings not being saved (#2131153)

Change-Id: I6845604c6f3326e136060cace55fc53fcca867c9
ndroid/email/activity/setup/AccountSettings.java
eadb55b04eae126fdef442bae6d72c804df735d0 18-Sep-2009 Marc Blank <mblank@google.com> Implement hooks from Settings->Accounts to Exchange account setu

* Fixes #2106718
* Fixes #2106733
* Remove "Add another account" from the preference screen

Change-Id: I8db1400d2bdb6ed7d3aeb2049cc1a399c47c38c5
ndroid/email/activity/setup/AccountSettings.java
a96c941d9ffa69897ff68a6298b69a2805b81d64 18-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25721 into eclair

* changes:
Clean up transport encryption & port options
68b620cca0097e2fbde9498bd76129d081c5c9b2 18-Sep-2009 Jeff Sharkey <jsharkey@android.com> Switch Email to new FastTrack API.

As part of http://b/2087222 we have a new API specifically
for launching FastTrack. This allows SHOW_OR_CREATE to be
returned to its original behavior.

I've tested this change and confirmed that it's WAI, and
may have also fixed up some deprecated references.
ndroid/email/activity/MessageView.java
8b91975fa5237652ba93a6deb721d2115e2e1262 18-Sep-2009 Andrew Stadler <stadler@android.com> Clean up transport encryption & port options

* Remove SSL-Optional and TLS-Optional choices from UI
* Remove SSL-Optional and TLS-Optional choices from providers.xml
* Switch over most SMTP connections from 25 to 587
* Clean up the providers list which has a lot of "optional" cases
that were probably falling back to unencrypted.

Fixes bugs:
2110243 Settings UI shouldn't offer SSL/TLS (if available) options
2089070 Update list of providers

Change-Id: I57be57b349eed33a5284121d904528279a36a91c
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
27bc39399e47e8f14cbb42834990546eb93851de 18-Sep-2009 Andrew Stadler <stadler@android.com> Turn off debugging code that was accidentally left on.

This goes with Change I52e53c4b.

Change-Id: Ife5672af1c0c5cf2b2c279a9a912beb26c64390d
ndroid/email/service/MailService.java
a6888d7448f27b39cb66a26efedf38b06ff9adae 18-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25459 into eclair

* changes:
Fix sort order of MailboxList
925be3bf76a943375947be8565800c24e4d27a6c 18-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25462 into eclair

* changes:
UI Refuresh of account folder list
15206a12e818dd1eeb4c5add851092b8a3e902a3 17-Sep-2009 satok <satok@google.com> UI Refuresh of account folder list

BUG: 1904417

* Extend chip
* Add separator between a folder button and account name
ndroid/email/activity/AccountFolderList.java
fcdebb69a5f7790c377e11e913536977cff19471 18-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25677 into eclair

* changes:
Revert very bad commit (strange merge problem)?
4a72c2e72642a6695731b90d7a592e75ff6eec5f 18-Sep-2009 Marc Blank <mblank@google.com> Revert very bad commit (strange merge problem)?

* This reverts commit 3f224e7efe1cf8a816c6de4f5dd5eaf8a5f00d1b.
* Use StructuredName.DISPLAY_NAME for Email display name on upload

Change-Id: Ic11713773d0e5b0db452dce3c9c31680ca45dbf5
ndroid/exchange/adapter/ContactsSyncAdapter.java
01f61ef912879c12665d2073917626cb3ee7df0a 18-Sep-2009 Andrew Stadler <stadler@android.com> Fix acct settings -> inbox checks -> notifications

This cleans up a number of bugs that could be generically described as
"MailService and Notifications not being updated when accounts or account
settings are changed."

This also fixes a number of race conditions, one of which was causing
accounts to be refreshed in a nearly-endless loop, and another which
could cause an endless loop of alarms to be posted & fired..

Specific changes:
* Update/reschedule any time an account is edited (this was accidentally
broken and being handled on EAS only.)
* Make sure we reschedule if an account becomes unavailable
* Clear notifications whenever refreshing accounts
* Reload local copy of account settings whenever refreshing accounts
* When restoring prev sync times (this happens when process is killed),
be sure to also recalculate next sync times.
* Set flags on the pending intents to make sure old pending intents are
not being reused.
* Set a watchdog each time we check the mail, so if we are killed during
the mail check, we will be woken up again to retry.
* Fix a 2nd race condition in which a just-created account fails to sync,
due to not (yet) having an inbox.
* Clean up handling of Controller callback:
* Fix a minor bug in which refresh of non-inbox mailboxes would delay
the next timed sync of the inbox for that account.
* If the checkmail ended in an error (result != null) the service was
never rescheduled.

Bugs Fixed:
bug 2078149 - Update service and notifications when account settings
change or accounts are added/deleted.
bug 2084412 - Fix race condition caused by first intent being refired
bug 2071484 - Make sure we wake up later if killed during mail check

Change-Id: I3ee0d1b389c652351de5eb798c32a2daea244067
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/service/MailService.java
7e89834cfd920a3c4c3fe29d18fae2f7cf4fcbbc 18-Sep-2009 Marc Blank <mblank@google.com> Fix problem w/ SmartReply & SmartForward in Exchange 2003

* It doesn't like URLEncoded commands; go figure!
* Fixes #2127892

Change-Id: Ibae8cad990ed45accb6699716fda56f45c850939
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
0d1f7add7d62bb3aad32e29baf1764de83ec5ec3 18-Sep-2009 Marc Blank <mblank@google.com> Add logging to EasOutboxService to help find sending issues

Change-Id: I8188fd2977724ae4ee6a8703098b7068c14b92fd
ndroid/exchange/EasOutboxService.java
b9213876f6a233baca501d3502c3ed868c32a2e6 17-Sep-2009 Marc Blank <mblank@google.com> Fix issue with older messages not getting deleted properly from device

Change-Id: I3c3a7b6c7c6983cad47826543f9ac4291c6b2a69
ndroid/exchange/adapter/EmailSyncAdapter.java
3f224e7efe1cf8a816c6de4f5dd5eaf8a5f00d1b 17-Sep-2009 Marc Blank <mblank@google.com> Use StructuredName.DISPLAY_NAME for Email display name on new contacts

* Fixes #2115514

Change-Id: Ib9c437a1cbcbcf1069692e8d5d17d29e80369418
ndroid/exchange/adapter/ContactsSyncAdapter.java
492e8498e75c8f3faec17cc89bcabc8c5d7d1ca9 17-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25427 into eclair

* changes:
Don't add backslash if there already is one; fixes #2124974
e7e1ca432e1aace5b7f11a3f1684a4abc503e6b2 16-Sep-2009 Marc Blank <mblank@google.com> Change AccountManager username for Exchange to the user's login credential

* This is not a backward-compatible change (sorry)
* Existing AccountManager EAS accounts and contacts are deleted
* Existing EmailProvider data is deleted
* Change works with new code (stadler) to avoid account duplication

Change-Id: Ife09c51fa714d91054d017b497bce603add5375a
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
3449b3184c622f8ece729d4f6abaa5b74b794759 17-Sep-2009 satok <satok@google.com> Fix sort order of MailboxList

BUG: 2083746
ndroid/email/activity/MailboxList.java
c022839861c26b8f073144b32a7527ba842c1181 16-Sep-2009 Marc Blank <mblank@google.com> Implement HOME/WORK phones as multiple typed rows

Change-Id: I7e1c885e7735022026df9599babd48f5dbf71af9
ndroid/exchange/adapter/ContactsSyncAdapter.java
acfd155c1202ebde4f9d8f19d5308a4da08d108f 17-Sep-2009 Marc Blank <mblank@google.com> Don't add backslash if there already is one; fixes #2124974

Change-Id: If5fa8369ee4c52449047d5134f3bf28feb88de1a
ndroid/email/activity/setup/AccountSetupExchange.java
767ea863986c1d03332ca43591106510de0c8725 17-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25344 into eclair

* changes:
Add "Sync Contacts" to Account preferences screen (part of #2106733)
e428f941610ced75a9a104104c98cb35358d6fae 16-Sep-2009 Marc Blank <mblank@google.com> Add "Sync Contacts" to Account preferences screen (part of #2106733)

* Also added some checks for null Accounts and HostAuth

Change-Id: Ia4ae68d0e8a62abdaf002519766b6685b6947e9e
ndroid/email/activity/setup/AccountSettings.java
b734bfc08b28ea87c507ddcbce4487aa96a73fee 16-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25320 into eclair

* changes:
Fix NumberFormatException in POP3 message sync
ec11b9658b162c8abcf9757591df4fc49639565f 16-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25348 into eclair

* changes:
Fix "reloadFolderList" service call in SyncManager
5ebdc0efeba40654edbc7f8060de057328f64264 16-Sep-2009 Marc Blank <mblank@google.com> Fix "reloadFolderList" service call in SyncManager

* Fixes #2118439

Change-Id: Iee75c5902940fb7f38f19717306708809fa06dd5
ndroid/exchange/SyncManager.java
092d35c98d00c5a8b1ba93f51f8e59220f1488cb 16-Sep-2009 Andrew Stadler <stadler@android.com> Fix NumberFormatException in POP3 message sync

* Write unit test to replicate failure(s) in POP3 use of parseInt. All
calls to parseInt must be guarded by try/catch NumberFormatException.
* Fix the failures

Bug # 2115586
ndroid/email/mail/store/Pop3Store.java
0c4dc85190028f389f0dcbc3dbed0b344d20a313 16-Sep-2009 Andrew Stadler <stadler@android.com> Harden against crashes caused by account deletes

The basic failure mode is to delete an account while it is being
synced or some other background activity. The fixes in this CL will
harden against this, but it will not be a perfect solution; That
will require shutting down all sync, which is difficult in the current
too-many-threads implementation.

Primary bug# 2112564
ndroid/email/Controller.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageList.java
fc7dfddf192f4875cbfcf6cd49829ccdfee1d3af 16-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25130 into eclair

* changes:
Support StructuredName.DISPLAY_NAME for Exchange contacts
2aa3e92fe3b4dde20f388ccf2a9502d12ad6969c 16-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25041 into eclair

* changes:
show message list selection
5569ec9c9d0cb8b7f57bfcad42ca4466a69c6d8d 15-Sep-2009 satok <satok@google.com> show message list selection

BUG: 2117057

* add styles for items in MessageListView
* reduce color diff of Read/Unread
ndroid/email/activity/MessageList.java
ac37c5c15a3fd4f91f264800966da8e28f338c87 16-Sep-2009 Marc Blank <mblank@google.com> Change Exchange username validation to exclude bare backslash

* Fixes #2121422

Change-Id: Id55dfa365b83d725926e3e7dcd7b646256863aa1
ndroid/email/activity/setup/AccountSetupExchange.java
da8836a76cd8a6eaa7e3693eeacc6393870b2066 15-Sep-2009 Andrew Stadler <stadler@android.com> Give warnings if dupe account created:

* Check for existing accounts with matching servername + username
* Show a dialog and block account creation
* Triggers in three cases:
* After input of an auto-setup account (e.g. Gmail or AOL)
* After input of manual setup (incoming) parameters
* After changing incoming parameters of *any* existing account
* Made some notes in EmailContent regarding fields in HostAuth that we
are not actually using.
* Added HostAuth unit tests

Primarily fixes bug # 1964449
Bonus fix for bug # 1594408

Change-Id: I49310faf6654280582e0ab3d3e40f2701bfcd21d
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/provider/EmailContent.java
f2147b183414d4ffc754c95e101c9a64a53c4a40 16-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25159 into eclair

* changes:
Fix EAS sending (#2122221)
a84a0e9a0df9a2b3e31781805fb8200831826947 16-Sep-2009 Marc Blank <mblank@google.com> Fix EAS sending (#2122221)

Change-Id: I92ea4b1a77d96bf7992ea34026a2c5d30f33c317
ndroid/exchange/EasSyncService.java
2d5691cac1874eb3491353ab608a84c2a75e2b62 15-Sep-2009 Marc Blank <mblank@google.com> Support bcc in Exchange (Fixes #2117849)

* Must send the bcc header for EAS

Change-Id: I38d119beed334c6bb23a09b87375804f8c03ea76
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/EasOutboxService.java
71177c5375566801bc34bbc3f129a5452bb1d579 15-Sep-2009 Marc Blank <mblank@google.com> Support StructuredName.DISPLAY_NAME for Exchange contacts

* Fixes #2115514

Change-Id: Iac348c4ecac3bf8f895c32fff7077bc36d385bc9
ndroid/exchange/adapter/ContactsSyncAdapter.java
ffc681a4da85c82c80d819ab8afb4442577c52a0 15-Sep-2009 Marc Blank <mblank@google.com> Handle the case of no body being present (happens in unit tests)

* Fixes #2121403
ndroid/email/mail/transport/Rfc822Output.java
3bef61019605176b3397b5ae659205ac324689ed 15-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24991 into eclair

* changes:
change to use the new CALLER_IS_SYNCADAPTER flag
d2174733b146eeccd5f3b3b95f98e1e1aaafb257 08-Sep-2009 satok <satok@google.com> Auto-sync of stale mailboxes

BUG: 2050116
- auto sync onResume
- add mNonPushMode
-- mNonPushMode is updated in SetFooterTask
ndroid/email/Email.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/service/MailService.java
043dba5e1b79037f438483f32108aa348d0f0ad6 15-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24672 into eclair

* changes:
Enable long press Open on Accounts screen
977cd2f58ae658aa32401270d19a17a62210753b 15-Sep-2009 Fred Quintana <fredq@google.com> change to use the new CALLER_IS_SYNCADAPTER flag
ndroid/exchange/adapter/ContactsSyncAdapter.java
1d98989222f2d023ddb08a70d5abb850029f95dc 09-Sep-2009 Marc Blank <mblank@google.com> Implement SmartReply/SmartForward for EAS; fixes #2098779

* SmartForward and SmartReply are EAS commands that automatically
include the original message and, if a forward, all original
attachments, regardless of whether they've been downloaded to
the device
* Both commands improve battery life by sending less data; greatly
so for SmartForward if there are attachments

Change-Id: I12432cd5275a3b54e9a80d5cd59da437c4a086cc
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
42c130dcf1f6163b75b7d75ab66027c27d7c5422 14-Sep-2009 Marc Blank <mblank@google.com> Fix bug in which EAS mail won't ever get sent (#2118279)

Change-Id: Iedd80269bafd39a3536527ebe8902b4999eff41e
ndroid/exchange/SyncManager.java
e59c8725c595ae21dff5e04dc418818a18555a55 14-Sep-2009 Marc Blank <mblank@google.com> Make sure SyncManager keeps running in various edge cases

* Have Welcome start the service (in case the app has been reloaded)
* Have SyncManager.ping start the service if there's no instance of
SyncManager

Change-Id: I8bed2843a3e065d2db29fad67dfb0bb3a5d0ff5e
ndroid/email/activity/Welcome.java
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
d60909418221d8b7f762c11d8322a98f0952dca7 14-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24849 into eclair

* changes:
Improve the checkMailbox loop query to get only the appropriate boxes
bba6d443f55a361a682ffc2a84c7809f4b894e94 14-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24858 into eclair

* changes:
Don't wait longer than 10s for ping boxes to be ready
4f9d5cf8f88306f242c3b9eb9aa6766290fcb244 13-Sep-2009 Marc Blank <mblank@google.com> Don't wait longer than 10s for ping boxes to be ready

* Do a short ping in this case, which at least will allow the device
to sleep while waiting
* Addresses #2116749

Change-Id: I9e70feaeef1361e1d66652dc66b92f6ee14751bf
ndroid/exchange/EasSyncService.java
403a45e73606f3d41624c3e3ac02597c08145281 14-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24844 into eclair

* changes:
Reimplement reply/forward to use mTextReply/mHtmlReply
f2dded3a2fba83dd3f0d14cce6abe467a4ab66eb 12-Sep-2009 Marc Blank <mblank@google.com> Reimplement reply/forward to use mTextReply/mHtmlReply

* Move creation of final reply/forward text (i.e. new text plus
the original) to Rfc822Output, where it belongs.
* Prepares the way for use of SmartForward/SmartReply in
Exchange and replying w/ multipart/alternative in SMTP
* Moved test from MessageCompose to new Rfc822OutputTests, and note
that new tests should be added (this is not a regression; there
were never enough tests here)

Change-Id: Ibefb842f47cc9223714856d99b8d4f55b55f49e3
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/transport/Rfc822Output.java
60c7502b6777be550aaace9e9d780a9f84c8b03f 12-Sep-2009 Marc Blank <mblank@google.com> Change exchange setup screen per #2025029

Change-Id: Ib94713857902e336984b847f70c96e04826b9b74
ndroid/email/activity/setup/AccountSetupExchange.java
c7897acf56251d3ea4c484616643c22fe76c2646 13-Sep-2009 Marc Blank <mblank@google.com> Fix NPE when adding note rows to Contacts

Change-Id: I51574db9abc45b55f8a7c19d493fdc47bc24b11b
ndroid/exchange/adapter/ContactsSyncAdapter.java
fa1ad355a1e738c645fe97d3942e65a4d2251b97 13-Sep-2009 Marc Blank <mblank@google.com> Improve the checkMailbox loop query to get only the appropriate boxes

* Boxes must 1) be from an EAS account and 2) have a syncInterval that
is not "never"

Change-Id: I5efbdc527063b2ee3373bc763b625eadfed67c4a
ndroid/exchange/SyncManager.java
f50c6d1fafde92f38ad80b36bb152cc58228a474 13-Sep-2009 Marc Blank <mblank@google.com> Don't sync "trash" folder in Exchange

Change-Id: I6a1dc2a8ae5936bb7428d82e48ddbf114500051a
ndroid/exchange/SyncManager.java
492228bdc4b90c632d7cf4d87a81fa42d3c3456f 12-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24815 into eclair

* changes:
Don't sync if the "Sync Contacts" checkbox isn't set
95bc6a6ad9f7332eba594c8e5f732884d6f02990 12-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24755 into eclair

* changes:
Allow download of contact w/ no name; don't accept empty note
9679d4cf64856b9308b5f8250194a0d2db402ddd 12-Sep-2009 Marc Blank <mblank@google.com> Don't sync if the "Sync Contacts" checkbox isn't set

Change-Id: I606f6c384fa34283ccee1eeaac90123347846f28
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
e13ff84df7877e447a33136e328813b3ee0e5140 12-Sep-2009 Marc Blank <mblank@google.com> Fix leaked intent receiver by using onStartCommand in SyncManager

Change-Id: I914c597aede6904a11a5d3119b3f7097e65b2fba
ndroid/exchange/SyncManager.java
3a0fb3b14eda8216cb80e520ab48ea84a67b43ab 11-Sep-2009 Marc Blank <mblank@google.com> Allow download of contact w/ no name; don't accept empty note

Change-Id: I90058ee6c92853a3765138ca433abd7f62b60c0a
ndroid/exchange/adapter/ContactsSyncAdapter.java
2bab07c71e5a4cec40fd19a2165b2d9b744e644a 11-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24722 into eclair

* changes:
Fix connection failure retry behavior; don't try syncing w/o connectivity
a918672f4cd812e02ed6d837520378b00ae78863 11-Sep-2009 Marc Blank <mblank@google.com> Fix connection failure retry behavior; don't try syncing w/o connectivity

* Also remove some logging and correct some erroneous logging
* Fix the backoff behavior on IOException

Change-Id: I5fb5a0bf73eaa681eb7b9c305c838e78e7ba88ab
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
3c7f0d4c000f24e39fb4b0f1e10f762f5ff011c9 11-Sep-2009 Marc Blank <mblank@google.com> Make exchange contact category names visible; also their members

Change-Id: Icaf7c2828db4fda7323b3ec3a6c9cd783ae80c9a
ndroid/exchange/adapter/ContactsSyncAdapter.java
86ada729c2930c278c4f73a6bcea059c8ac74559 11-Sep-2009 Marc Blank <mblank@google.com> Check for null data before writing contact rows to server

Change-Id: Ib7016c43b2655e1753680c511f30cad8f4a1acce
ndroid/exchange/adapter/ContactsSyncAdapter.java
9486e1c1d3383868227665073742be0bb662e600 11-Sep-2009 satok <satok@google.com> Enable long press Open on Accounts screen

BUG: 2083565

Fix the button name
ndroid/email/activity/AccountFolderList.java
be60dfdee7c2c0f73d54e1b04a36967508d428ae 11-Sep-2009 Andrew Stadler <stadler@android.com> Update MessageListView to fit punchcut's design

BUG:1904421

* update READ/UNREAD indications
** don't change color chip
** change background color
* Change Date
* Change the position of attachement icon
* Change menu icon for folder
ndroid/email/activity/MessageList.java
f9ab857a5599faac2896394180fcd4ed56b09941 11-Sep-2009 Andrew Stadler <stadler@android.com> Implement delete-from-trash

* Edit Controller.deleteMessage() to handle both cases
* Refactored to start from processPendingActionsSynchronous() and
dispatch to series of smaller methods to handle deletes vs. updates
and the details of the various specific operations.
* Added processPendingDeletesSynchronous() which looks for delete-from-
trash and does the right thing locally and/or remotely.

Fixes bug # 1811026
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/FolderMessageList.java
6c6d7e3a260a5906afa3a0fbe9700a0b58046420 11-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24601 into eclair

* changes:
Fix sync-crashing bug in exchange contact groups
058df979c8a380d95fe0c5a8669934aa483b41a4 11-Sep-2009 Marc Blank <mblank@google.com> Fix sync-crashing bug in exchange contact groups

Change-Id: I40335dcbba9653778d8376b26ae9c2455c34d0ee
ndroid/exchange/adapter/ContactsSyncAdapter.java
6c21942ec45f561d711b3d74ecca8e62afb735c4 10-Sep-2009 Andrew Stadler <stadler@android.com> Implement move-to-trash for IMAP and POP3.

* Define new message-loaded state "FLAG_LOADED_DELETED" (used only for
POP3, which needs to write sentinel messages that are not displayed.)
* Also renamed the other flags to make the naming more consistent.
* Tweak MessageList query generation to inhibit display of deleted
message sentinels, and MessagingController won't try to resync them.
* Clean up implementation of Controller.deleteMessage()
* Add support for move to trash to MessagingController. This operates
in three primary modes:
* POP3 local delete (no server-side interaction)
* POP3 server delete
* IMAP server delete (and copy to IMAP trash mailbox)
* Add missing implementation in provider to delete all of the attachments
for a given message
* Fix progress reporting in activities (the test for error vs. progress
was inverted, which caused progress indicators to keep spinning
after errors.)
* Fix broken account settings UI (POP3 delete policy was not persisting)

Addresses bug 2097409

TODO delete from trash / empty trash

Change-Id: I00188e6dc2093823106e009f35b68c760227c9e6
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/adapter/EmailSyncAdapter.java
c522cfa77099bb8f65b65ad49b7781cf3bb86002 10-Sep-2009 Marc Blank <mblank@google.com> Change ping loop wait from 10s to 1s to reduce WakeLock use

* There is a better way of implementing this, which I'll write up in
Buganizer, but this will help our battery life testing

Change-Id: I2583f0cb9c62b38aee64166138385d7b14855832
ndroid/exchange/EasSyncService.java
ffe998914d9a5853c926e8e8f7853d37e4740d44 10-Sep-2009 Marc Blank <mblank@google.com> Remove temporary code that disabled contacts upsync

Change-Id: I41273aeac3059a49a1fffc7904e580a8544724bf
ndroid/exchange/adapter/ContactsSyncAdapter.java
805562e26f50bd57c3b9bd357644285d3f1941a4 10-Sep-2009 Marc Blank <mblank@google.com> Fix logic for use of "Sync Contacts" button value

Change-Id: I9abed1830a61795542bdf15ee62395a63abc9222
ndroid/email/activity/setup/AccountSetupOptions.java
d46ec14e6e856191bed0a599aaeb8cde322c77d6 10-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23483 into eclair

* changes:
Rework ContactsSyncAdapter to handle untyped Email and IM data
6d1271aee78f195e094aca650d8dceee79fbb5e4 09-Sep-2009 Marc Blank <mblank@google.com> Fix crash in large tests (#2108431)

Change-Id: I82a0ec81361b722bfa1cb4f197e3c999936ff192
ndroid/email/activity/MessageCompose.java
009fd35e92a02b198bc5a7a1144490fb5a869b0e 01-Sep-2009 Marc Blank <mblank@google.com> Rework ContactsSyncAdapter to handle untyped Email and IM data

* This is required to due a change in ContactsProvider2 that removes
type information for these fields

Change-Id: I993aebdcace0e1db538a85afdea3389fe41518d8
ndroid/exchange/adapter/ContactsSyncAdapter.java
cef2344e70b4ab90cbbb01aac00f248976d273df 06-Sep-2009 Marc Blank <mblank@google.com> Rework EAS account creation & ssl operation

* Fixes 2048663, 2025029, and 2100131
* Add "Trust Certificates" checkbox in EAS account creation
* Use custom ClientConnectionManager for HttpClient with registry
for plain, ssl, and tssl (trusted ssl) connection
* Use a ConnectionPool for HttpClient connections
* Remove "Domain" checkbox in EAS account creation
* Remove tests related to the "Domain" field
* TODO Write a test for valid usernames (requires a bit of research)
<name>, <email address>, <domain>/<name, and <domain>\<name> are all
valid, but there might be others

Change-Id: I4a0338df5960bfd3d679a88aaf22d1c49f49992b
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/SyncManager.java
e25698319325d5e9619bc45ae85d861b0f1c5954 08-Sep-2009 Marc Blank <mblank@google.com> Add sourceKey to Body table; add flags for reply/forward in Message

* Set reply/forward flag and sourceKey as appropriate in MessageCompose
* Update provider tests accordingly

Change-Id: I7f49d80a735314a1a38f09fbf1f234257c41af8c
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
4587efc1d3da8dc0b1759d7d82677f347b529830 08-Sep-2009 Dmitri Plotnikov <dplotnikov@google.com> Replacing old contacts API references with new ones.
ndroid/email/activity/MessageView.java
e8a37cf76955314da77ceaa2f341c7fa2513d01b 08-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24088 into eclair

* changes:
Re-enabling email suggestions and switching to new contacts API.
a5b855898d3a1da2ddfbcd7b012688dae57cfcdd 06-Sep-2009 Dmitri Plotnikov <dplotnikov@google.com> Re-enabling email suggestions and switching to new contacts API.
ndroid/email/EmailAddressAdapter.java
ndroid/email/activity/MessageCompose.java
c688b085d0f1f88ad8eea58c15c2fcd82df7ea4b 06-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 24069 into eclair

* changes:
Have SyncManager stopSelf if there are no EAS accounts
6e7ea8cfe6fa3fe4380964df53c51ba7812b6372 06-Sep-2009 Marc Blank <mblank@google.com> Fix problem with case of attachment name in EAS

* Fixes #2102752

Change-Id: I9cc05a8fc02344f1f673c5ccb4e6aed0f9602350
ndroid/exchange/adapter/EmailSyncAdapter.java
7b03c7936a2fd238f366fe145619308e5b31a8ec 05-Sep-2009 Andrew Stadler <stadler@android.com> A bit more debugging to catch the service race condition.

NOTE: This switches on Email.DEBUG for everyone, and should be
removed.


Change-Id: I700099a9aa5e5c64d8c282cb8d07a47c7c408862
ndroid/email/service/MailService.java
8549068cb55a014f81c3189ad40a164b5d036f03 05-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23963 into eclair

* changes:
MessageView: bug 2076472, fix deletion WRT prev/next navigation.
f1f8e816282a738055cbde89c31109c93f8681fa 05-Sep-2009 Marc Blank <mblank@google.com> Have SyncManager stopSelf if there are no EAS accounts

Change-Id: Icfca3a7f93a9eb382dca19b9f69c461e92eb6bd8
ndroid/exchange/SyncManager.java
b8d0c55a05b97e53957dfd6619ea97edeca989cf 04-Sep-2009 Marc Blank <mblank@google.com> Fix reply all behavior to prevent duplicates, etc.

* Also create a bogus account if none exists to prevent setup failure
* Fixes #2087413 (Email large tests failing with Unknown URI)
* Fixes #2097361 (Duplicate email address when replying...)

Change-Id: I9ca2ac5f98db43e9009c22421c69956440356e34
ndroid/email/activity/MessageCompose.java
db003dd489fe00ac4384e2768e9ed32dbfff4d53 05-Sep-2009 Andrew Stadler <stadler@android.com> MessageView: bug 2076472, fix deletion WRT prev/next navigation.

- fix doPrevious() which was not correctly moving the cursor due to
bug 2100645
- correctly handle configuration change (keyboard open/close) by saving
the current message
- reorder the operations in onDelete: first move the cursor, and next
delete, to avoid the possibility of the observer call happening with
the deleted message as messageId.
ndroid/email/activity/MessageView.java
5d09beeacbca54bda48055188585354bfaf238ad 05-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23803 into eclair

* changes:
MessageCompose: Bug 2078435, Correctly set the attachement flag.
9be10e62ed4c809c56e2bcc357d5bb7d5dd543c1 04-Sep-2009 Marc Blank <mblank@google.com> Remove the "unique" requirement for serverId; it should never have been there

* People using multiple accounts without this change could end up with missing folders
* Fixes 2099514
* Database version incremented; this change will cause a database wipe

Change-Id: I08d23fa54d8194758e1f7c2ffb528a14bc184f08
ndroid/email/provider/EmailProvider.java
5768ef614bc7e45720da4ea2c92d261292993970 05-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23939 into eclair

* changes:
Fix crash related to long press of footer view in MessageList (2099784)
3113ae67fdee3fa0ec8ad20af1568542570e28dc 03-Sep-2009 Mihai Preda <preda@google.com> MessageCompose: Bug 2078435, Correctly set the attachement flag.

- display "saved as draft" toast for save draft.
- don't display tost for send.
- don't cancel the sender task, let it complete.
- synchronize on mDraft although not sure that it's needed.
ndroid/email/activity/MessageCompose.java
62fb7cf5f58aa063e43b2ea87f48285cdd066bdb 01-Sep-2009 Mihai Preda <preda@google.com> Email MessageView: Bug 2053500, presence.

- fix the query for presence status.
- put it in an AsyncTask instead of Thread, remove from Handler.
- set the target rect when invoking the presence bar.
ndroid/email/activity/MessageView.java
8af852315494e13591fb8a01a4e29e522845b3be 04-Sep-2009 Marc Blank <mblank@google.com> Fix crash related to long press of footer view in MessageList (2099784)

Change-Id: I4be240096022ee69244532bbf876a47a520188bc
ndroid/email/activity/MessageList.java
9b9a2e69b920823c18b27740ee77cef007316d60 04-Sep-2009 Andrew Stadler <stadler@android.com> Improve logging in MailService

The goal is to generate better reports to help find the race condition
described in bug 2084412

Change-Id: Idfc453af17edf08e89d2aa656585b83ed48691c8
ndroid/email/service/MailService.java
4f11b50de573ab8ce937e5c7544ec4c21bd62f1f 03-Sep-2009 Mihai Preda <preda@google.com> MessageView: Bug 2097855, observer on prevNextCursor unregistered twice.
ndroid/email/activity/MessageView.java
67650c8bf7d154d5deff6dcae531da544d85ab90 03-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23435 into eclair

* changes:
Email: BUG 1964940 Support multiple share from Gallery in Email
bc1e760c113a610aa7b3c0ca1ca6c027a3f863a0 03-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23771 into eclair

* changes:
Fixed Labels for buld email
58bd29e740a137cf705cbfa7ad512135d6b57fdc 02-Sep-2009 satok <satok@google.com> Fixed Labels for buld email

BUG:2084730
ndroid/email/activity/MessageList.java
9c60b110a991019959ca5c01f0db7b508048810a 03-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23726 into eclair

* changes:
Clean up next/prev behavior in MessageView
7c4a39981db6cab5be73ceb3990b31a67fdcc4c6 03-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23657 into eclair

* changes:
Fix the foldername of outbox
4bb52e36b18ab5e2fb9242069611bc0ef6116c09 02-Sep-2009 satok <satok@google.com> Fix the foldername of outbox

BUG: 2077596

* fixed the array of special_mailbox_display_names
* added unit tests
ndroid/email/Utility.java
ndroid/email/provider/EmailContent.java
6d22ccaa2f3be78ea94e0758cef51ab9719e52a5 03-Sep-2009 Andrew Stadler <stadler@android.com> Clean up next/prev behavior in MessageView

To improve functionality of next/prev buttons:
* Stop using managed query for next/prev cursor, so requery won't
run in UI thread. Add explicit lifecycle management.
* Requery on every onResume()
* Use a listener to catch external changes. This applies both to synced
changes and also local deletes.
* If we ever find ourselves out of the list, finish() immediately
to avoid any race conditions.

To reduce flicker & other problems during msg-to-msg navigation:
* Clear attachments list so it doesn't accrete as we navigate
* Clear body so we don't show previous body with newer headers

Fixes bug 2076472 and (possibly) 2069241 & 2078933
ndroid/email/activity/MessageView.java
d1d87b4dc9019d0a3ab9564f3d976eca339b8771 03-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23709 into eclair

* changes:
Put in temporary code to prevent contacts upsync based on Gservices setting
65652eee27b464e005734fc91ed1aeac8b9d7522 03-Sep-2009 Marc Blank <mblank@google.com> Put in temporary code to prevent contacts upsync based on Gservices setting

Change-Id: I89ae0495da9daa85aee7e411cf159fd3c010ee13
ndroid/exchange/adapter/ContactsSyncAdapter.java
64814b3928a373f341ec819b3367320f8d7bc981 25-Aug-2009 satok <satok@google.com> Update the design of Unread Count

BUG: 2065601

* Show Unread Count of Accounts in AccountFolderList
* Change the background according to the folder's type
* Change the style of unread counts

TODO: Change background images of Unread Count
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
91a5cd517f1f30131305a299efae1449f9e4118c 02-Sep-2009 Andrew Stadler <stadler@android.com> Clean up handling of Exchange setup option

* Use concrete declarations, not the old sample code
* Remove unused "sample" code
* Create ExchangeSender.java
* Strip out the unused (old sample code) parts of ExchangeStore.java
* Unit test to make sure EAS is being offered
* Fix "account leak" in AccountSettingsTests

This was triggered by donut bug # 2092944 but the solution is
different because we support EAS here.
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/exchange/ExchangeSenderExample.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
ndroid/email/mail/exchange/ExchangeTransportExample.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/transport/ExchangeSender.java
fa2238ca40080dd6b28036d1e512d9a0e690d3d8 01-Sep-2009 Mihai Preda <preda@google.com> Email: BUG 1964940 Support multiple share from Gallery in Email
ndroid/email/activity/MessageCompose.java
936babc145e2e6eb2e222f2ce5e3da8f9e4fb9f2 02-Sep-2009 Andrew Stadler <stadler@android.com> Bulk change of columns, LAST TIME.

* Add reply columns to Body
* Remove a bunch of unused columns from Message
* Update SQL tables, content read/write, etc.
* Small tweaks to app code that was not-really-using the old columns.
* Update existing unit tests for new/changed columns
* Disable TagsTests to solve a tests failure (prexisting, not caused by
this CL)

Change-Id: Ief493796dfe219669755170d76786f91570cbb9b
ndroid/email/LegacyConversions.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EmailSyncAdapter.java
4bc201d9d0b939c11450270ed3ebda1e9341cb2b 01-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23405 into eclair

* changes:
Use bulk delete for wiping contacts, now that it's implemented in ContactsProvider
1b590566611017d95076ea7c4b36a5704219175a 01-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23021 into eclair

* changes:
Email: check for closed cursor in onPostExecute for AsyncTasks.
75a0873dd9520f858b0bed576c9d84663c70b570 01-Sep-2009 Marc Blank <mblank@google.com> Remove the temporary call to start SyncManager in Welcome.java

Change-Id: Ic15b19374e89d2b1329e55d4bc86336499a983fd
ndroid/email/activity/Welcome.java
7266d90daccee82cb398356defb0c30d95a2ebdd 01-Sep-2009 Marc Blank <mblank@google.com> Make mailboxes respect the sync interval of the Account

* Fixes #2089954

Change-Id: I1b632462ad23da5f024efe2d13ebb11e8e600c67
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/FolderSyncParser.java
469d07fdd4bed7d565c9c6e43b2623f63406d391 01-Sep-2009 Marc Blank <mblank@google.com> Use bulk delete for wiping contacts, now that it's implemented in ContactsProvider

Change-Id: I0363901902cc8c17116222eb78bacd2e96ad28d7
ndroid/exchange/adapter/ContactsSyncAdapter.java
b3e4c798732356021be7c022112cada1517c4994 31-Aug-2009 Marc Blank <mblank@google.com> Change ContentObserver for Account; fix two bugs

* Fixes 2085862 and 2087385

Change-Id: I38e046e861ec0423669506194c0bcd6c9c96328c
ndroid/exchange/SyncManager.java
617720eb35a1906ea2c9e49802d67dc443b89f5e 30-Aug-2009 Marc Blank <mblank@google.com> Handle user deletions in Exchange Contacts sync (i.e. upsync them)

Change-Id: I94a8d83b4739b6439a7a87c0bf22ed165a9c9186
ndroid/exchange/adapter/ContactsSyncAdapter.java
ebda78473223242ae0be4508a46dc60d2632b8ea 29-Aug-2009 Marc Blank <mblank@google.com> Fix bugs related to Contacts sync behavior in Exchange

* Respect the UPLOAD extra from SyncManager and check for changes before starting
a sync.
* Failure to do this was causing looping behavior

Change-Id: Idfb1c35782b6d3771f9455c6fe86489572a871c5
ndroid/exchange/ContactsSyncAdapterService.java
a7927a874be0f8d7577dfc30920d0f73c9973f68 29-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23116 into eclair

* changes:
Create BootReceiver for Exchange for proper self-management
58267fe146c29251f457444364f844fe141de84f 29-Aug-2009 Marc Blank <mblank@google.com> Fix some Contacts upsync bugs; add logging for serialization

Change-Id: I855a8ee3df520f53fc94866b8463d314cf800ca5
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/Serializer.java
53cb37c3ef6120b76270850a53ded5ba77775dfd 28-Aug-2009 Marc Blank <mblank@google.com> Create BootReceiver for Exchange for proper self-management

Change-Id: I95e9e632de91d7f0e2505bf8879e1c164861f58c
ndroid/exchange/BootReceiver.java
ndroid/exchange/SyncManager.java
bd4fe2db84afc7425cff536953faa4f912997736 28-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23114 into eclair

* changes:
Fix upload of read state for Exchange emails
c29ec54532e17565783353014102d269087c727a 28-Aug-2009 Marc Blank <mblank@google.com> Fix Contacts sync adapter required by change to SyncManager

Change-Id: Icfc1f191289170185548a03ca94d1f79f10b7519
ndroid/exchange/ContactsSyncAdapterService.java
85a78c749586993746ab62ef1b1f48832525afb7 28-Aug-2009 Marc Blank <mblank@google.com> Fix upload of read state for Exchange emails

Change-Id: Id5959f9c2394644e88b3961dea24f54ff1ad7141
ndroid/exchange/adapter/EmailSyncAdapter.java
e3a25fe58d2e6faa5a622a969e4bb8b62859ce84 28-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23009 into eclair

* changes:
fix a bug that can allow multiple syncs to start in parallel
63ec89f61ae4d4091b50915b3453371c2eeeb7f8 28-Aug-2009 Fred Quintana <fredq@google.com> fix a bug that can allow multiple syncs to start in parallel
ndroid/exchange/ContactsSyncAdapterService.java
285efb4aff0c3a0ef15d249223d9e8c6c3d0ce77 28-Aug-2009 Mihai Preda <preda@google.com> Email: check for closed cursor in onPostExecute for AsyncTasks.

BUG 2081965
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
52129ec4b2b4d02012f6d87ed146916995b096d2 28-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 23001 into eclair

* changes:
MessageCompose: BUG 2069196, compose email from the correct account.
948e5ae63b752dacccc731e019326f1dd2eeef0b 28-Aug-2009 Mihai Preda <preda@google.com> MessageCompose: BUG 2069196, compose email from the correct account.
ndroid/email/activity/MessageCompose.java
ab11649eed5cb73ce06d9fe266456e221b82796d 28-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22989 into eclair

* changes:
Fix usage of isDefault and IS_DEFAULT to be consistent
242fde192081c571569f5989419ca2a19ad34482 28-Aug-2009 Marc Blank <mblank@google.com> Fix NPE in bug #2080357

Change-Id: I07c0b65e16568e9cf182b70302f2a1ce90d2581b
ndroid/email/MessagingController.java
0401ad5334fad104336413173f17a5d72b9b5518 28-Aug-2009 Marc Blank <mblank@google.com> Fix usage of isDefault and IS_DEFAULT to be consistent

* There was inconsistent usage between int and boolean for this column

Change-Id: Ifa7bd6f2563920a95b6b714f3a7b14e5be29d176
ndroid/email/provider/EmailContent.java
f8a81b94a3de67e8dcd6a83b06079c2656f511a8 27-Aug-2009 Marc Blank <mblank@google.com> Set ContactsProvider Settings so that ungrouped Exchange contacts display by default

Change-Id: Ie7ede23efdd371816c8dc190b8269abd83c5f238
ndroid/exchange/adapter/ContactsSyncAdapter.java
4118beebed3899bfc3a06928b07500a24b70e5ef 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22654 into eclair

* changes:
Move some Contacts fields to new CommonDataKinds rows
6c47a981845d443f912a33b7a66dff5bf780cf98 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22873 into eclair

* changes:
Clean up onCreate/onDestroy methods for SyncManager
2ded414e99ec6e275865df6cc5d62b4b9c3e01be 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22840 into eclair

* changes:
Sync "read" and "favorite" back to server.
423206653fc1841153f6c6c00599a65d5c5f2191 27-Aug-2009 Andrew Stadler <stadler@android.com> Sync "read" and "favorite" back to server.

* Add \FLAGGED support to IMAP (writeback)
* Add code in Controller to kick MessagingController
* Rewrite pending commands system to scan through provider's updated
messages table and react
* Fix a unit test that I broke
* Cleaned out some of the old PendingCommand support

Addresses the 2nd half (upsync) of bug 1904385

TODO:
Can I add a unit test for IMAP flag writer?

Change-Id: I5a96a695d4f35fca1395506f165b86d9fb19b543
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/mail/store/ImapStore.java
317a92f51f178cfa19cc3f92f03f54640ac9ad88 27-Aug-2009 Marc Blank <mblank@google.com> Clean up onCreate/onDestroy methods for SyncManager

* Put most of onDestroy code into the run method of SyncManager's thread
* Clean up code for updating Mailboxes' SyncKey and interval
* Fixes 2080472

Change-Id: Ie16c851a686142d9fd1d810a942aa786690b1034
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
6c99ea3d02ba1b6b351a4ff4a39eadf90e494349 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22829 into eclair

* changes:
Fix #2081145 (Empty subject line imitates magic eight ball)
b01bce9b50bf2f8088e04a7e1ea2a037e52fc41f 27-Aug-2009 Marc Blank <mblank@google.com> Fix #2081145 (Empty subject line imitates magic eight ball)
ndroid/email/activity/MessageList.java
7ac828bce884c26d7f28486ec49d7f99b81842d3 27-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22823 into eclair

* changes:
Fix bug #2080302
1851882c8c4ab06aa66e17735acd596c2c97b95a 27-Aug-2009 Marc Blank <mblank@google.com> Fix bug #2080302

* Was trying to retrieve an integer as a boolean in the ContentValues
* The actual Exception (ClassCastException) was buried by ActivityThread
ndroid/email/provider/EmailContent.java
58299b0b668a8913f946f48844b8a7cbcbb69963 26-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22793 into eclair

* changes:
Handle errors in account creation by AccountManager
eac52c9398327de297e3369409e5f2225d39a08c 26-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22798 into eclair

* changes:
MessageCompose: bug 2080075 & 2077496.
a3c6c6ed294d5a1fb0662fdacc1388944487fdf2 26-Aug-2009 Marc Blank <mblank@google.com> Handle errors in account creation by AccountManager

* Don't create our EmailProvider Account until we get a confirmation from
AccountManager that the system Account is created
* Put up an erorr dialog if AccountManager fails for some reason (this is
what we saw in bug #2072668)
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ExchangeStore.java
ea0fea2558f78ba54d9a8fbca6af466d9542d038 26-Aug-2009 Mihai Preda <preda@google.com> MessageCompose: bug 2080075 & 2077496.

- fix bug 2080075, reply to message without text body.
- workaround bug 2077496 by temporarilly disabling the address adapter.
- unit test for MessageCompose.buildBodyText()
- use precompiled regex
ndroid/email/EmailAddressAdapter.java
ndroid/email/activity/MessageCompose.java
2ac94a9cc254ff0a4c17407eb1bda31d433ef651 26-Aug-2009 Andrew Stadler <stadler@android.com> Update Star and Read/Unread from IMAP server

* Set the star and the read/unread states properly when a
message is downloaded for the first time.
* Update them on already-downloaded messages.

This is download only - not upload
Bug 1904385

Change-Id: Id03a0957677bb39f4a57ed0542eaa8accc36ab48
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/mail/store/ImapStore.java
c1edb4a80185311072622a93b8a7458bc549de99 25-Aug-2009 satok <satok@google.com> Show/Hide/Change appropriate buttons in footer of MessageList.

BUG: 1904403

* Change the text of READ/UNREAD button dynamically according to the state of selection
* Change the text of favorite button dynamically according to the state of selection
ndroid/email/activity/MessageList.java
04e3ba8ffd60aaa4d4674df171fc1accd673e61b 25-Aug-2009 Marc Blank <mblank@google.com> Move some Contacts fields to new CommonDataKinds rows
ndroid/exchange/adapter/ContactsSyncAdapter.java
98c10db5103aca003446b446efa7492b7cd36f34 25-Aug-2009 Andrew Stadler <stadler@android.com> Clean up menus in MessageList

* Final list of options while normal mailbox is shown
* New list of options while smart folder is shown
* Correct lists of context options for drafts, outbox, trash, and
everywhere else (full list)
* Enable reply, reply all, and forward

TODO: needs a better icon for menu->folders

Resolves bug 1904421 items 4a, 4b, 5a
Resolves bug 2078092
ndroid/email/activity/MessageList.java
67be84728a05f969ae1306fc1fed21fb1a2a8526 25-Aug-2009 satok <satok@google.com> Update UI of accounts folder list and smart folders

BUG: 1904417

* Changed the order of menu options
* Made context menu for smart folders
* Added context menu for Accounts
ndroid/email/activity/AccountFolderList.java
9b27c7fd903109bb20812da0421ce44676aa0189 25-Aug-2009 Mihai Preda <preda@google.com> MessageView: display inline images.
- also display "show pictures" the same as in donut.
- inline images don't show in attachemnts list.
ndroid/email/activity/MessageView.java
68c3c7518e132bdbfd17a0b122fbe09c08e0acdc 23-Aug-2009 Marc Blank <mblank@google.com> Use LED for notification (same parameters as Gmail and GTalk services)

* Agreed to by Erick and Prasenjit

Change-Id: I1a0f3642c9b10f981b2feed55762407ed853763d
ndroid/email/service/MailService.java
df86adf87328a439347260331592509787020420 25-Aug-2009 Andrew Stadler <stadler@android.com> Finish the code to demand-load partially loaded messages.

This happens in two primary cases:
1. When a very large POP message was skipped during initial sync
2. When any message was interrupted during initial sync, e.g. by
a dropped connection.

Changes:
* Added loadMessageForView and callbacks to Controller (and touched all
files with Controller listeners)
* Rewrote loadMessageForView in legacy MessagingController to work with
provider.
* Update flow in MessageView to use loadMessageForView when needed.
* Restored the use of "loading.html" and "empty.html" assets (although
I think we should replace them with simple layouts & views.)
* Some random cleanup in MessageView

Satisfies bug # 2065563
ndroid/email/Controller.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/service/MailService.java
60a04912e0973183c40ac34fb121ab77e471ec39 24-Aug-2009 satok <satok@google.com> Change all context menus

BUG: 2051086

* Add titles to all context menus
* Fix bug that prevented display of context menus in MessageList

TODO: localize special folder names
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
dadba9949895696108b31124fc0c6aa1a297ab1c 21-Aug-2009 satok <satok@google.com> Localize special folder names

* make utility for looking up icon id for mailbox
* make utility for looking up localized name for mailbox

BUG: 2065586
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
aa69a174774699d452233f8ffece021f9851011e 24-Aug-2009 Marc Blank <mblank@google.com> Add initial support for uploading new Contacts to Exchange server

* Refactor the sync adapters to separate out parsing from commit
* Use ContactsProvider to save the SyncKey for contacts
* Fixes #2072664 and #2072456

Change-Id: I1e85c498496e83d9523489636a75f366f7fbd106
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/AccountSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
e2e466e315f645d19b592d62dcf573c706175e17 25-Aug-2009 Marc Blank <mblank@google.com> Null out reference in onDestroy method

Change-Id: Idc3b7c52ae60121756e071ed2468ee1b9496c1c1
ndroid/exchange/SyncManager.java
137be44d5c2fde2915a2261e2b1670f8c1b86558 25-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22502 into eclair

* changes:
Fix #2074992
4bc4fed47bec36b48203ae7dd6cd7e4727cfea70 23-Aug-2009 Dianne Hackborn <hackbod@google.com> Use new service command processing to avoid leaving the service running.

The service still needs to schedule an alarm in its onStartCommand() so that
it will run in its next poll interval.

Change-Id: I66228ef573e84a5c7d33bcb07f4772626079b960
ndroid/email/service/MailService.java
863c6bb04f82f95ac6b8d347e73b8f6dda33cde3 25-Aug-2009 Marc Blank <mblank@google.com> Fix #2074992

Change-Id: If60aafe60c6327ec62f2a45aae5d750da65a19a8
ndroid/exchange/SyncManager.java
e1f0b0a9bcc78ade7f3b2ac540705701f19cd6cd 25-Aug-2009 Andrew Stadler <stadler@android.com> MessageView: next/prev navigation.

in addition:
- fix AND-OR precedence in cursor query in MessageList.
- move special mailbox ids from MessageList to Mailbox
- move shared code from MessageList to com.android.email.Utility
- add invisible prev/next to landscape in order to avoid special-case in code
- select mailbox list using IN() instead of list of OR

Note: Checked in by Andy to facilitate further work on MessageView.

Change-Id: I8049be2b45fed1e4e697a0ed895492c4d0e59e0a
ndroid/email/Utility.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
dad47808e9cfd41566e3baccd323d34b5ae5b7c9 24-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22425 into eclair

* changes:
Reenable Load More Messages for IMAP/POP
77398c42899a383680005b92955a29ab3d872c5c 24-Aug-2009 Andrew Stadler <stadler@android.com> Reenable Load More Messages for IMAP/POP

* Properly reset all mailbox limit values
* When load more messages is clicked, increment limit and resync
* Also fixed a race condition in provider

Resolves bug 2065626

Change-Id: If50f25a5cb3b549b3acc48406c78533ad86ed4d5
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/activity/MessageList.java
ndroid/email/provider/EmailProvider.java
0cbdba8d62c297c3aad7c833f5f5716eabc2c501 23-Aug-2009 Marc Blank <mblank@google.com> Fix a few sync-related bugs:

* Don't leak the receiver registered by AccountManager for updates
* Only restart dead threads if they aren't logged in the syncErrorMap
(to prevent looping behavior as seen in bug #2072456

Change-Id: Id1b4c53ef8b721bf8bfa8426627fd76831864c70
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/Serializer.java
bfe94e6eaa3e1b9bc95ffb3b2169656bb138c5a3 23-Aug-2009 Marc Blank <mblank@google.com> Fix NPE when trying to upload a Contact created on device

* Note: This functionality isn't yet implemented

Change-Id: Ie5840a6830e31acc72523b9e8d6d760bf26d523f
ndroid/exchange/adapter/ContactsSyncAdapter.java
5aac4a74961b4424e6cf3d263aee51c76d5e9e55 22-Aug-2009 Marc Blank <mblank@google.com> Fix bug #2071895 (NPE); remove unused method.
ndroid/exchange/SyncManager.java
a27291faac56abacd0451427aedc3b9e789c7bd0 22-Aug-2009 Marc Blank <mblank@google.com> Fix bug re: parsing EAS 12 flags that caused missed messages, etc.

* This is bug #2071068
ndroid/exchange/adapter/EmailSyncAdapter.java
a9a5dd60d6c9f350cf370409d10d5a9e692c8273 22-Aug-2009 Andrew Stadler <stadler@android.com> Two minor crash fixes

* Don't call deprecated presence Uri
* Don't return null from SyncManager.getAccountList()
ndroid/email/activity/MessageView.java
ndroid/exchange/SyncManager.java
95993a4b8466c2a47f4eba7a65b4ba194986cff5 18-Aug-2009 satok <satok@google.com> Update Title bar to use custom titles

BUG: 2050630

* remove fat title bar
* show new titles by using custom title bar
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
d382107bdc95d4472050d0879dff7e30193ef1c2 20-Aug-2009 Jeff Hamilton <jham@android.com> Don't try to load the owner info for now, it's not available.
ndroid/email/activity/setup/AccountSetupBasics.java
ed651a645cfaeff6b6472677c6fc7621c6faf732 21-Aug-2009 Bob Lee <crazybob@google.com> am dbbd29c8: Updated Email to use shared trust manager instead of initializing its own copy.

Merge commit 'dbbd29c822235d0c4c2ba9bad808ff5d4b86d399' into eclair

* commit 'dbbd29c822235d0c4c2ba9bad808ff5d4b86d399':
Updated Email to use shared trust manager instead of initializing its own copy.
dbbd29c822235d0c4c2ba9bad808ff5d4b86d399 21-Aug-2009 Bob Lee <crazybob@google.com> Updated Email to use shared trust manager instead of initializing its own copy.
ndroid/email/mail/store/TrustManagerFactory.java
6fa76a70a8d01b5acd74ce3feb6940f462bac05e 21-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22125 into eclair

* changes:
Integrate further with the system SyncManager/AccountManager system
03ecce7da8f220e31314bc25ebff96841d24787f 20-Aug-2009 Marc Blank <mblank@google.com> Integrate further with the system SyncManager/AccountManager system

* Look for, and act on, changes to sync settings via SyncManager/AccountManager
* Look for, and act on, deletions from within AccountManager (tested)
ndroid/exchange/SyncManager.java
bcff14acf25d3a999b7448e317604e694c204f47 21-Aug-2009 Andrew Stadler <stadler@android.com> Create setup flow for use by Accounts manager.

* Create a new entry point for the exchange setup flow and switch
EASAuthenticatorService to call it
* Pass "eas flow mode" down through the setup screens
* Slightly modify their behavior as we go (e.g. we skip the
(account type" screen since we know it's EAS.)
* Add a checkbox to "sync contacts from this account" and pass that
value into ExchangeStore when we set up the account.
* Change the flow exit to pop back to the account manager instead of
taking the user to the new inbox.

This CL satisfies cases 1 & 2 of bug # 1974752.
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EasAuthenticatorService.java
a8aedb2f374ef88a433857d78e71c651425bcce0 20-Aug-2009 Marc Blank <mblank@google.com> Add "contacts" option to EasAuthenticator, which determines whether Contacts should be synced

* The state of Contacts syncing can be changed from various places in the UI
* In a future CL, SyncManager will respect this setting
ndroid/email/service/EasAuthenticatorService.java
41f367eddf2f1de32443e8c7eb55c0f50e2e09de 20-Aug-2009 Marc Blank <mblank@google.com> Re-enable Contacts sync (had been turned off)
ndroid/exchange/adapter/FolderSyncParser.java
9d174399ef1e6192a45b2892f7d53156088501b2 20-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22098 into eclair

* changes:
Fix bugs re: sending via EAS
9178dcc9e97f51c5295b0f66105841977c0df950 20-Aug-2009 Marc Blank <mblank@google.com> Fix bugs re: sending via EAS

* Make sure each call to sendMessage returns a proper result code
* Exit outbox sync on irrecoverable errors
ndroid/exchange/EasOutboxService.java
ndroid/exchange/SyncManager.java
4b41bae270ea4c49ec8403084db43ee9b37cdda4 20-Aug-2009 Andrew Stadler <stadler@android.com> Enable IMAP/POP sending and EAS resend

* Finish IMAP/POP sections of Controller.sendMessage
* Rewrite MessagingController.sendPendingMessagesSynchronous
* Add deleteAllAttachmentFiles to AttachmentProvider, and unit test
* Rework sendMessage callbacks and integrate into MessageList UI
* Send pending from UI

TODO:
* Find other places from which to call deleteAllAttachmentFiles
ndroid/email/Controller.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
c0c9c33322deecace00a32766e0a1b355aad4b31 20-Aug-2009 Marc Blank <mblank@google.com> Add URI's that atomically add a value to a particular field (Account or Mailbox)

* Message, etc. could be added, if this had a use case
* Unit test added for both Account and Mailbox cases
* Eclipse changed some parens around; it won't happen again
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/MailService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
d366346a640c93d70b78ddadfbc3a3b74944359b 20-Aug-2009 Marc Blank <mblank@google.com> Implement sendMessageStatus callback in EAS

* Change API for callback to include message subject (when msg is isn't valid)
* Update users of callback to add the new argument
* Use API in EasOutboxService to send status messages back to the UI

Still TODO: Add relevant error codes for sending problems that are not related
to connection or login issues
ndroid/email/Controller.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailServiceCallback.aidl
ndroid/exchange/SyncManager.java
4399ead9f4b240ae67ffd356e0c1c3fea9da4149 20-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 22048 into eclair

* changes:
Add checks to avoid NPE's while stopping services
44144d0301213536b02f2080237b63d8271b2d0b 18-Aug-2009 Mihai Preda <preda@google.com> MessageCompose: initial save attachments and load them back.

- load attachments for EditDraft.
- save attachments when save message.
- unit test for restoreAccountsWithMessageId()
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
d696c6f2dfb10de81213fed283a5514bc7cf2c60 20-Aug-2009 Marc Blank <mblank@google.com> Add checks to avoid NPE's while stopping services
ndroid/exchange/SyncManager.java
03be523b16eb4cc5698ef130ddcd057912b81ac5 20-Aug-2009 Marc Blank <mblank@google.com> Don't run SyncManager unless there are EAS accounts

* Check that there is at least one EAS account before starting SyncManager thread
* Have EasAuthenticatorService ensure that SyncManager has started
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/SyncManager.java
e346193f06c6c3ffd8412ce151109df8b7f45999 20-Aug-2009 Andrew Stadler <stadler@android.com> Add status item to bottom of message list.

* Add code to (optionally) add footer, update text & progress dynamically
* Add hook to dispatch various actions (refresh, load more, etc.)
* Some cleanup of the launch helpers for MessageList

TODO:
* controller handler for the "send messages" case (subsequent CL)
* controller handler for the "more messages" case (subsequent CL)
* reporting of send results etc. into the status line
ndroid/email/Controller.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageList.java
50d935667041cd88278ff8999bf3904fd1efa598 19-Aug-2009 Marc Blank <mblank@google.com> SyncManager now clears error state on Outbox messages before startSync
ndroid/exchange/SyncManager.java
f4d7ddb0c2aba62d3a8c0d4ddbc5d15a4d15e3a3 19-Aug-2009 Marc Blank <mblank@google.com> Fix message sending from EAS (the service wasn't properly set up)

* Cleanup of EasSyncService
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
0d1078363581db8caded06cf94e729e88a88761a 19-Aug-2009 Andrew Stadler <stadler@android.com> Finish loading large IMAP/POP messages

* Handle messages >25k
* When structure is available (e.g. IMAP) pull in the entire body
and the list of attachments
* When structure is not available (e.g. POP) pull in a large chunk of
the body to try and capture the message body at least.
* Implement loadAttachment for IMAP/POP to demand download large items
* Tested with IMAP & POP messages

INCOMPLETE (file bugs):
* implement logic for the old loadMessageForView calls that comes from
MessageView (when you open a message that's partially-loaded)
* Resolve handling of mimetype when attachment info is read (currently
we're assuming base64 in a couple of places)
* delete account => delete attachments
* delete attachment => delete file
* create account => clear existing attachments for acct id
ndroid/email/Controller.java
ndroid/email/GroupMessagingListener.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/Folder.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
6b2d23ad800b9d4ee18d04a822e27892b79750d0 19-Aug-2009 Marc Blank <mblank@google.com> Recognize EAS 12.0 attachments; fixes bug #2065022
ndroid/exchange/adapter/EmailSyncAdapter.java
fc92a6c9d83140df5fc08ac6f157f61e7dbcd018 19-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21777 into eclair

* changes:
Make sure Parser always reads UTF-8 strings
fb67ec958c44fcd46b524cc85d5f8ad3aeb4d2fd 19-Aug-2009 Jeff Hamilton <jham@android.com> Handle null cursors when looking up owner info.
ndroid/email/activity/setup/AccountSetupBasics.java
cbe513d4305893edde60aca645b290f31f7643da 19-Aug-2009 Andrew Stadler <stadler@android.com> Integrate EAS push notifications with the main notifications.

* Use the new account-based field for number of new messages
* Add support for async notifications in MailService
* Change EAS to call MailService to notify user
ndroid/email/activity/MessageList.java
ndroid/email/service/MailService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
87439307ea60b1f52219c6da44a9efb520a9a6bb 18-Aug-2009 Marc Blank <mblank@google.com> Make sure Parser always reads UTF-8 strings
ndroid/exchange/adapter/Parser.java
2cf87e6c3cf64b7bb5dbaa9d656c784707a038d2 18-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21751 into eclair

* changes:
Make sure we log exceptions in FileLogger
a867ebba6233becf2061c80e1c53d7d395a6cffc 18-Aug-2009 Marc Blank <mblank@google.com> Have body database attach just once, and never detach

* Much cleaner implementation
* Prevent errors when various threads collide for attach
ndroid/email/provider/EmailProvider.java
f2113c1dcfa42b8ab8271ac0ea69c62698acdb61 18-Aug-2009 Marc Blank <mblank@google.com> Make sure we log exceptions in FileLogger
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/utility/FileLogger.java
5ecdc1b635395b9506e3fca1a9d34506fa9c37f3 18-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21756 into eclair

* changes:
Add "num new messages" field to Account
4a8c70c09be3914ded18031b4cca5a6d867de0d3 18-Aug-2009 Andrew Stadler <stadler@android.com> Add "num new messages" field to Account

* Reset DB version to "1"
* Added field and support code (save, restore, & parcel)
* Added forgotten mProtocolVersion to parcelable code
* Added unit test for parceling

Also, fixed race condition in SyncManager that was underlocking the
wake locks during tests.
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/SyncManager.java
4c19543c8c79adbdf9532f85c1d28610e87e5c28 17-Aug-2009 Fred Quintana <fredq@google.com> make syncadapter set whether the account is syncable
ndroid/exchange/ContactsSyncAdapterService.java
46d7d7f1b6387d144c3f9e7c987418dc8f55fad4 18-Aug-2009 Andrew Stadler <stadler@android.com> Rework service to use provider accounts and controller.

* Rewrite service logic to select and update one account at a time
* Add checkmail API to Controller, and much rework/cleanup of existing
callback API's
* Rewrite notification posting code
* Rewire connection to MessageList to be opened by notifications, to
cancel notifications, and to reset the "new message" count whenever
an account is viewed.
* Boilerplate cleanup to a lot of activities because they share the
callbacks that have had minor changes.
* Remove old push controls from Store API

In progress:
* To provide notification mechanism for EAS pushed mail
ndroid/email/Controller.java
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/Store.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/MailService.java
ndroid/exchange/adapter/EmailSyncAdapter.java
d1fd72a44e5e56525ebdaac49b0f4bfc79c1bd56 18-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21583 into eclair

* changes:
Add support for syncing the favorite flag to server (EAS 12.0 and up)
cc8d74bd038fa2da2aaf84537c1555457bbf247b 17-Aug-2009 Marc Blank <mblank@google.com> Add support for syncing the favorite flag to server (EAS 12.0 and up)

* Add test for date formatting
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/Tags.java
f82727741980527b8834a383404b6dba028f18b3 18-Aug-2009 satok <satok@google.com> Fix to show icon trash.
ndroid/email/activity/MailboxList.java
347935677923b3825f0e544fed00305700bd8770 18-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21597 into eclair

* changes:
Remove tabs; fix formatting
b486677f9166d6180a88e9cd79ac8f66f24fac19 18-Aug-2009 Marc Blank <mblank@google.com> Have all mailboxes fall back reversibly on ping loop errors
ndroid/exchange/EasSyncService.java
08e69d7023d2f3b3bd78c8b0eb87d9aefb1c28f9 17-Aug-2009 Marc Blank <mblank@google.com> Remove tabs; fix formatting

* Responding to stadler's comments for CL20566
ndroid/exchange/utility/FileLogger.java
576fff2a4509a684dcf2239a5d64eeb3f57918be 17-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21528 into eclair

* changes:
Remove unnecessary @Override from static method
d8cc57c83dae60d6b3b2118de821a66b95deb161 17-Aug-2009 Andrew Stadler <stadler@android.com> Remove unnecessary @Override from static method

You can't really @Override a static method, since there is no object
dispatch. The build system allows it, but Eclipse complains.
ndroid/email/mail/exchange/ExchangeSenderExample.java
8d971dbc9c86873a21aa79dfb955313b1230c74a 17-Aug-2009 Marc Blank <mblank@google.com> Remove inappropriate references to INSTANCE in SyncManager
ndroid/exchange/SyncManager.java
30c4927d27ada20d5b6825ae494707ad596bf45b 17-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21505 into eclair

* changes:
Remove unintentional catch of Exception in SyncManager
0b89d8f5af010ea17f5172bf80bba6930032db5c 17-Aug-2009 Marc Blank <mblank@google.com> Remove unintentional catch of Exception in SyncManager
ndroid/exchange/SyncManager.java
a4bbb7d923a6c9fc6eaa2c920cc4c25ffa03c3cd 17-Aug-2009 Mihai Preda <preda@google.com> email.mail.Sender: fix order of (context, uri) arguments in reflection invocation of SmtpSender.newInstance().

Account creation was not possible because of this.
ndroid/email/mail/Sender.java
ndroid/email/mail/exchange/ExchangeSenderExample.java
9627d014e16235eadf981b9165807dc72a14a383 12-Aug-2009 Mihai Preda <preda@google.com> MessageCompose: update body on save.

- plus unit tests.
- and some attachment refactoring.
- move PROJECTION_ID up to EmailContent.
- add index on messageKey to Attachments and Body tables.
- add missing Columns.ID field in EmailContent.
ndroid/email/Controller.java
ndroid/email/activity/MessageCompose.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/adapter/FolderSyncParser.java
a39992fd7da83197ef5b7bff7d29d6916c2e8adc 17-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21479 into eclair

* changes:
Use custom icons for special mailboxes
55c390fe9399b2e6cd042f0e3dea6c1bc947ef29 17-Aug-2009 satok <satok@google.com> Use custom icons for special mailboxes

BUG: 2051100

TODO: Add trash icons
ndroid/email/activity/MailboxList.java
e829daa29c3d0b3a432c72996c090e8cb712db9a 17-Aug-2009 satok <satok@google.com> Set unread count of summery indox and delete unread and draft summery inboxes

Bug: 2037400
* Delete unread summery inbox
ndroid/email/activity/AccountFolderList.java
724ec1b7da16cfb384e55daa0ad5b6cae8289314 17-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21469 into eclair

* changes:
do not merge: Merged CL 21093 from goog/master to goog/eclair
73fa3562f21216d4870343db9bfb95f75d5cdccb 17-Aug-2009 satok <satok@google.com> do not merge: Merged CL 21093 from goog/master to goog/eclair
ndroid/email/activity/MailboxList.java
c8c68fa76431833e4c9680f2cc1b65187aecd671 17-Aug-2009 Marc Blank <mblank@google.com> Use more appropriate connectivity wait to SyncManager
ndroid/exchange/SyncManager.java
d0254da4e033df3265d9cea9bcbd8b6817e1d625 16-Aug-2009 Fred Quintana <fredq@google.com> do not merge: cherrypicked 7bb05334b3d711ff1d03672b35f89b326acba198 from master branch
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/SyncManager.java
6b52af214c9961d8d11220a851a24928a5b91553 14-Aug-2009 Marc Blank <mblank@google.com> Implement adaptive ping timeout; release wake lock waiting for connectivity

* Remove unused/duplicated classes (e.g. Base64, WbxmlSerializer, etc.)
* Code cleanup in AbstractSyncService, EasSyncService
* Remove last references to HttpURLConnection (using HttpClient now)
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/PingParser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/adapter/Wbxml.java
ndroid/exchange/adapter/WbxmlSerializer.java
ndroid/exchange/utility/Base64.java
ndroid/exchange/utility/QuotedPrintable.java
b35defc76c67262dfc735f6a8637f680dd5e6db3 14-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21216 into eclair

* changes:
Fix EAS debug switches and clean up debug prefs code.
76a211e0d9ac6171ff20e1c3dda7a74692d35b6e 14-Aug-2009 Andrew Stadler <stadler@android.com> Fix EAS debug switches and clean up debug prefs code.
ndroid/email/Email.java
ndroid/email/Preferences.java
ndroid/email/activity/Debug.java
1ba0fd37a158c1477025aa530206fefdc4b3fe5b 13-Aug-2009 Marc Blank <mblank@google.com> Cleanup; delete unused files, change log statements

* Two files were unused and therefore deleted
* userLog was changed to avoid using string concatentation until the logging
decision is made
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/ItemEstimateParser.java
ndroid/exchange/adapter/MoveParser.java
ndroid/exchange/adapter/PingParser.java
b3df38709464e2d13a585bd06ccc766188d26e5c 13-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20621

* changes:
Delete rows that are unused when changes are synced down
c640cbbaf385566e1b6de361b2b23156e10f695d 13-Aug-2009 Andrew Stadler <stadler@android.com> Update SMTP to send from provider messages, and attachments

* Change Sender definition (remove old Message from API) and update
any existing calls through that API
* Rewrite SMTPSender to use provider messages
* Add attachments to RFC822Output
* Minor bugfixes in RFC822Output
* Unit tests
ndroid/email/MessagingController.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/Sender.java
ndroid/email/mail/exchange/ExchangeSenderExample.java
ndroid/email/mail/transport/Rfc822Output.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/exchange/EasOutboxService.java
b37b1b4bfeda936a1de283be6ad805f5f8b3ef55 12-Aug-2009 Marc Blank <mblank@google.com> Stream rfc822 messages to a temporary file, and send using an InputStreamEntity

* Removes the need to store the entire outgoing message in memory
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/utility/Rfc822Formatter.java
8db0babf726afc4018a721aa589a5ab461630948 12-Aug-2009 Marc Blank <mblank@google.com> Separate syncInterval constants for Account and Mailbox to remove confusion
ndroid/email/provider/EmailContent.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/FolderSyncParser.java
02dd41b319ded6b2c607edcd0f7fbb89fdb1c3a7 12-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20819

* changes:
Use new Rfc822Output class for sending mail; fix bug in Rfc822Output
20583edef627c17c11e20c2a91e9fec4ea91efcd 12-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20888

* changes:
Fixes re: CL20440, per stadler's comments
fb7974f5bfb6275fb856b0f7ff386ef10680c83a 03-Aug-2009 Mihai Preda <preda@google.com> Fix SQL for DELETE_ORPHAN_BODIES and DELETE_BODY.

and add unit tests.
ndroid/email/provider/EmailProvider.java
5c3f1f8cb72d25572f18b8ca651eef14047cac42 12-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20718

* changes:
Renew Unread Counts and accounts on Resume See bug 2041204
2374fcb1a0c952206b3104c7a42dd4d1712598b5 11-Aug-2009 satok <satok@google.com> Renew Unread Counts and accounts on Resume See bug 2041204
ndroid/email/activity/AccountFolderList.java
5669d4542d1214ab440dbd34b8cf7d72d1eddc86 29-Jul-2009 satok <satok@google.com> Show the title of MessageList See bug 2029282
ndroid/email/activity/MessageList.java
33bc0bd4a5543dc507cc3906ae8352f0eb4f779d 12-Aug-2009 Marc Blank <mblank@google.com> Fixes re: CL20440, per stadler's comments
ndroid/exchange/adapter/FolderSyncParser.java
4f195e716c1e7d3b0e313a42f260594841e45498 12-Aug-2009 Marc Blank <mblank@google.com> Use new Rfc822Output class for sending mail; fix bug in Rfc822Output

* Change EasOutboxService to use the new Rfc822Output class for sending
* Fix small bug in Rfc822Output (was writing both in Base64 and plain text)
* Fix bug in SyncManager related to auto-starting EAS outbox
ndroid/email/mail/transport/Rfc822Output.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/SyncManager.java
466054d06696cdf5f7f969286f2274ee1b9954cd 12-Aug-2009 Marc Blank <mblank@google.com> Minor changes to ping variables &c
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
22cd410605c594fa14880217c0300ea04036a746 12-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20784

* changes:
Use 5 minute ping time when connected via mobile (prevent NAT timeout)
3f1ac4da947f426775c9546f2e37206f58ce1a6e 12-Aug-2009 Andrew Stadler <stadler@android.com> Add code to handle IMAP/POP attachments.

IMAP messages up to about 25k will be downloaded properly.

* Move Store->Provider message rewrite code to a separate utility.
* Add code to descend a Store message and write provider attachments.
* Unit test basic IMAP attachment handler

TODO:
* handle large IMAP messages.
* unit test for POP
* unit test for large IMAP messages
ndroid/email/Controller.java
ndroid/email/LegacyConversions.java
ndroid/email/MessagingController.java
ndroid/email/provider/AttachmentProvider.java
a5abab243be465697c9924312e375ae813583304 12-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20793

* changes:
An RFC822 streamer for sending provider messages.
a9a0e57436bce15e186bef216564e996ec20ae82 11-Aug-2009 Andrew Stadler <stadler@android.com> An RFC822 streamer for sending provider messages.

* Message headers with proper encoding
* Should handle all non-US encodings properly
* Sends body text only (no HTML planned)

This is implemented but not fully tested - I'm submitting now so Marc
can evaluate & test in EAS environment.

TODO: Unit tests
TODO: Attachments
ndroid/email/mail/Address.java
ndroid/email/mail/transport/Rfc822Output.java
8d8f6918c7a564705b986f38826711c2834d5b0b 11-Aug-2009 Marc Blank <mblank@google.com> Use 5 minute ping time when connected via mobile (prevent NAT timeout)
ndroid/exchange/EasSyncService.java
84cb2bcd59b421a3b515985c0115900ef16ac323 11-Aug-2009 Marc Blank <mblank@google.com> Change PIM fallback sync to 30 mins; try ping again if changes are found
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/AbstractSyncParser.java
72c62e4d336e1fc8fbefe200267cfdce43cabbd8 11-Aug-2009 Marc Blank <mblank@google.com> Make verbose logging less verbose; add exception message to logging
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/Parser.java
bd4d30f5225587364d34de0fa89f418c597f021b 10-Aug-2009 Marc Blank <mblank@google.com> Push fallback per mailbox, rather than for entire account

* Also cleanup code, add comments, remove unused methods
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/Parser.java
9d3f4abd97908b5eec9e9caca8c3599e2915fc9f 10-Aug-2009 Marc Blank <mblank@google.com> Delete rows that are unused when changes are synced down
ndroid/exchange/adapter/ContactsSyncAdapter.java
cc402e42ab70699fb43d23e69a724639b9507738 09-Aug-2009 Marc Blank <mblank@google.com> Clear error states on network reconnect; add temporary notifications; see details

* When we get a network connect broadcast, clear error states so sync can
restart for any boxes in an error state
* Add temporary notification code for the testers
* Add file-based debug logger
* Add Exchange logging to debug screen (adds additional exchange debugging)
* Add Exchange sd card logging to debug screen (logs to sd card)
* Change setLogging service API to send an int rather than a boolean
* Make sure push mailboxes are set up again when account changes to push
* Make sure push mailboxes are set up again when account mailbox starts
* (Fixed contacts sync bug found during debugging these changes)
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/Preferences.java
ndroid/email/activity/Debug.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/PingParser.java
ndroid/exchange/utility/FileLogger.java
71132ff6b7b075547a2d6ff6760b584e79dfc51a 09-Aug-2009 Marc Blank <mblank@google.com> Make small changes as recommended by stadler (for CL9459)
ndroid/exchange/EasSyncService.java
1795efacc540db425d6d232418c2a08d36fb4f99 09-Aug-2009 Marc Blank <mblank@google.com> Use wake locks in running syncs; clean up associated code
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
1e7829fb650f73ec13c1efadf1bc220d4ab19956 08-Aug-2009 Marc Blank <mblank@google.com> Switch from HttpURLConnection to HttpClient
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/Serializer.java
fc579d4477ed3632de0a04678ea490875de85eff 08-Aug-2009 Marc Blank <mblank@google.com> Refactor, cleanup, and fix sync bugs

* Found/fixed major sync bug re: first-time sync (emulator only)
* Moved deviceId code to SyncManager
* Added code to handle some edge cases related to sync errors
ndroid/email/provider/EmailContent.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
b9d6ba11c729d3ae6a59ceae780d9bd54032d6dd 07-Aug-2009 Marc Blank <mblank@google.com> Fix various problems related to synchronization, reload folder list, etc.

* The reloadFolderList service call mustn't reset the account mailbox if the foler
list has never synced
* Be careful to not commit anything after a mailbox has been stopped
* Be careful to synchronize before checking the stopped state of a mailbox
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
9b598924ec1dd53f865a6aa552d40161aeb5dd0b 05-Aug-2009 Marc Blank <mblank@google.com> Try to work around the "ping loop" problem in some Exchange 2003 servers

* First try reloading the folder list; this can sometimes work
* Otherwise, change push to 5 minute sync
* Send notification if we switch to 5 minute sync so there are no surprises
* Added syncStatus column to EmailProvider (can be used for any purpose)
* Use syncStatus to keep track of sync type, result type, and change count;
detect ping loop as consecutive ping's with no changes
* Remove InteractiveSyncService (no longer needed)
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/InteractiveSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/EmailSyncAdapter.java
17d86bb52954369d96643da65fd9a3b057f8435f 06-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20277

* changes:
Initial support for Exchange account creation via AccountManager
06275c4207206e9e14b2f27817e068f53e48eac9 06-Aug-2009 Marc Blank <mblank@google.com> Initial support for Exchange account creation via AccountManager

* Export AccountSetupBasics so that it can be launched by AccountManager
* Update EasAuthenticatorService to return an Intent for AccountSetupBasics
* UI needs to be updated to skip account type screen, change welcome, etc.
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/SyncManager.java
a5af05f1a94ba9d0a91bd6507492cf6946f88a4d 04-Aug-2009 Mihai Preda <preda@google.com> MessageCompose: load body.
- load body for edit-draft, replay, forward.
- fix debug secret code for no-keyboard devices.
- fix CR-LF BUG 1911254.
- fix menu invoke compose from folder with mailboxId < 0.
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/setup/AccountSetupBasics.java
47f1b7a32be835a59232f28ec03c1cb9a9cbbcce 06-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20084

* changes:
Change context menu by mailbox type See bug 1399964 for details.
375f968aa5ff60949fc3d637393cc8bc65d92fb1 05-Aug-2009 satok <satok@google.com> Change context menu by mailbox type See bug 1399964 for details.
ndroid/email/activity/MessageList.java
6d130d6d6d89b9795f035f71d95b6b9072231733 06-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20078

* changes:
Separate out name and address from EAS contact email fields
d65901784abf577f3f3c99f15df5fcc3222d6513 06-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20206

* changes:
Fix EmailProvider so that deletions can occur during batch operations
cba3a48f97ae2e6d875ac4284a4066da94c922d5 06-Aug-2009 Marc Blank <mblank@google.com> Fix EmailProvider so that deletions can occur during batch operations

* Fixes bug #2034170
* Attach the body database during all batch operations
* Change insert, delete, update, and query to use the main database for
all operations during a batch operation; trying to use the body database
while it is attached will result in a SQLiteException (database locked)
ndroid/email/provider/EmailProvider.java
b3ceddb1b1194c45b6ac54463ec1061bbabae207 06-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 20088

* changes:
Don't show mailboxes with flagVisible=0 See bug 1938449 for details.
bbcb150dee730fe1a2f62988d5c6c1b64af3b821 05-Aug-2009 satok <satok@google.com> Don't show mailboxes with flagVisible=0 See bug 1938449 for details.
ndroid/email/activity/MailboxList.java
25c46808c62ebddff1c8f891491d0d658ed076af 05-Aug-2009 Marc Blank <mblank@google.com> Check existence of mWakeLock before releasing it

* Also, unregister connectivity receiver in onDestroy method
ndroid/exchange/SyncManager.java
228d422951400f1ae2a0ccbd8b99853999eedb0d 05-Aug-2009 Marc Blank <mblank@google.com> Separate out name and address from EAS contact email fields

* Use newly created sync adapter column for name portion
* Fix typo in note upload
ndroid/exchange/adapter/ContactsSyncAdapter.java
b4d87dfdd0fc9a43739550d18760598981a92f89 04-Aug-2009 Marc Blank <mblank@google.com> Add support for note and category upload for Contacts

* Also fixed a few random bugs found while debugging
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
b2bd8a8095f7cdfd4ea2a2c560cbb7a86ce3effa 03-Aug-2009 Marc Blank <mblank@google.com> Add support for additional EAS contact fields

* Fix a few misc. bugs found while testing
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncParser.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/ContentParser.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/ItemEstimateParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/Tags.java
e7e999ee951ece53daff5cfc58504a627f065f51 03-Aug-2009 Marc Blank <mblank@google.com> Send OPTIONS less frequently; remove extraneous Log command
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/FolderSyncParser.java
2917e895c7e7c33407a77c76232569d4bd4905cf 29-Jul-2009 Mihai Preda <preda@google.com> MessageCompose:
- set displayName for composed messages (from To:)
- set FLAG_LOADED
- do the save & send in an AsyncTask
- some clean-up
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/activity/MessageCompose.java
b9f513467281c26f3c1ceeace28d662f375cd961 03-Aug-2009 Marc Blank <mblank@google.com> Fix inadvertent submission with debug flag set
ndroid/exchange/Eas.java
6696c26da3a020a553c32cfbff574f8d8c6f6006 03-Aug-2009 Marc Blank <mblank@google.com> Fix bugs related to push & reloading folder list

* Fixed bug #2026451 (updateFolderList isn't interrupting pingLoop)
* Added some logging code related to 'ping' and manual service starts
* Handle exit from stopped sync thread better
* Fixed a bug in ContactsSyncAdapter service in which a cursor didn't
get properly closed.
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
f00dccd32125c727cc18d837b59c15c95f5d78bc 31-Jul-2009 Marc Blank <mblank@google.com> Massive reworking of EAS serialization; much smaller and faster now

* Remove all use of Strings in favor of the parser's static final int's
* Strings remain in Tags for debugging output only
* Renamed lots of classes to be more consistent
* Centralized logging behavior in Eas class
* Found and fixed some bugs in the process:
- Account deletion wasn't removing HostAuth's correctly in the trigger
- Adding a second EAS account was trashing the first one
- Fixed looping sync behavior caused by Exchange 2003 bug
ndroid/email/Controller.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/Eas.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/AbstractSyncAdapter.java
ndroid/exchange/adapter/CalendarSyncAdapter.java
ndroid/exchange/adapter/ContactsSyncAdapter.java
ndroid/exchange/adapter/ContentParser.java
ndroid/exchange/adapter/EasCalendarSyncAdapter.java
ndroid/exchange/adapter/EasContactsSyncAdapter.java
ndroid/exchange/adapter/EasContentParser.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ndroid/exchange/adapter/EasMoveParser.java
ndroid/exchange/adapter/EasOutboxService.java
ndroid/exchange/adapter/EasParser.java
ndroid/exchange/adapter/EasPingParser.java
ndroid/exchange/adapter/EasSerializer.java
ndroid/exchange/adapter/EasSyncAdapter.java
ndroid/exchange/adapter/EasTags.java
ndroid/exchange/adapter/EmailSyncAdapter.java
ndroid/exchange/adapter/FolderSyncParser.java
ndroid/exchange/adapter/MoveParser.java
ndroid/exchange/adapter/Parser.java
ndroid/exchange/adapter/PingParser.java
ndroid/exchange/adapter/Serializer.java
ndroid/exchange/adapter/Tags.java
cc8b35e63102b2982a9e6ea707b7ac0edf518645 31-Jul-2009 Marc Blank <mblank@google.com> Temporarily force updateFolderList to send start/stop callbacks to UI

* Keep this in place until the related bug is resolved
ndroid/exchange/SyncManager.java
77898e14e96feb5d107c4e69b5241169e7425058 31-Jul-2009 Andrew Stadler <stadler@android.com> Enable logging in EAS based on Email.DEBUG flag.
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/activity/Debug.java
59b7da4616799dc2aee33d2ba161425ac0f58b65 31-Jul-2009 Marc Blank <mblank@google.com> Fix 2026451 (folder list update callback not being made)

* Make sure updateFolderList service call stops the account mailbox sync
* Make sure SyncManager is kicked so that it will restart (and thus do
a folder list sync)
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
8f7f93a7b36d873d5adba65f4da54819880c0285 31-Jul-2009 Andrew Stadler <stadler@android.com> Enable account & mailbox sync for exchange

* Now attempts folder list sync for exchange
(goto folder list and click sync)
* Folder sync never seems to call our callback - bug in EAS side?

* Now attempts mailbox sync
(go to an EAS mailbox and click sync)

Also:
* Cleanup start/stop/error path for IMAP/POP as well
* Small bugfix in SyncManager.java (was calling wrong callback)
* No longer trying to set mailbox read/unread count in IMAP/POP
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MailboxList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/exchange/SyncManager.java
5dd01e89a473f87f47199df0e66e8af802b9dc79 31-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 9197

* changes:
Use providers to update the unreadCount of Mailboxes
758a532fce2f672673d38b2daa5f67eb757b118b 30-Jul-2009 Marc Blank <mblank@google.com> Use providers to update the unreadCount of Mailboxes

* Triggers added for insert/delete/update of Message
* update of Mailbox will never set unreadCount
* Removed old test for unread counts and replaced with on
that tests trigger operation.
* Remove Account.updateUnreadCount (deprecated)
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
9f9aaeaa3ad3784beabb104519131957f092e6b0 31-Jul-2009 Andrew Stadler <stadler@android.com> Updates to AccountFolderList

* Switch to custom list item view
* Make the folder button work right
* Add the "Accounts" separator
* Change top text to "Email"
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountFolderListItem.java
85ef72b2cedc372644be2defe35b3d92280f1c13 30-Jul-2009 Marc Blank <mblank@google.com> Add support for the syncMailboxStatus/syncMailboxListStatus callback

* Allows UI to show proper progress indications depending on the status
of a particular mailbox (running, finished, or error state)
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailServiceStatus.java
ndroid/exchange/SyncManager.java
90ed7a4e23c1861b4a0222181aadf780dde76f47 30-Jul-2009 Andrew Stadler <stadler@android.com> Convert AccountFolderList to flat list

TODO: convert item to custom view
TODO: click on folder icon
TODO: mailbox per-type icons (e.g. inbox, outbox)
TODO: separator between two sections
ndroid/email/activity/AccountFolderList.java
948c36f47ac5bb3c47c85cd6269b188a82f458c3 27-Jul-2009 Marc Blank <mblank@google.com> Reimplement EAS contacts sync to work w/ new system facilities

* Modify to work with ContactsProvider2
* Modify to work with system AccountManager
* Modify to work with system SyncManager (for triggering user-change syncs)
* Sync server->client for adds/deletes implemented (CP2 doesn't handle delete yet)
* Sync server->client changes handled efficiently (only write changes)
* Some fields still not handled
* Rewrote most of the CPO code to handle server->client changes
* Sync client->server works for supported fields
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/exchange/ContactsSyncAdapterService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailSyncAlarmReceiver.java
ndroid/exchange/SyncManager.java
ndroid/exchange/UserSyncAlarmReceiver.java
ndroid/exchange/adapter/EasCalendarSyncAdapter.java
ndroid/exchange/adapter/EasContactsSyncAdapter.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ndroid/exchange/adapter/EasSyncAdapter.java
ndroid/exchange/adapter/EasTags.java
9150b3005f98000108cacf5804577743470e9ff9 30-Jul-2009 Andrew Stadler <stadler@android.com> Convert AccountFolderList to fat title bar style.

Also sharing fat title bar layout with MailboxList now.
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
9e5ee4589fb2333ae0a042511453c0ea1b8545b5 30-Jul-2009 Andrew Stadler <stadler@android.com> Create MailboxList for new UI activity.

* Shows mailboxes
* Click to open mailbox (see messages)
* Basic menus
* Fat title bar (appearance)
* Fat title bar (buttons)

Temporary hack to call this from AccountFolderList (when you click the
account groups and "expand" them, you come here instead.)
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MailboxList.java
ea69fc40d75f5fcf38872f836cdea9fb3aa9c991 30-Jul-2009 Andrew Stadler <stadler@android.com> Rework Controller to use new single callback from EAS.

* Use unified callback instead of per-call callbacks
* Remove per-call tag
* Rework MessageView to operate without tag
* Minor cleanups in service side
ndroid/email/Controller.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/IEmailServiceCallback.aidl
183e4a7a8531dabe412660b39013d2dab1cd9587 29-Jul-2009 satok <satok@google.com> Localize special folder name
ndroid/email/activity/AccountFolderList.java
c449cba5101f083d4cef8acd9972bc05598bad44 29-Jul-2009 Marc Blank <mblank@google.com> First pass at implementing new IEmailServiceCallback.

* Add setCallback method to IEmailService interface
* Remove the callback from loadAttachment and loadMore in SyncManager and
EmailServiceProxy
* Remove the callback from PartRequest
* Update EasSyncService to use the saved callback in SyncManager

Note: Unsure how to handle the case in which SyncManager dies, since it
will no longer have the callback available...
ndroid/email/Controller.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/IEmailServiceCallback.aidl
ndroid/exchange/PartRequest.java
ndroid/exchange/SyncManager.java
eeac194150d6f2e4be271d1ddd5238b7bf933f4d 29-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8810

* changes:
initial Controller.sendMessage() and invocation from MessageCompose.
aef3fb963b3ff08a08ccf3b7e5c08fc126aa64f3 29-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8744

* changes:
Show/Hide Account folders dynamically by checking number of messages
fac5dc2d77315fe4e07ff3bb0afdea11dd1bb62b 28-Jul-2009 satok <satok@google.com> Show/Hide Account folders dynamically by checking number of messages
ndroid/email/activity/AccountFolderList.java
334903369e1ea8f032d7ffd67f57f4e7004dc2cf 28-Jul-2009 Mihai Preda <preda@google.com> initial Controller.sendMessage() and invocation from MessageCompose.
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/activity/MessageCompose.java
3e79032dd15b109a81ecb373f7efab39dea040a4 28-Jul-2009 Mihai Preda <preda@google.com> Fix MessageCompose tests.

BUG 2017612.
ndroid/email/activity/MessageCompose.java
67143e568054f0e207b87e48a0746a18a792f540 28-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8646

* changes:
Remove mOldMessage from MessageView.
ff683a5b98eb0cc9c3e18bd022aa00c617b2eae1 27-Jul-2009 Mihai Preda <preda@google.com> Remove mOldMessage from MessageView.

And add Address.unpackFirst() (used in MessageView) + test.
ndroid/email/activity/MessageView.java
ndroid/email/mail/Address.java
274576bb90bbe6adac62dcf099cf2ca0359f6303 28-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8656

* changes:
Load source message in UI in MessageCompose for reply/forward/edit-draft.
a98de7e55e91229c35352b496fad3fbb108a9609 28-Jul-2009 Andrew Stadler <stadler@android.com> Finish Attachment support for EAS accounts.

* Change service API to allow caller to supply complete target path/file
* Also allow caller to supply the final content_uri
* In MessageView, use full integration with EAS service API and
attachments content provider to enable:
* Save: Only works on SD card
* View: Works w/o SD card using content provider & intents
* Thumbnail previews
ndroid/email/Controller.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/PartRequest.java
ndroid/exchange/SyncManager.java
3d25a519abf676f050b546d34401a277aea5de40 28-Jul-2009 Andrew Stadler <stadler@android.com> Convert AttachmentProvider to use new Provider db.

* Rewrite internals to use EmailProvider instead of raw db access
* Minor changes to APIs as necessary (and scattered changes to follow)
* Convert unit tests and check them
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/provider/AttachmentProvider.java
63b2ad5bfb5687a52159362d35fb79a67dc14940 27-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8633

* changes:
Fix UnsupportedOperationException in AccountSetupBasic caused by Account.update() when !isSaved().
0712ce063cf556ef6e2b94b0ef0fb13d6792fe76 27-Jul-2009 Mihai Preda <preda@google.com> Load source message in UI in MessageCompose for reply/forward/edit-draft.

Replace EmailContent.Message with Message.
Remove MessageCompose.mAccountId (mAccount is enough).
ndroid/email/activity/MessageCompose.java
180d69e08546c6498e0e710c5db6c4fe6296001a 27-Jul-2009 Mihai Preda <preda@google.com> Fix UnsupportedOperationException in AccountSetupBasic caused by Account.update() when !isSaved().

Bug 2001896.
Introduced by CL 8158.
ndroid/email/activity/setup/AccountSetupBasics.java
301ac18bb7f211b473c4f6fa6ec9bb276bbc6c10 27-Jul-2009 Andrew Stadler <stadler@android.com> Create tests and improve docs on AttachmentProvider

No change in functionality. Just getting a test infrastructure in place
before rewriting to use new EmailProvider. Provides tests for:

* get type (raw & thumb)
* open file (raw)
* open file (thumb)
* query
* resolveAttachmentIdToContentUri
ndroid/email/provider/AttachmentProvider.java
c7ccb68ba402c867f08d35b33ea151b1672d3a79 24-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8253

* changes:
Modified to display unread count correctly.
41f775bbc731b25854da9f5a80c66a4aa1eb0af9 22-Jul-2009 satok <satok@google.com> Modified to display unread count correctly.
ndroid/email/activity/AccountFolderList.java
ndroid/email/provider/EmailContent.java
b8a781f220617d6e7750c5e9f093742206add45f 24-Jul-2009 Marc Blank <mblank@google.com> Load EAS attachments internally with new API ; re-sync after account changes

* Fix bugs #1993689 and #1997842
* Update test for attachment name creation
ndroid/email/Controller.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/PartRequest.java
ndroid/exchange/SyncManager.java
21ace307e07cb4c363c4183f4d62f4049f5d92fd 17-Jul-2009 Mihai Preda <preda@google.com> Clean-up in MessageCompose, using EmailContent.Message.

Difficulties:
re-enable EmailHtmlUtil.resolveInlineImage() and
MessageCompose.loadAttachments() that operate on MIME parts.
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/Address.java
ndroid/email/mail/internet/EmailHtmlUtil.java
852974bc0b983390f560073ffb9bb80cd22a24a8 24-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8306

* changes:
update the permissions for the AccountManagerService
7375d950e4c71a3ab2c8c726b7641c825fb92efc 24-Jul-2009 Marc Blank <mblank@google.com> Move to single EmailContent file; fix bug #1998157
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailContent.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailContent.java
ndroid/exchange/InteractiveSyncService.java
ndroid/exchange/PartRequest.java
ndroid/exchange/SyncManager.java
ndroid/exchange/UserSyncAlarmReceiver.java
ndroid/exchange/adapter/EasCalendarSyncAdapter.java
ndroid/exchange/adapter/EasContactsSyncAdapter.java
ndroid/exchange/adapter/EasContentParser.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ndroid/exchange/adapter/EasMoveParser.java
ndroid/exchange/adapter/EasOutboxService.java
ndroid/exchange/adapter/EasSyncAdapter.java
ndroid/exchange/utility/Rfc822Formatter.java
ee37898bcb1c36c9a840af8f3801bf366649f820 23-Jul-2009 Fred Quintana <fredq@google.com> update the permissions for the AccountManagerService
ndroid/email/service/EasAuthenticatorService.java
6ae38e4a3937898c5d3fec11a9dc2fb4bab8eab6 23-Jul-2009 Andrew Stadler <stadler@android.com> Moving message operations into Controller, and load attachments.

* Moved logic into Controller:
* toggling read/unread
* toggling favorite status
* some new unit tests
* load attachment
* Completed logic for EAS to save attachments and MessageView to
begin and complete that process.

NOTE: Until EAS has a mode for saving the attachment locally (and I
rewrite the attachmentprovider to handle the new database) I am
implementing "view" attachment to just call "save". This means that
attachments "viewed" will be dropped onto the SD card, instead of
cached and flushed.

TODO: Controller is not properly working in its own thread, yet, so
we are not properly preventing ANR's yet.
ndroid/email/Controller.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
ndroid/exchange/EasSyncService.java
531ae9d25f4310e4774e136ed74ed9749f940861 23-Jul-2009 Marc Blank <mblank@google.com> Fix bug #1997284 re: single default account

* Fixed the bug and uncommented the relevant tests in ProviderTests
ndroid/email/provider/EmailContent.java
ndroid/exchange/EmailContent.java
9e2c6bd5f21f2d19eef7ebfe30e6fdf94ede0857 23-Jul-2009 Andrew Stadler <stadler@android.com> Remove saveOrUpdate from EmailContent to prevent stale writes

* Numerous classes modified to deal with this change
* Fixes bugs 1993292 and 1994671
* Renamed various setter and getter methods to reflect the underlying
field names
* Renamed syncFrequency to syncInterval in Account and Mailbox
* Convenience method added to AccountSettings to save only user settings
* Calls to content.update(context, content.toContentValues()), which save
all fields, should be double-checked for correctness, making sure that
content has current data and will not conflict with other threads that
might modify that data
* Ran all unit tests to confirm proper function

NOTE: The logic to enforce single default account no longer works,
because that logic is in Account.save() and does not run via
Account.update(). I have patched out a small section of the relevant unit
test and will file a bug to come back for this fix.
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSettingsUtils.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/MailService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailContent.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasContentParser.java
ndroid/exchange/adapter/EasFolderSyncParser.java
54c1f2bf9a6574240b7c9af253f83a2b566442ab 22-Jul-2009 Andrew Stadler <stadler@android.com> Improvements to default account handling

* Remove all references to Account.mIsDefault, which was not the right
way to find the default account (it is lazy initialized)
* Change Account.getDefaultAccount to getDefaultAccountId, which is more
efficient and suitable in most uses.
* Wrote unit tests for provider default account handling

This should resolve bug 1983390 as well as a few other issues with default
account management.
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/provider/EmailContent.java
986a3b5f0332c906b22fdd45ff5cd4da5e540db9 21-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8002

* changes:
Prevent EAS startup race condition while debugging
eda017627e7234fb8c7d0fa4cc41557bb2bf796a 21-Jul-2009 Marc Blank <mblank@google.com> Prevent EAS startup race condition while debugging

* Make sure that mAccount and mMailbox are up-to-date at all sync starts
* Prevent duplication of mailboxes in schema, since it's always wrong
* Add a service call to enable/disable logging in EAS
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasFolderSyncParser.java
4e4abc645ce05d6ea009bb19df834911c821fafb 21-Jul-2009 Andrew Stadler <stadler@android.com> Clean up launch-time & account setup behaviors.

* Moved welcome message into account setup basics (name/pass)
* Reworked Welcome to go to AccountSetupBasics on count=0
* In AccountFolderList, removed old welcome message code, and add
code to launch AccountSetupBasics when last account is deleted
* Fixed shortcut picker so launcher shortcuts work again
* Reimplemented shortcut receiver (in MessageList now)
* Default EAS accounts to SSL

Addresses bug 1916583 & 1987440
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupAccountType.java
28fc7799cee83a1de5b7257e4d89c28e8fce89bc 21-Jul-2009 Marc Blank <mblank@google.com> Add support for the flag (favorite) property in EAS 12; cleanup

* Support flag property in Exchange 2007 (EAS 12)
* Support startSync/stopSync/reloadFolderList in EAS service
* Cleanup files a little bit
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
5790d1458fc9f4c3e32a985827f3b3e942a356c9 20-Jul-2009 Marc Blank <mblank@google.com> Work on EmailService calls, attachment loading, etc.

* Stubbed in attachment loading in MessageView for EAS messages
* Modified MessageView.Listener to implement IEmailServiceCallback
for testing callback functionality
* Rewrote EmailServiceProxy entirely
* Simplified loadAttachment service call
ndroid/email/activity/MessageView.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailServiceStatus.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/IEmailServiceCallback.aidl
ndroid/exchange/PartRequest.java
ndroid/exchange/SyncManager.java
53093871c492d03947c494f17e2463b27345e083 18-Jul-2009 Marc Blank <mblank@google.com> Changes to EAS: attachments, HTML text, and sending mail (without atts)

* Added HTML support for Exchange 2007 and later
* Modified MessageView to show HTML parts of body (if present)
* Replace some unused convenience methods in Body to be ones that are more
useful (i.e. retrive body for a given message id)
* Made EAS sending operational
* Updated SyncManager to recognize the creation of new messages and check
for work to be done (i.e. starting Outbox sync)
* Modified MessageView to remove EmailContent.X references
* Also changed the pattern EmailContent.getContent(cursor, class) to the better
new ClassName().restore(cursor)
* Add a test of the utility to determine mime type from file name (since
EAS doesn't provide this with attachment header information)
* Fixed bug in ProviderTestUtils in which the base (EmailContent) fields weren't
being checked for equality in the various subclass equality testers. Fixed a
bug in saving emails that was caught by fixing this bug.
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailContent.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ndroid/exchange/adapter/EasOutboxService.java
ndroid/exchange/adapter/EasTags.java
ndroid/exchange/utility/Rfc822Formatter.java
d10ffd33de362c7dde4f953b749e1310238f9913 18-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 7780

* changes:
resolved conflicts for Email MessagingController null check from donut to master
7e91c121bb89928ed13ec7550f381e9c7af4bb9e 18-Jul-2009 Andrew Stadler <stadler@android.com> Enable listing attachments in MessageView

* Rename internal helper class from Attachment to AttachmentInfo
* After message loads, query for Attachments
* Play back cursor adding attachments
* Commented out almost everything else related to loading or opening them
ndroid/email/activity/MessageView.java
035ce8bcd1041d4402ee6e567b25e97c3d7915ef 18-Jul-2009 Brett Chabot <brettchabot@google.com> resolved conflicts for Email MessagingController null check from donut to master
8a3b8992f9b0e6f3d4e20aece74ec72523fa5da4 17-Jul-2009 Brett Chabot <brettchabot@google.com> Add null check when initializing email messaging controller visible limits.

This is to fix the NPE that would often occur during test runs. I believe the
root cause is mock accounts would be created by some email unit tests that did
not have values for all fields. Before these accounts were deleted, the main
email thread would try to access them and blow up with a NPE.
ndroid/email/MessagingController.java
4119218e2fd64341ac946fb8f2cbdb796a444cb8 17-Jul-2009 Andrew Stadler <stadler@android.com> Add support for get-attachments-by-message-id

* clean up provider URI's in this area
* minor bugfix in EmailContent, and add auto-writeback of messageId into
saved attachments
* clean up existing attachment unit tests
* add new tests
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
d4c18546fb7f97d51110155a8fac14f98667dd47 16-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 7580

* changes:
Eliminate Config.LOGV (deprecated, always false). Add Email.LOGD as a development log guard.
f33986d5cc248d2eeed0707143d81e94866f8e3a 16-Jul-2009 Mihai Preda <preda@google.com> Eliminate Config.LOGV (deprecated, always false).
Add Email.LOGD as a development log guard.
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/Preferences.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/EmailProvider.java
0dba37ec51ae2932271dbf13c51f32fb819f2527 16-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 7552

* changes:
Fix push bug, minor changes to logging and removal of debug code
6a6d67edded552c48640c8feb395bbbbf8a1cd73 16-Jul-2009 Marc Blank <mblank@google.com> Fix push bug, minor changes to logging and removal of debug code
ndroid/email/mail/store/ExchangeStore.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasContactsSyncAdapter.java
ndroid/exchange/adapter/EasContentParser.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ndroid/exchange/adapter/EasPingParser.java
3c27c654261ab97dc157315ad9e91d911773eb0d 16-Jul-2009 Andrew Stadler <stadler@android.com> Small cleanups to POP/IMAP sync.

* Close after sync, so next sync will open and update message count.
ndroid/email/MessagingController.java
976f92908dd2f69f21f62690632ff24b08d9f5d3 16-Jul-2009 Marc Blank <mblank@google.com> Add support for attachments in EmailProvider and (preliminary) EAS

* EmailProvider now saves Attachment records atomically with Message (and Body,
of course) if an ArrayList is stored in mAttachments
* Update EAS code to support attachment discovery
* Update EAS code to support attachment download via service API (preliminary)
* Add test for atomic attachment save
* Add test for unique file creation (external)
ndroid/email/provider/EmailContent.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailContent.java
ndroid/exchange/PartRequest.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
c5f783f022d4ea185bd4422a132188fd754a6463 15-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 6675

* changes:
First steps towards using the new EmailContent.Message in MessageCompose.
f2fdd899ef28b0cf95256a7274d19719e0e27488 15-Jul-2009 Andrew Stadler <stadler@android.com> Clean up new account creation & initial sync.

* Give MessageList the ability to do a folder scan (from server)
in order to "find" the inbox after account creation.
* Don't show messages that haven't even been partially downloaded yet
(reduces flicker during POP initial sync)
* Move some folder lookup code (in MessageList) out of UI thread
* Restore simple color chip code so multiple accounts look good
in MessageList
ndroid/email/MessagingController.java
ndroid/email/activity/MessageList.java
c6893ddf0fc1a647ca13a2b3aac2c68ca345de37 09-Jul-2009 Mihai Preda <preda@google.com> First steps towards using the new EmailContent.Message in MessageCompose.
ndroid/email/Controller.java
ndroid/email/Email.java
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/Address.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
16470fc7db3c712bccd096dca060e174525d5303 15-Jul-2009 Marc Blank <mblank@google.com> Fix bugs related to EAS upsync and the cleanup afterward.
ndroid/exchange/EasSyncService.java
ndroid/exchange/adapter/EasCalendarSyncAdapter.java
ndroid/exchange/adapter/EasContactsSyncAdapter.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasSyncAdapter.java
6b158f715b2ab6b2f35e894857446023f1d8be88 14-Jul-2009 Marc Blank <mblank@google.com> Handle UI delete in EAS where the message is moved to trash

* Check for the folder of updated messages, and delete those now in trash
* Created convenience method for finding a mailbox of a particular type in
an account (helpful for finding, say, an Inbox or Trash for a given account
* Fix deleted/updated message table so that the _id column is defined to be
unique (to prevent duplicate change records from being written)
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/EmailContent.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
316bb44e1a2478a675bcb832d55c5337bfc4bfb9 14-Jul-2009 Marc Blank <mblank@google.com> Use MatrixCursor instead of (internal) ArrayListCursor
ndroid/email/activity/AccountFolderList.java
2999db7866a33b39ddafb69f20c869ff5638734c 14-Jul-2009 Andrew Stadler <stadler@android.com> Add Summary Section to AccountFolderList ("at a glance")

* Wrap group cursor in a MergeCursor to insert 1st row
* Clean up a few loose ends (e.g. no longpress on summary row)
* Implement the summaries child cursor
* Add special queries to MessageList for Inbox, Unread, Favorites

There are *a lot* of TODO's in this checkin; I just wanted to get some
basic UI up and running so we could start to explore issues created by
the new configuration. A lightweight sampling:
* Aggregrate filters (e.g. all inboxes) need to be handled in the
provider, instead of with the current two-query hack.
* We'll need a lot of UI cleanup, e.g. different contextual menus
* We'll need to generalize some of the code in order to more easily
support repeating the same compound queries - e.g. MessageView actually
needs the same query in order to enable the next/prev buttons.
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/MessageList.java
17250429db16553b59d5df5e358f71406dd2b322 07-Jul-2009 Andrew Stadler <stadler@android.com> Various EAS related changes related to accounts and services.

* Renamed ISyncManager/ISyncManagerCallback to IEmailService/IEmailServiceCallback
* Restored ExchangeTransportExample to its original state; created ExchangeStore to
handle validation functionality instead; updated stores.xml to reflect these changes.
* Add support for AccountManager in EAS code (this is necessary for the contacts and
calendar providers to work with syncable data); created EasAuthenticatorService to
as our authenticator, which required adding authenticator.xml and modifying the
manifest to register our service with AccountManager metadata
* Created EmailServiceProxy as a convenience for the UI in calling into the EAS
service; created EmailServiceStatus class for status codes in callbacks.
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageListItem.java
ndroid/email/mail/exchange/ExchangeTransportExample.java
ndroid/email/mail/store/ExchangeStore.java
ndroid/email/service/EasAuthenticatorService.java
ndroid/email/service/EmailServiceProxy.java
ndroid/exchange/Eas.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EmailServiceStatus.java
ndroid/exchange/IEmailService.aidl
ndroid/exchange/IEmailServiceCallback.aidl
ndroid/exchange/ISyncManager.aidl
ndroid/exchange/ISyncManagerCallback.aidl
ndroid/exchange/InteractiveSyncService.java
ndroid/exchange/SyncManager.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ded3c915d88a5ee2d143b75cbf5718dae92a2f1c 11-Jul-2009 Andrew Stadler <stadler@android.com> Add folders to AccountFolderList

* Scan folders and write into child cursors
* Clicking a folder takes you to MessageList
* Remove most links to FolderMessageList (nearly dead!)
* Repair 1-account startup behavior (takes you directly to inbox)
* Cleanup a few basic things like context menus & refresh

TODO: Magic mailbox section at the top
TODO: As always, better linkage to sync engine(s)
TODO: Menus, context menus, etc.
TODO: Proper handling of expandable list - accounts should stay open?
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/service/MailService.java
72dce733900a812cf11a5ac08756362030556849 09-Jul-2009 Andrew Stadler <stadler@android.com> Convert Accounts to AccountFolderList

* Move relevant sources & resources to new name
* Convert from ListView to ExpandableListView
* No children yet - selecting account simply jumps to FML (temp)
* No other change to functionality (e.g. no menu changes yet)
ndroid/email/activity/AccountFolderList.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/Welcome.java
ndroid/email/service/MailService.java
b55bfc96f402ce31bcc3c9102c10f7cafc1cf125 09-Jul-2009 Andrew Stadler <stadler@android.com> Enable multi-selection actions

* Toggle small pane with multi-select action buttons
* Implement multi-read/unread
* Implement multi-favorites (stars)
* Implement multi-delete

TODO: menu items when there are selected items
ndroid/email/activity/MessageList.java
e8d58c01ec3f5f783bbca6841d95ca44570c6fd9 08-Jul-2009 Mihai Preda <preda@google.com> Implement efficient Address pack/unpack and unit-test it.

Also unit-test legacy pack/unpack.
ndroid/email/mail/Address.java
432d1ec3ed54cd2f627fd79b5fe7b64341fa273a 07-Jul-2009 Andrew Stadler <stadler@android.com> Add custom item view to MessageList

* Stores per-message metadata
* Fix a number of todo's in MessageList
* Clicking on checkbox toggles state, updates checked list
* clicking on star toggles favorite state

To do: When one or more messages are checked, we should slide in a
panel with action buttons.
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageListItem.java
a396a9bf1492febcb90c89faf1c0528a94bf5eaa 07-Jul-2009 Andrew Stadler <stadler@android.com> Minor cleanups (layout only)
ndroid/email/activity/MessageList.java
5e444dd79408a92402830639bbc9d103c2bed397 07-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 5793

* changes:
Major refactor and cleanup of EAS code
b6493a07ef625c0e290890c2e60256b47a066e5e 05-Jul-2009 Marc Blank <mblank@google.com> Major refactor and cleanup of EAS code

* Rewrote push logic to encompass multiple folders (i.e. calendar/contacts)
* Change inbox from push frequency to ping frequency after initial sync
* Implement upsync logic for email (i.e. sending changes to the server)
* Did cleanup of some files (there's still some to do) re: format, style
* Initial one-way sync of Contacts data - add and delete are implemented
* Created adapter package for all parts of the EAS adapter
* Created utility package for utility code that will eventually be merged
with code in the Email application (Base64, QuotedPrintable, etc.)
* SyncManager/AbstractSyncService can be used in the future for other
protocols, especially IMAP push
ndroid/email/activity/MessageList.java
ndroid/email/mail/MessagingException.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/exchange/AbstractSyncService.java
ndroid/exchange/Base64.java
ndroid/exchange/Eas.java
ndroid/exchange/EasEmailSyncParser.java
ndroid/exchange/EasException.java
ndroid/exchange/EasFolderSyncParser.java
ndroid/exchange/EasMoveParser.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasParser.java
ndroid/exchange/EasParserException.java
ndroid/exchange/EasPingService.java
ndroid/exchange/EasService.java
ndroid/exchange/EasSyncService.java
ndroid/exchange/EasTags.java
ndroid/exchange/EmailContent.java
ndroid/exchange/EodException.java
ndroid/exchange/EofException.java
ndroid/exchange/InteractiveSyncService.java
ndroid/exchange/KeepAliveReceiver.java
ndroid/exchange/MailboxAlarmReceiver.java
ndroid/exchange/ProtocolService.java
ndroid/exchange/QuotedPrintable.java
ndroid/exchange/Rfc822Formatter.java
ndroid/exchange/StaleFolderListException.java
ndroid/exchange/SyncManager.java
ndroid/exchange/UserSyncAlarmReceiver.java
ndroid/exchange/Wbxml.java
ndroid/exchange/WbxmlSerializer.java
ndroid/exchange/adapter/EasCalendarSyncAdapter.java
ndroid/exchange/adapter/EasContactsSyncAdapter.java
ndroid/exchange/adapter/EasContentParser.java
ndroid/exchange/adapter/EasEmailSyncAdapter.java
ndroid/exchange/adapter/EasFolderSyncParser.java
ndroid/exchange/adapter/EasMoveParser.java
ndroid/exchange/adapter/EasOutboxService.java
ndroid/exchange/adapter/EasParser.java
ndroid/exchange/adapter/EasPingParser.java
ndroid/exchange/adapter/EasSerializer.java
ndroid/exchange/adapter/EasSyncAdapter.java
ndroid/exchange/adapter/EasTags.java
ndroid/exchange/adapter/Wbxml.java
ndroid/exchange/adapter/WbxmlSerializer.java
ndroid/exchange/utility/Base64.java
ndroid/exchange/utility/QuotedPrintable.java
ndroid/exchange/utility/Rfc822Formatter.java
61e6ff4521dd872db42f7920322b19aa54d9e3e2 07-Jul-2009 Andrew Stadler <stadler@android.com> Fixed minor typo in MessageView
ndroid/email/activity/MessageView.java
7c3cca80a0b4dacb7bcb48c65a9999138b5df82b 06-Jul-2009 Andrew Stadler <stadler@android.com> Reenable delete-message UI and write delete-from-provider.

* Longpress delete in MessageList
* Delete or Menu-Delete in MessageView
* Add deleteMessage() to Controller
* Unit tests for the new code in Controller
ndroid/email/Controller.java
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
45f9dd22e1141b531c564f11cb40b54adb82f848 02-Jul-2009 Andrew Stadler <stadler@android.com> Fix bug in GroupMessagingListener and add unit tests
ndroid/email/GroupMessagingListener.java
bb0f962dbbc65b97fea0dd009cac34b0561f7346 02-Jul-2009 Andrew Stadler <stadler@android.com> Enable message read/unread toggling

* Automatically marked read when entering MessageView
* Marked unread via menu selected during MessageView
* Provider updated (directly - see note)
* Enable context menu in MessageList and enable "open" & toggle unread

NOTE: Does not use the correct service notifications yet; Just updates
the providers.

NOTE: The UI for the context menu is incomplete, it says "mark as read"
but it actually toggles the state. The true UI is to flip the text to
match the current state e.g. "mark as read" or "mark as unread". That
will be much simpler to implement when we switch to a custom list item
view class, where we can cache the read/unread state (and other tidbits).
ndroid/email/activity/MessageList.java
ndroid/email/activity/MessageView.java
48c8cc34b7c9eb25528b9bc17e60273ffa267db6 01-Jul-2009 Andrew Stadler <stadler@android.com> Add "favorite" star to MessageView

* Shown next to subject (non-final layout)
* Value taken from provider data
* Tapping star toggles state
* State writes back to provider

NOTE: I am currently doing the provider writeback via direct provider
calls (using the synced-message URI) but not doing it with a service call,
so at this point there is no triggering of any server-side update.
However a sync engine might "discover" the change.

NOTE: I made a global change of "mMessage" to "mOldMessage" because
there is still a lot of legacy code in MessageView and I wanted to clearly
demarcate the code that still needs to be redone.
ndroid/email/activity/MessageView.java
7c3de934291814095908cfdd6816a98f89a43096 01-Jul-2009 Andrew Stadler <stadler@android.com> Add attachments, favorites, and selections to MessageList.

* Attachment icon is displayed when message.mAttachment != 0
* Favorite icon is set/cleared from message but not clickable
* Selection icon is not clickable

Further progress requires implementing a custom child view which can
handle sub-clicks properly.
ndroid/email/activity/MessageList.java
4765472db80caafae0907d92ff057ddc4b54c9ea 01-Jul-2009 Andrew Stadler <stadler@android.com> Add MessageList activity

* Add MessageList Activity class and Manifest entry
* Add appropriate layouts, views, etc.
* Wire into FolderMessageList

Lots to do, but this gives us a useable screen.
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageList.java
b7e954bba6539141d24efdb0a0091962e5002ba0 27-Jun-2009 Mihai Preda <preda@google.com> Fix ConcurrentModificationException in MessagingController.

The exception was caused by removing from the HashSet (in Controller.java)
while iterating over it. The locking offered no protection in that case.

Extracted the notification of listeners (MessagingListener) in separate class
to simplify reimplementation.

Got rid of a couple of generic catch(Exception) that were hiding surprises.
ndroid/email/GroupMessagingListener.java
ndroid/email/MessagingController.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/mail/StoreSynchronizer.java
ddc871d9eddd088c0200a30dbfeb24812a81cf80 30-Jun-2009 Andrew Stadler <stadler@android.com> Fixed a few EmailProvider omissions; added tests

* EmailProvider query wasn't handling queries for deleted messages
* EmailProvider wasn't catching exceptions on some 'drop table' ops
* Added tests of synced messages (delete and update)
ndroid/email/provider/EmailProvider.java
2ed5063274db05afb05b0bf421b57b1ffdbb5ad3 30-Jun-2009 Takaoka G. Tadashi <takaoka@google.com> am 4f23ebd3: Fixed Pop3Store to be able to delete message in Inbox.

Merge commit '4f23ebd3dcca596533a33e6faedb446a814d32e3'

* commit '4f23ebd3dcca596533a33e6faedb446a814d32e3':
Fixed Pop3Store to be able to delete message in Inbox.
73018c31d6b8ea636f371025f1c26670437c1129 28-Jun-2009 Marc Blank <mblank@google.com> Add new mailbox types for use by EAS
ndroid/email/provider/EmailContent.java
f374304e92cc6c27ce1a59242d4b9ff02a9cbb14 27-Jun-2009 Marc Blank <mblank@google.com> Add support for sync related provider operations

There is now a deleted table as well as an updated table for Messages,
and some new URIs that are well documented in EmailProvider
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
4f23ebd3dcca596533a33e6faedb446a814d32e3 25-Jun-2009 Takaoka G. Tadashi <takaoka@google.com> Fixed Pop3Store to be able to delete message in Inbox.

When delete policy is DELETE_POLICY_ON_DELETE, PENDING_COMMAND_TRASH
will be invoked. But in POP3 account, because of 1) Inbox is
OpenMode.READ_ONLY, 2) getMessage(uid) just after open() is not work
correctly, 3) remote Inbox folder is not closed after deleting message,
PENDING_COMMAND_TRASH does not work. And also the fat that some POP3
server use UID with '-' prevents PENDING_COMMAND_TRASH to recognize
the message is remote message.

Internal Bug: 1651709
ndroid/email/MessagingController.java
ndroid/email/mail/store/Pop3Store.java
7143d969dde180b7a44bdc42ade6ca2878d0760d 25-Jun-2009 Andrew Stadler <stadler@android.com> Add unit tests for Provider and fix bugs that were found

Uses a mock provider to avoid touching production databases.
Includes utilities for creating accounts, mailboxes, and messages.
Tests basic object creation & readback, object deletion, and some
forms of hierarchical deletion. Has many TODO notes for additional
tests to be written.

In EmailContent, found & fixed a few fields that weren't being written to
the database properly.
ndroid/email/provider/EmailContent.java
c3905eccddaf340b621da6ea2ce82bb3c4296fff 25-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 4842

* changes:
Don't drop invalid addresses while editing & check that all addresses are valid before send.
ed0e683d86d27aecb39347b1749b5c572594ba6c 20-Jun-2009 Mihai Preda <preda@google.com> Don't drop invalid addresses while editing & check that all addresses are valid before send.

BUG: 1542391
add unit tests.
ndroid/email/activity/AddressTextView.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/mail/Address.java
5f4dbd64389cd6540a93cde1daed304bf9392a01 24-Jun-2009 Andrew Stadler <stadler@android.com> Attempt to download small messages, and POP messages.

POP doesn't supply headers in the ENVELOPE phase, so we have to
explicitly ask for, download, copy, and save small message bodies.

Fix bug in EmailProvider (it was not always detaching the body db),
leaving the DB locked in some situations.

Problems outstanding:
* POP messages are committed before they have headers, which leads
to blank entries in the UI. It might be worth tagging them and
selecting them out until they're ready to display.
* Inefficient because we're reloading the message from the provider on
each pass, instead of hanging onto it and updating it.
* Not marking "complete" yet because we aren't handling attachments
or inline images yet. So we keep on reloadin'.
ndroid/email/MessagingController.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
1cdb4077d9b02075140a09083f6cdc0324e880cb 24-Jun-2009 Marc Blank <mblank@google.com> Only sync EAS mailboxes
ndroid/exchange/SyncManager.java
09d13e6295310deaf7697592b3d9867ae66c9b80 24-Jun-2009 Marc Blank <mblank@google.com> Clean up Exchange code

Clean up imports to point to the com.android.exchange version of EmailContent
Clean up some line wrapping
Update EmailContent with latest version from Email project
ndroid/exchange/EasEmailSyncParser.java
ndroid/exchange/EasFolderSyncParser.java
ndroid/exchange/EasMoveParser.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasPingService.java
ndroid/exchange/EasService.java
ndroid/exchange/EmailContent.java
ndroid/exchange/ProtocolService.java
ndroid/exchange/Rfc822Formatter.java
ndroid/exchange/SyncManager.java
2c67f1f8b869454ed24c0ac3c813aca26d2f3978 16-Jun-2009 Marc Blank <mblank@google.com> Initial submission for EAS support (email)

* There is some temporary code ensuring that SyncManager runs (this will be removed when Exchange
is entirely independent)
* The service interface (aidl) is in place for most user-facing actions (load more, start sync, etc.)
* EAS account validation is done via aidl
* Folder and message sync appear to be functional in this early submission
* Provider now does cascading deletes (Account -> HostAuth and Mailbox, Mailbox -> Message,
Message -> Attachment and Body)
ndroid/email/activity/Welcome.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/exchange/ExchangeTransportExample.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/service/BootReceiver.java
ndroid/exchange/Base64.java
ndroid/exchange/EasEmailSyncParser.java
ndroid/exchange/EasFolderSyncParser.java
ndroid/exchange/EasMoveParser.java
ndroid/exchange/EasOutboxService.java
ndroid/exchange/EasParser.java
ndroid/exchange/EasParserException.java
ndroid/exchange/EasPingService.java
ndroid/exchange/EasService.java
ndroid/exchange/EasTags.java
ndroid/exchange/EmailContent.aidl
ndroid/exchange/EmailContent.java
ndroid/exchange/EodException.java
ndroid/exchange/EofException.java
ndroid/exchange/ISyncManager.aidl
ndroid/exchange/ISyncManagerCallback.aidl
ndroid/exchange/KeepAliveReceiver.java
ndroid/exchange/MockParserStream.java
ndroid/exchange/PartRequest.java
ndroid/exchange/ProtocolService.java
ndroid/exchange/QuotedPrintable.java
ndroid/exchange/Rfc822Formatter.java
ndroid/exchange/SyncManager.java
ndroid/exchange/Wbxml.java
ndroid/exchange/WbxmlSerializer.java
553603337ae985e59f54784be441671db7b849d6 23-Jun-2009 Andrew Stadler <stadler@android.com> Quick cleanups of FolderMessageList and MessageView

Show date/time properly
Unpack from, to, cc, bcc
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageView.java
7b0b463477ef7172bd4b9e19c6338634ebedd8ee 23-Jun-2009 Andrew Stadler <stadler@android.com> List messages from MessagingController & Stores.

* update MessageListener callbacks and remove the callbacks that
edit data (this comes through the provider now).
* provide simple linkage via Controller to sync a mailbox
* update FolderMessageList to trigger mailbox sync
* rewrite synchronize to push messages into provider
* small improvements to FML (sorting; show read/unread status)
* note: trailing whitespace cleanup in some files
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/provider/EmailContent.java
ndroid/email/service/MailService.java
33e176f4919569a9444d641e94034785c10c5562 21-Jun-2009 Marc Blank <mblank@google.com> Remove the bodyId column in the message base for consistency

Foreign keys belong in the child, not the parent, as is done with other
EmailContent classes. Therefore, Body has a messageKey, and Message has
no bodyKey.

Updated MessageView to use the proper query for retrieving a message body.
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
07871c4ce74f249a42c548f1e656ea14d3409ba1 22-Jun-2009 Andrew Stadler <stadler@android.com> Clean up code to delete account & delete mailbox.

Delete account was already written but needed to be cleaned out (and
removed vestiges of LocalStore code as well.)

Delete mailbox required some new code in listFolders. This happens
every time we refresh an account.
ndroid/email/MessagingController.java
ndroid/email/activity/Accounts.java
6c5460886f83d098ccc8a3f04e46cf0035cc9962 18-Jun-2009 Mihai Preda <preda@google.com> am a4926736: Review Email tests annotations (small/medium/large) and change some annotations based on time.

Merge commit 'a492673609111fe8c41ae152d62547b267346502'

* commit 'a492673609111fe8c41ae152d62547b267346502':
Review Email tests annotations (small/medium/large) and change some annotations based on time.
a492673609111fe8c41ae152d62547b267346502 18-Jun-2009 Mihai Preda <preda@google.com> Review Email tests annotations (small/medium/large) and change some annotations based on time.

Fix an NPE appearing when running the test suite.

BUG: 1566281, 1910409.
ndroid/email/mail/Store.java
bcec088320fc56cd5b5e1bbc706e4b7e304b95bf 18-Jun-2009 Andrew Stadler <stadler@android.com> Begin implementation of new master controller

The first thing we'll implement is a function to list remote folders,
and it will call the existing MessagingController to do that for IMAP
and POP3.

Also change default folder type # order to get desired order in UI
ndroid/email/Controller.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/provider/EmailContent.java
19fd130680ca39e133d24262e425f00263276cb2 17-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 4482

* changes:
Add URI's for updated messages, and Provider support for them
e34525d0f026a7467cee1cb5fddcf25ba6f35207 17-Jun-2009 Marc Blank <mblank@google.com> Add URI's for updated messages, and Provider support for them

Messages that have been updated in the database live in a different table
and therefore can't be accessed in the provider without the added support.
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
94386cce2ae71c81981b7c6792332d719a1071cf 17-Jun-2009 Mihai Preda <preda@google.com> am aeeefedb: Thumbnail cache file should be deleted when AttachmentProvider is created.

Merge commit 'aeeefedb43c40e887850654ac88270755f5631c1'

* commit 'aeeefedb43c40e887850654ac88270755f5631c1':
Thumbnail cache file should be deleted when AttachmentProvider is created.
50a24d5e953d153fb86253579ca3d345053c092a 17-Jun-2009 Mihai Preda <preda@google.com> am 075e9d51: Added recursive limit check to renderAttachments method.

Merge commit '075e9d5104c0e23a6188677f5c9e99fcbcfdbc60'

* commit '075e9d5104c0e23a6188677f5c9e99fcbcfdbc60':
Added recursive limit check to renderAttachments method.
d250bcd5cd86302bcb1ed54ef0ba76deacbcdf16 17-Jun-2009 Mihai Preda <preda@google.com> resolved conflicts for merge of a830816f to master
1f5a93936bb8a6364f6563d99a4e5a452b25af63 16-Jun-2009 Marc Blank <mblank@google.com> Fix to bug in Message.save
ndroid/email/provider/EmailContent.java
aeeefedb43c40e887850654ac88270755f5631c1 16-Jun-2009 Mihai Preda <preda@google.com> Thumbnail cache file should be deleted when AttachmentProvider is created.

Integrates CL 149651 from p4 Docomo email.
Bug 1902523.
ndroid/email/provider/AttachmentProvider.java
075e9d5104c0e23a6188677f5c9e99fcbcfdbc60 16-Jun-2009 Mihai Preda <preda@google.com> Added recursive limit check to renderAttachments method.

Integrates CL 149561 from p4 Docomo email.
Bug 1897000.
ndroid/email/activity/MessageView.java
a830816fe2e33785fff98d82fd45a9643c9f3e8f 16-Jun-2009 Mihai Preda <preda@google.com> Updating attachment thumbnail after attachment or inline image has been downloaded.

Integrates 149560 from Docomo email.
ndroid/email/activity/MessageView.java
b5903285dd6d2d95ce80016fa192c9ed44a04f25 16-Jun-2009 Andrew Stadler <stadler@android.com> Enable MessageView using provider.

Very primitive, just shows a few headers, and no navigation at all (you
can only go "back" from here.
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageView.java
ndroid/email/provider/EmailContent.java
1da551bd08ecaada1784a3ba190dfa05c14a6343 16-Jun-2009 Andrew Stadler <stadler@android.com> Fix build break, master # 4712
ndroid/email/activity/MessageView.java
a290f503f14432163f74548a5e5d1dc5003ad049 15-Jun-2009 Marc Blank <mblank@google.com> Refactored EmailStore, EmailContent, EmailProvider

EmailStore goes away, replaced by EmailContent
All database activity is moved to EmailProvider
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/exchange/ExchangeTransportExample.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
ndroid/email/service/MailService.java
879318ee3048ccc8281739441749121c13873b7d 15-Jun-2009 Andrew Stadler <stadler@android.com> Add message list (from provider) to FolderMessageList.

1. Use proper AsyncTask for all cursors
2. Convert to CursorTreeAdapter and get data from cursors
3. (Temporarily) block all context menus and other things that would
crash.

With this CL you can view folders and see the message list but you cannot
view the messages (that's next).
ndroid/email/activity/FolderMessageList.java
a244abdad0abc2a2b9876cadcbb3e9c49aafbb4f 15-Jun-2009 The Android Open Source Project <initial-contribution@android.com> Do not merge. Merge commit '14f3e16' into donut
14f3e1679369977420e0f0905f23477110af64dc 15-Jun-2009 The Android Open Source Project <initial-contribution@android.com> IA 149719: Display Bcc: field if present...
ndroid/email/activity/MessageView.java
13b92c618ef6f10a4ea44d2956af8cbc372a6996 11-Jun-2009 Andrew Stadler <stadler@android.com> Convert Accounts activity to use AsyncTask
ndroid/email/activity/Accounts.java
0dff228dc769e141ec2a27d951963a0d705ddabb 10-Jun-2009 Mihai Preda <nobody@android.com> AI 149714: Download inline images for viewing if necessary and don't
delete attachment cache files if these are inline images.
The purpose of original logic of loadAttachmnet() is to keep
at most one attachment cache, probably to limit the size of
cached file. But it also purges all inline images.
Integrates CL 149551 from DocomoEmail.
BUG=1884385,1860250

Automated import of CL 149714
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/mail/store/LocalStore.java
68a9ccfcde85505f06ddba28c22481c80419ddd4 10-Jun-2009 Andrew Stadler <stadler@android.com> final cleanups to get basic message operations working properly.

* Generate compatibility UUID early enough to stick, so our localstore
db's are created correctly and not recreated over and over again.
* Compose menu items working
* Fix single-account mode (go straight to inbox)
* Lightweight Account projections where possible
* Properly show/hide default account checkbox (during new acct screens)

What works:
* All unit tests
* Editing existing accounts
* Create new accounts
* Checking account settings against server
* Mail sync using accounts
* Viewing mailboxes
* Viewing messages
* Composing messages

What breaks (in approx order of planned fixes)
* Some details of account editing
* Import of existing accounts
ndroid/email/Email.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/provider/EmailStore.java
d2b0efa2f591f883eaad3d9f8996bbacdcec5c34 09-Jun-2009 Andrew Stadler <stadler@android.com> Cleanup broken unit tests from previous submit. This now works:

What works:
* All unit tests
* Editing existing accounts
* Create new accounts
* Checking account settings against server
* Mail sync using accounts
* Viewing mailboxes

What breaks (in approx order of planned fixes)
* Viewing messages
* Composing messages
* Some details of account editing
* Import of existing accounts
ndroid/email/MessagingController.java
ndroid/email/provider/EmailStore.java
c0033f24a26a08c47aa38d957f42cf63cfa3c345 09-Jun-2009 Andrew Stadler <stadler@android.com> Convert remainder of app to use provider-based accounts
What works:
* Unit tests, except for com.android.email.activity.setup.*
* Editing existing accounts
* Create new accounts
* Checking account settings against server
* Mail sync using accounts
* Viewing mailboxes

What breaks (in approx order of planned fixes)
* Unit tests in com.android.email.activity.setup.*
* Viewing messages
* Composing messages
* Some details of account editing
* Import of existing accounts
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/provider/EmailStore.java
ndroid/email/service/MailService.java
7ac2b6e04863db62389ad748c394116e5df137f3 08-Jun-2009 Mihai Preda <preda@google.com> am a9576bda: resolved conflicts for merge of 7403a547384df0c3cb2cb7539d018a3b2029401d to donut

Merge commit 'a9576bdad6d9711c9e790fdbad3cbb1ab5c5fb03'

* commit 'a9576bdad6d9711c9e790fdbad3cbb1ab5c5fb03':
AI 149664: Move escapeChar from MessageView to EmailHtmlUtil.
a9576bdad6d9711c9e790fdbad3cbb1ab5c5fb03 08-Jun-2009 Mihai Preda <preda@google.com> resolved conflicts for merge of 7403a547384df0c3cb2cb7539d018a3b2029401d to donut
7403a547384df0c3cb2cb7539d018a3b2029401d 08-Jun-2009 Mihai Preda <nobody@android.com> AI 149664: Move escapeChar from MessageView to EmailHtmlUtil.
Integrate CL 148437 from DocomoEmail.
BUG=1860250

Automated import of CL 149664
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/EmailHtmlUtil.java
294a4fd0c6b15c1f8f41ca03be66ed95e16e5a6d 06-Jun-2009 Andrew Stadler <stadler@android.com> Enable creation of new accounts using provider-based accounts.

What works:
* Editing existing accounts
* Create new accounts
* Checking account settings against server

What breaks (in approx order of planned fixes)
* Some details of account editing
* Viewing mailboxes & messages
* Mail sync using accounts
* Import of existing accounts
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/provider/EmailStore.java
da93b380d19ee9ca06897ab7a67c0be5828dabad 05-Jun-2009 Mihai Preda <nobody@android.com> am 23a27697: Merge branch \'readonly-p4-donut\' into donut

Merge commit '23a27697963642d6450b70dd83709492c1bdde72'

* commit '23a27697963642d6450b70dd83709492c1bdde72':
AI 149607: Add relevant title to attachment file chooser.
c4a9e52f49f8213fdd55941e26da6f370cabc9d7 05-Jun-2009 Mihai Preda <nobody@android.com> am cf4a3aea: Merge branch \'readonly-p4-donut\' into donut

Merge commit 'cf4a3aea3fa31210deca572c6c933034036fe558'

* commit 'cf4a3aea3fa31210deca572c6c933034036fe558':
AI 149604: Localized the special folders name in FolderMessageView.
84bba2c57b76c461a4d5c7bf6328ba047802e60a 05-Jun-2009 Mihai Preda <nobody@android.com> am 9c629105: Merge branch \'readonly-p4-donut\' into donut

Merge commit '9c62910550ee132ead267fa465a726f917db7fd0'

* commit '9c62910550ee132ead267fa465a726f917db7fd0':
AI 149603: Show progress dialog while loading attachment. Fixed possible ArrayIndexOutOfBoundsException in message view.
8043caa55a414bdb78d438eac1b27afc0574e8bd 05-Jun-2009 Mihai Preda <nobody@android.com> am 4dad6670: Merge branch \'readonly-p4-donut\' into donut

Merge commit '4dad6670724a57e560aac3d07bfda0a1f05fd2f2'

* commit '4dad6670724a57e560aac3d07bfda0a1f05fd2f2':
AI 149600: Fixed message view web link be more robust.
23a27697963642d6450b70dd83709492c1bdde72 05-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
a00eb291f1428a9aaf3eb9becb60f59ebf8598a8 05-Jun-2009 Mihai Preda <nobody@android.com> AI 149607: Add relevant title to attachment file chooser.
Delete the original source message only when the message is in Drafts folder.
If the original message is in the other folder than Drafts, it should be
retained.
Integrates 149194,149306,149459 from DocomoEmail.
BUG=1860250,1887835

Automated import of CL 149607
ndroid/email/activity/MessageCompose.java
cf4a3aea3fa31210deca572c6c933034036fe558 05-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
7eb313fb00508ea173a7ea3d1c928c61a67991bf 05-Jun-2009 Mihai Preda <nobody@android.com> AI 149604: Localized the special folders name in FolderMessageView.
Integrates 149049,149217 from DocomoEmail.
BUG=1860091,1860250

Automated import of CL 149604
ndroid/email/activity/FolderMessageList.java
9c62910550ee132ead267fa465a726f917db7fd0 05-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
c099563834c01380eb6528772deac41ebf79a749 05-Jun-2009 Mihai Preda <nobody@android.com> AI 149603: Show progress dialog while loading attachment. Fixed possible ArrayIndexOutOfBoundsException in message view.
Integrates 149422,149510,149516 from DocomoEmail.
In some situation, email header From: might be empty or have
illegal email address. The assumption that From: must exist
will be violated and causes ArrayIndexOutOfBoundsException.
BUG=1741969,1890770,1860250

Automated import of CL 149603
ndroid/email/activity/MessageView.java
f53ef9b50ca91860646371c670676593a6b50173 05-Jun-2009 Mihai Preda <nobody@android.com> Merge commit 'goog/donut' into donut
4dad6670724a57e560aac3d07bfda0a1f05fd2f2 05-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
980385b0f98eb8a0cba0bc43823da6d104a3e71b 05-Jun-2009 Mihai Preda <nobody@android.com> AI 149600: Fixed message view web link be more robust.
Integrates 149300 from DocomoEmail.
This is work around for
- Regex.WEB_URL_PATTERN would not handle protocol part case
insensitive correctly.
- WebView only could follow the href link that protocol part
is lower case.
BUG=1860250,1842508

Automated import of CL 149600
ndroid/email/activity/MessageView.java
f5df62899173f52020fa3e9e070f70c344888471 05-Jun-2009 Andrew Stadler <stadler@android.com> am a392e070: Add android.permission.WRITE_EXTERNAL_STORAGE Add unit test to verify writeable to sdcard.

Merge commit 'a392e070bc9590986e57ef6a89bed34f7efc10d0'

* commit 'a392e070bc9590986e57ef6a89bed34f7efc10d0':
Add android.permission.WRITE_EXTERNAL_STORAGE
372c12bfbb7ff9ec684e7b2d36389f79fafe24a9 05-Jun-2009 Mihai Preda <nobody@android.com> am a15503a4: Merge branch \'readonly-p4-donut\' into donut

Merge commit 'a15503a4a6cf46e810bde4aedc846680ed288c1c'

* commit 'a15503a4a6cf46e810bde4aedc846680ed288c1c':
AI 149578: Fixed possible NullPointerException in MessageCompose.
18106fe981f5e918070ffdb126e15f6fca9d0c14 05-Jun-2009 Mihai Preda <nobody@android.com> am 7330fe49: Merge branch \'readonly-p4-donut\' into donut

Merge commit '7330fe4953c39741376bdd8cb3e5c2c03068b0aa'

* commit '7330fe4953c39741376bdd8cb3e5c2c03068b0aa':
AI 149573: Display To: instead of From: in Drafts folder && Display unread message count for inbox, total message count everywhere else.
a392e070bc9590986e57ef6a89bed34f7efc10d0 05-Jun-2009 Andrew Stadler <stadler@android.com> Add android.permission.WRITE_EXTERNAL_STORAGE
Add unit test to verify writeable to sdcard.

Fixed bug http://b/issue?id=1883487
ndroid/email/activity/MessageView.java
a15503a4a6cf46e810bde4aedc846680ed288c1c 04-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
e6ec9d86e8acd2b0b736f5ea05d13a12355d6511 04-Jun-2009 Mihai Preda <nobody@android.com> AI 149578: Fixed possible NullPointerException in MessageCompose.
Integrates 148996,149295 from imode email.
BUG=1862155,1798576,1860250

Automated import of CL 149578
ndroid/email/activity/MessageCompose.java
7330fe4953c39741376bdd8cb3e5c2c03068b0aa 04-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
70798a7892079a71bed4e2c9833b29caaa725cb5 04-Jun-2009 Mihai Preda <nobody@android.com> AI 149573: Display To: instead of From: in Drafts folder && Display unread message count for inbox, total message count everywhere else.
Integrates from imode email: 148948,149107,149247,149248,149249,149287.
BUG=1591391,1842520,1860085,1459866,1860250

Automated import of CL 149573
ndroid/email/activity/FolderMessageList.java
ndroid/email/mail/store/LocalStore.java
98475b1d7c0db7cfc045b5d71008e973a376ce21 04-Jun-2009 Mihai Preda <nobody@android.com> am 438275b2: Merge branch \'readonly-p4-donut\' into donut

Merge commit '438275b283224a9f830e42d4e645981d1f73589b'

* commit '438275b283224a9f830e42d4e645981d1f73589b':
AI 149564: Escape special characters such as '<>&' in text/plain for display in WebView.
438275b283224a9f830e42d4e645981d1f73589b 04-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
ca5089efb84fd3c60cf317de474f8e313b8119e5 04-Jun-2009 Mihai Preda <nobody@android.com> AI 149564: Escape special characters such as '<>&' in text/plain for display in WebView.
Integrate CL 144586,145919 from imode.
Remove the Emoji escaping/workaround for WebView.
Also integrate MimeHeader.java from CL 143064 from imode.
BUG=1785319,1860250

Automated import of CL 149564
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/MimeHeader.java
9019315b2642d58691cf09d32c07c0cf902f0a41 04-Jun-2009 Andrew Stadler <stadler@android.com> Conversion to provider-based Account. What works:
* Editing existing accounts
* Two placeholder accounts are written

What breaks (in approx order of planned fixes)
* Some details of account editing
* New account creation,
* Viewing mailboxes & messages
* Mail sync using accounts
* Import of existing accounts
ndroid/email/activity/Accounts.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
361a7225f2aa86ce3bdecdff0f99500417d00e88 03-Jun-2009 Mihai Preda <nobody@android.com> am d64d0e56: Merge branch \'readonly-p4-donut\' into donut

Merge commit 'd64d0e56de58ca3c776f2edae1ebbbafd500d15e'

* commit 'd64d0e56de58ca3c776f2edae1ebbbafd500d15e':
AI 149523: Correctly display inline images in Reply and Forward messages.
d64d0e56de58ca3c776f2edae1ebbbafd500d15e 03-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
7436601fae756e8bc1f916560a1c2d1f8ce576fc 03-Jun-2009 Mihai Preda <nobody@android.com> AI 149523: Correctly display inline images in Reply and Forward messages.
Integrates CL 148436, 148515, 148833 from imode email.
BUG=1814789,1860250

Automated import of CL 149523
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/EmailHtmlUtil.java
ndroid/email/provider/AttachmentProvider.java
84969fb580f569c0e3625a3c59a71d2909ae198d 01-Jun-2009 Fred Quintana <fredq@google.com> update to adhere to applyBatch changes
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
0cb7ddfc27413fa7b2a4228ad9dc148d19c9c14d 02-Jun-2009 Andreas Huber <andih@google.com> Fixing the build. Methods implementing interfaces must not be declared @Override.
ndroid/email/provider/EmailStore.java
626f3e48a4f14c38a973dd2bea2e2debea7637a5 01-Jun-2009 Andrew Stadler <stadler@android.com> Updates to EmailStore and EmailProvider:
1. Call notifyChange() after all API calls.
2. Make Account & HostAuth parcelable
3. Temporary APIs to create "store URI" strings for the existing mail code
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
061f4d21dc0cb016302699218067ed120f5f29aa 01-Jun-2009 Mihai Preda <nobody@android.com> am d9c1e51d: Merge branch \'readonly-p4-donut\' into donut

Merge commit 'd9c1e51d841369ba7f26b8769337471ca10b7b84'

* commit 'd9c1e51d841369ba7f26b8769337471ca10b7b84':
AI 149446: Add sending pending outbox message feature; integrates 148664, 148823 from imode to donut.
d9c1e51d841369ba7f26b8769337471ca10b7b84 01-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
39137e51aa3b454cfa1258a10c9c7499261b175a 01-Jun-2009 Mihai Preda <nobody@android.com> AI 149446: Add sending pending outbox message feature; integrates 148664, 148823 from imode to donut.
BUG=1860250,1793767

Automated import of CL 149446
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/activity/FolderMessageList.java
4c27102aea9921a6bbdfec3bc44e32d5d03c47d9 01-Jun-2009 Mihai Preda <nobody@android.com> am fbde900c: Merge branch \'readonly-p4-donut\' into donut

Merge commit 'fbde900c37ae76ec3c6181b3328d4ddf7c46cc7e'

* commit 'fbde900c37ae76ec3c6181b3328d4ddf7c46cc7e':
AI 149442: Integrate CL#140625 (Fix attachment uri and content uri confusion) from imode to donut.
AI 149328: Add extended header support to MimeMessage, MimeBodyPart, and LocalStore.
fbde900c37ae76ec3c6181b3328d4ddf7c46cc7e 01-Jun-2009 Mihai Preda <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
5182d80674a1ef90586f52355a21a82e8265c10a 01-Jun-2009 Mihai Preda <nobody@android.com> AI 149442: Integrate CL#140625 (Fix attachment uri and content uri confusion) from imode to donut.
BUG=1598754,1860250

Automated import of CL 149442
ndroid/email/activity/MessageView.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/provider/AttachmentProvider.java
fae4727a911a13cd0bfaaf2f1167d780bafb592b 29-May-2009 Marc Blank <mblank@google.com> Squashed commit of the following:

commit 19beb6f0cc6c0f3f0cbcdcd66cec9f141b470d70
Author: Marc Blank <mblank@google.com>
Date: Fri May 29 14:23:01 2009 -0700

Changes to EmailProvider

commit 84cced7b94bde4688ad986a45a6bf876cde3bdbe
Author: Marc Blank <mblank@google.com>
Date: Fri May 29 14:02:20 2009 -0700

Fix additional formatting issues.

commit 1faeb1763ba8a967fbf79ddbc48822af08c65a15
Author: Marc Blank <mblank@google.com>
Date: Thu May 28 19:26:03 2009 -0700

Changes in EmailStore.Account
- Add isDefault column
- Add status methods setDefaultAccount/getDefaultAccount

Resubmit previous with formatting issues addressed.
ndroid/email/activity/Welcome.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
ea6b71e0f4b515df378426a703bf3261db2f1306 28-May-2009 Andrew Stadler <stadler@android.com> Per android code style guide, all member variables start with "m"
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
7b92d9a2a9b64480a4c510b218d812581b9c4473 28-May-2009 Tadashi Takaoka <nobody@android.com> Merge branch 'readonly-p4-donut' into donut
a8884b9b72b164dfd347dab24f754bd8f7fcbd7c 28-May-2009 Tadashi Takaoka <nobody@android.com> AI 149328: Add extended header support to MimeMessage, MimeBodyPart, and LocalStore.
This extension is necessary to support some vendor specific
extended header, such as X-NoRtn-Addr of i-mode.net mail.
This change will update LocalStore database version to 24.
And it should be consistent between donutburger Email and DocomoEmail.
BUG=1741969

Automated import of CL 149328
ndroid/email/mail/Part.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/LocalStore.java
bd649fc1fd0f8018b2c2036ed7a1465af6fdfd8a 28-May-2009 Andrew Stadler <stadler@android.com> General changes to generalize account & hostauth classes:
- Remove references to SMTP and use generic "send" and "recv" notation
- Move protocol indication into hostauth
- Add TLS (along with SSL)
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
2e758791d000ec1648bd2199dd1209d36488b69c 28-May-2009 Andrew Stadler <stadler@android.com> Rename Email to EmailStore to avoid collision with existing Email.java
ndroid/email/provider/Email.java
ndroid/email/provider/EmailProvider.java
ndroid/email/provider/EmailStore.java
c5f2a7af7679e46ae08bbe399680495b9bc6679a 28-May-2009 Marc Blank <mblank@google.com> I fixed the authority in Email to point to the EmailProvider's authority, and I added the EmailProvider to the manifest.
ndroid/email/provider/Email.java
f3d5b202360031979714c3e366c386bcc7e6a40e 27-May-2009 Andrew Stadler <stadler@android.com> Import first versions of Provider from Marc
ndroid/email/provider/Email.java
ndroid/email/provider/EmailContent.java
ndroid/email/provider/EmailProvider.java
f50c7fb0842c403edc47ea7258af06e7fd1f262c 26-May-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 2252 into donut

* changes:
Fix the java.lang.StringIndexOutOfBoundsException that occurs when an SMTP server closes the connection early or returns an empty line. Fix the same error in the Pop3 UIDL parser.
fc9e1ce0304e89c275bf71e254fa5a954b43e338 22-May-2009 Andy Stadler <nobody@android.com> AI 149203: Manual merge CL 149118: "Make URL which is in the head of body text be
clickable."
BUG=1810716

Automated import of CL 149203
ndroid/email/activity/MessageView.java
b011a812e05902d7e417b8c47acc90a592f4b412 22-May-2009 Andrew Stadler <stadler@android.com> Fix the java.lang.StringIndexOutOfBoundsException that occurs when an SMTP server closes the connection early or returns an empty line.
Fix the same error in the Pop3 UIDL parser.
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/SmtpSender.java
c2887cd81de8867092136e69a19c1e771a35a66a 21-May-2009 Andy Stadler <nobody@android.com> AI 149140: Automated g4 rollback of changelist 148333.
*** Reason for rollback ***
Rollback global lock because bug (now fixed) was not caused by
threading/concurrency.
*** Original change description ***
Evidence from failures, and inspection of source, leads me to believe
that SharedPreferences has some non-thread-safe paths. As a quick,
brute-force workaround, I'm putting a global lock around our use of it.
This is a bit inefficient, but cases of multiple threads writing to it
should be very rare.
Note, we don't have an explicit test for this (I will think about
finding a way to write one), but the evidence of this failure is that
after some amount of activity in the Email app, we see corrup
... description truncated by g4 rollback ...

Automated import of CL 149140
ndroid/email/Account.java
f9edef8dee689bd5402b12d4838465923ea54e68 21-May-2009 Andy Stadler <nobody@android.com> AI 149088: Automated g4 rollback of changelist 148488.
*** Reason for rollback ***
Problem found (bug in ICU encoder/decoder) so instrumentation no
longer required here.
*** Original change description ***
Heavily-instrumented Account.java that's looking for the precise moment
when an Account string gets corrupted. Looks for bad base64 strings
and bad store Uri's. Logs the error, and (optionally/disabled) throws
an exception (good for debugging).
BUG=1822859

Automated import of CL 149088
ndroid/email/Account.java
c6efb28ad3466b6f59c0f72428eb5244bcb757de 20-May-2009 Andy Stadler <nobody@android.com> AI 149059: Manually merge CL 148988 to fix "Not to revert SEEN flag if POP, and
fixed counting unread messages bug".
BUG=1785254

Automated import of CL 149059
ndroid/email/MessagingController.java
80257af81bbdbd015e81324a7b5c27b763b9d512 19-May-2009 Andy Stadler <nobody@android.com> AI 149020: Manually merge CLs 148814, 148818 which fix IMAP response parsing to be
able to handle a literal string in the middle of the response.
BUG=1814528

Automated import of CL 149020
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
305382f790cde9afc2876b2e95661d61fe4f02ce 07-May-2009 Andy Stadler <nobody@android.com> AI 148488: Heavily-instrumented Account.java that's looking for the precise moment
when an Account string gets corrupted. Looks for bad base64 strings
and bad store Uri's. Logs the error, and (optionally/disabled) throws
an exception (good for debugging).
BUG=1822859

Automated import of CL 148488
ndroid/email/Account.java
93116fe28ed366a4cc2285fba2019c0b4a316a31 07-May-2009 Andy Stadler <nobody@android.com> AI 148457: Allow exchange accounts to be set up without an empty domain
specification. This relaxes a rule that was incorrectly applied.
BUG=1740626

Automated import of CL 148457
ndroid/email/activity/setup/AccountSetupExchange.java
08e2bc5bb43e3d00ca9f89ac5432b420da206e30 07-May-2009 Andy Stadler <nobody@android.com> AI 148382: Check cursors in LocalStore so we avoid errors when the folder itself
has been deleted from the DB. Add unit tests.
BUG=1835733

Automated import of CL 148382
ndroid/email/mail/store/LocalStore.java
615fcaf33721cc56fc41eb57fdd13b96e201be31 07-May-2009 Andy Stadler <nobody@android.com> AI 148378: Allow store to create BinaryTempFileBody from a preexisting file
instead for forcing a copy via input stream.
BUG=1807499

Automated import of CL 148378
ndroid/email/mail/internet/BinaryTempFileBody.java
dab90a7b350e9c7dc23d501f12a40060d7178763 07-May-2009 Andy Stadler <nobody@android.com> AI 148377: Push Mode changes: (1) Add android.permission.WAKE_LOCK and
READ_PHONE_STATE so a push mode service can hold an active
network connection, monitor roaming status, etc. (2) Refresh
push mode status on Refresh(), not just on Check, so UI
(settings) changes, which call refresh(), propagate immediately
to the stores.
BUG=1776149

Automated import of CL 148377
ndroid/email/service/MailService.java
63a22008c7b71675ab6d4c0526556a81a2c60632 07-May-2009 Andy Stadler <nobody@android.com> AI 148376: Two policy changes for lookback window: (1) Change default
for new accounts to "1 day". (2) Remove "all" from the list
of available lookback window sizes, to prevent runaway
during our simplistic sync model.
BUG=1789913

Automated import of CL 148376
ndroid/email/activity/setup/AccountSetupAccountType.java
3b7a93e8bbeda13e49ef17b45ba7b46fe8284dee 07-May-2009 Andy Stadler <nobody@android.com> AI 148375: Explicitly remove deleted accounts from the Store cache. This resolves
possible bugs when an account is deleted and recreated.
BUG=1740626

Automated import of CL 148375
ndroid/email/activity/Accounts.java
ndroid/email/mail/Store.java
235609d04e95db2097efcc3c999a8fbd6c1ae23e 06-May-2009 Andy Stadler <nobody@android.com> AI 148334: Provide a new entry in MessageUpdateCallbacks by which the store can
indicate that the message of interest no longer exists. This is used
in remoteFolder.copyMessages, for example because the message was
already deleted by another client.
BUG=1807499

Automated import of CL 148334
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
5293030ba0433c06ba3af371b809ab8586d775b4 06-May-2009 Andy Stadler <nobody@android.com> AI 148333: Evidence from failures, and inspection of source, leads me to believe
that SharedPreferences has some non-thread-safe paths. As a quick,
brute-force workaround, I'm putting a global lock around our use of it.
This is a bit inefficient, but cases of multiple threads writing to it
should be very rare.
Note, we don't have an explicit test for this (I will think about
finding a way to write one), but the evidence of this failure is that
after some amount of activity in the Email app, we see corruption in
the string mSenderUri.
BUG=1822859

Automated import of CL 148333
ndroid/email/Account.java
843125b98a8130069fb4cdca92029fed3e189e7b 05-May-2009 Andy Stadler <nobody@android.com> AI 148300: Reduce memory waste in getTextFromPart(), and improve error handling.
Fix NPE's in loadMessageForViewBodyAvailable().
BUG=1831272

Automated import of CL 148300
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/MimeUtility.java
09866af013539355d019acdf6a15cdf89ac65d6b 04-May-2009 Andy Stadler <nobody@android.com> AI 148257: Allow preview of any files (mime type */*) by removing
the original filters. This affects preview, not download.
This does not preflight the launch at all, it is very simple
as it simply downloads the attachment and then tries to open it.
If no activity is found, it uses a toast to say "couldn't do
that." A better fix will be to pre-check the mime type to see
if there are any intent filters to handle it.
BUG=1650669

Automated import of CL 148257
ndroid/email/Email.java
62c4a629852141d610ec88220e6aacc8d3bd2897 04-May-2009 Andy Stadler <nobody@android.com> AI 148256: Finish cleaning up the concurrency bugs in FolderMessageList.
At this point, *all* MessageListener callbacks should have their
work routed through the handler for deeper processing (especially
anything that affects the lists) to be in the UI thread only.
Also fixed a minor regression introduced in CL 148096 (on
configurations with a single account, the inbox was not
automatically preopening - this affected desktop shortcuts
as well.)
BUG=1812798

Automated import of CL 148256
ndroid/email/activity/FolderMessageList.java
1e2ca965e7b7eed83bf96417b1160689b32f6830 04-May-2009 Andy Stadler <nobody@android.com> AI 148255: Don't show "Outgoing Settings" preference when sender does not
provide a class for launching the settings editor.
BUG=1812798

Automated import of CL 148255
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/mail/exchange/ExchangeSenderExample.java
c9f151d4fe47c5d426109822a7042ae8bbeb0a06 02-May-2009 Andy Stadler <nobody@android.com> AI 148230: Allow stores to indicate if they support server-side copying of sent
mail into the "Sent" folder, thus eliminating the need to perform a 2nd
upload into the server's Sent folder. IMAP and POP3 do not support
this (although IMAP could when it recognizes Gmail IMAP servers.)
BUG=1807499

Automated import of CL 148230
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
9197f428946d5c77613b64a50c93a46e2acf62dc 02-May-2009 Andy Stadler <nobody@android.com> AI 148216: Provide UI for fixed sync window sizes, as required by EAS.
When in fixed sync window size mode, change "load more
messages" to "refresh".
BUG=1789913

Automated import of CL 148216
ndroid/email/Account.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupOptions.java
035dfc08598c0b2cb517d761b24294dadfca3f24 02-May-2009 Andy Stadler <nobody@android.com> AI 148215: Provide a better way for stores to get their callbacks, since they
might be null at creation time, and available slightly later.
BUG=1807499

Automated import of CL 148215
ndroid/email/mail/Store.java
9ba72bb00d5621997eda2033226bce1e0146a111 01-May-2009 Andy Stadler <nobody@android.com> AI 148204: Encapsulate a requirement for some remote stores, that need to preload
message structures before fetching the message body. Code for IMAP &
POP3 is unaffected, but remote stores can override
requireStructurePrefetch() in order to trigger the new behavior.
BUG=1807499

Automated import of CL 148204
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
c5c2b9673907d44fa03ac277a9028704b6277c7b 01-May-2009 Andy Stadler <nobody@android.com> AI 148145: Remove the account-based storage of store persistent data, and instead
combine it with the same code that handles folder persistent data (in
the database). The schema is really simple; Rows with a folder id of
-1 are store data. This also adds the ability to use keys to store
multiple values, instead of a single string per account. Added/updated
unit tests.
3rd party stores will need slight code changes because the persistent
callbacks now accept keys.
BUG=1807499

Automated import of CL 148145
ndroid/email/Account.java
ndroid/email/MessagingController.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/service/MailService.java
d8cbeaf7aee0b307b96c2aa1c2a93c4c417838e2 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148098: Manual merge CL 148086 to fix additional problems with non-ASCII chars
in address fields.
BUG=1676634

Automated import of CL 148098
ndroid/email/mail/Address.java
ndroid/email/mail/internet/MimeMessage.java
067d0a87fa88436aa9fbbaf9767102c102d2a6ce 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148097: Fix bug in exchange account setup (actually it only affects
editing existing accounts). Added simple functional tests for
Activity UI.
BUG=1812798

Automated import of CL 148097
ndroid/email/activity/setup/AccountSetupExchange.java
05aba0b4ba5667717aa6f9f54aa288d585dbb77b 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148096: Fix multiple concurrency bugs in FolderMessageList, which wasn't
being strict enough about decoupling the MessageListener from
updates to the various lists that should only happen in the UI
thread.
BUG=1812798

Automated import of CL 148096
ndroid/email/activity/FolderMessageList.java
c795d8b324e32c19c936f331a08a52efb4a5e09f 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148095: In MessageView, protect the listener callbacks that directly
access mMessageContentView.
This is a brute-force solution, and I have also left TODO notes
mentioning that it might make more sense (long term) to use the
existing handler message mechanism.
BUG=1812798

Automated import of CL 148095
ndroid/email/activity/MessageView.java
0cfffc5222f951475b249f7ed1c8ceefb34f6ffe 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148091: Manual merge CL 148078 which resolves bugs when you have non-ASCII
names in email address fields of MessageCompose.
BUG=1676657

Automated import of CL 148091
ndroid/email/mail/Address.java
3c3add638ec34c8627e3783f810e3b68ad01a007 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148027: Fix concurrency failure in Folder.getUnreadMessageCount() and
Folder.getVisibleLimit(), which used local copies of the data from the
DB. If there were two Folder objects associated with a single actual
folder, updating one wouldn't be reflected in the others.
BUG=1812798

Automated import of CL 148027
ndroid/email/mail/store/LocalStore.java
c05afb24bbb47be9b9c5224cfe9aa6a3a84b6870 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148019: Add "accountInstanceLimit" to stores.xml so a given type of connection
(e.g. EAS) can limit itself to n (usually 1) accounts per device.
The UI for this is really simple - don't show the EAS button when the
limit is reached. More work would be required in
AccountSetupAccountType.java in order to do a more sophisticated UI
(e.g. show the button but pop a toast if the limit is reached.)
BUG=1740626

Automated import of CL 148019
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/mail/Store.java
8264c4fa21d922ad028242ae12e8da62c82a88a4 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148002: Add X_DOWNLOADED_FULL, X_DOWNLOADED_PARTIAL, and DELETED flags
to the set that are stored in their own columns (and thus can
be quickly selected from). Add code to migrate old style
flags into new flags. Add tests.
BUG=1786939

Automated import of CL 148002
ndroid/email/mail/store/LocalStore.java
a13aea24a396ae8f115b016b702bd2457ad04e6d 28-Apr-2009 Andy Stadler <> AI 147868: Fix CL 146360 which didn't make the changes persistent. Changed
MessagingController to accept and track a Context, instead of the
unnecessary Application object, which makes this fix more testable.
BUG=1790798

Automated import of CL 147868
ndroid/email/MessagingController.java
de6b2519be29b25e5a596c59c969ee0d55d7478e 28-Apr-2009 Andy Stadler <> AI 147866: To better support remote stores that write back persistent data
or other changes during a delete operation, we need to explicitly
open the remote trash folder and give it the callbacks.
BUG=1807499

Automated import of CL 147866
ndroid/email/MessagingController.java
6c0cd4961030eca992b9ed1f4e0f4189ddeedcf5 27-Apr-2009 Andy Stadler <> AI 147839: In checkMail(), do a listFolders() before the existing sync...()
calls for each account. This allows the folder list to be
updated before it is synced, which is necessary for some
stores.
BUG=1807499

Automated import of CL 147839
ndroid/email/MessagingController.java
b24a1eb3d0dc9d119db085d3f648f781a405457e 25-Apr-2009 Andy Stadler <> AI 147765: Fix concurrency bugs in MessagingController, in the collections
mCommands and mListeners.
BUG=1812798

Automated import of CL 147765
ndroid/email/MessagingController.java
ndroid/email/mail/StoreSynchronizer.java
100867a2317c7c40d362ce9db982ee2875d3f448 24-Apr-2009 Andy Stadler <> AI 147730: 1. Create an API by which a Store can specify its own custom
synchronizer code.
2. Refactor (and spell-fix) the core folder synchronizer. Extract
the innards that are IMAP/POP specific, leaving common wrapper
code in a simpler shell.
3. For each account & folder to sync, check the store and call
the specialized sync'er (if provided) or the generic one.
BUG=1807499

Automated import of CL 147730
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/StoreSynchronizer.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
5551f7feb210313aaf3e5a33cdaec5f991ba3288 24-Apr-2009 Andy Stadler <> AI 147714: New, lighter-weight version of CL 147620. Still touches as many files,
due to API change, but still has a smaller footprint. Also fixes the
bug in the original, which is that we actually needed to udpate the
local trash folder, not the remote one.
BUG=1807499

Automated import of CL 147714
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
b633efa2b7386b814ff5b9cd05af4c1c8a905fb7 24-Apr-2009 Andy Stadler <> AI 147708: Automated g4 rollback of changelist 147620.
*** Reason for rollback ***
We figured out a simpler solution affecting fewer files - we
don't actually need the new remotestore API.
*** Original change description ***
Some stores require changing the UID of a message when it is
copied to a new folder (I'm looking at you, EAS). Add a callback
to Folder.copyMessages() which allows the store to report back
such changes. Then, add a new api to record the new values:
Folder.updateMessages().
For now, the two APIs are linked by a common callsite in
MessagingController, so the existing stores can use a minimal
implementation - if they don't call the callback, nobody will
call the update.
BUG=1807499

Automated import of CL 147708
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
1df530294d37573e1b1a97bc1c01a43af3127224 24-Apr-2009 Andy Stadler <> AI 147620: Some stores require changing the UID of a message when it is
copied to a new folder (I'm looking at you, EAS). Add a callback
to Folder.copyMessages() which allows the store to report back
such changes. Then, add a new api to record the new values:
Folder.updateMessages().
For now, the two APIs are linked by a common callsite in
MessagingController, so the existing stores can use a minimal
implementation - if they don't call the callback, nobody will
call the update.
BUG=1807499

Automated import of CL 147620
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
72288724d40a4179ea0f978fee72e8b8dd293007 24-Apr-2009 Andy Stadler <> AI 147538: Because mPreferences is transient, we need to pass Context into the
persistent callbacks, in order to recreate it occasionally.
BUG=1786939

Automated import of CL 147538
ndroid/email/Account.java
ndroid/email/mail/Store.java
f2c5f08b32352b7566709fa0663532ceb6a222d2 24-Apr-2009 Andy Stadler <> AI 147537: Fix copy/paste mistake in previous CL.
BUG=1807499

Automated import of CL 147537
ndroid/email/MessagingController.java
3f66d3de11400cdaca7ceb0cbfae9ab3d5783a9e 23-Apr-2009 Andy Stadler <> AI 147486: Change the remote/local mapping callback to be folder-by-folder instead
of for the entire store.
BUG=1807499

Automated import of CL 147486
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
ndroid/email/mail/Store.java
2990ff1f968c5424b6218d2829b87ca1c4a32db4 23-Apr-2009 Andy Stadler <> AI 147452: Update LocalFolder.fetch() to support STRUCTURE mode, in
addition to existing support for BODY mode. Add tests.
BUG=1807499

Automated import of CL 147452
ndroid/email/mail/store/LocalStore.java
912dc3b1946e8f16b34daaa9a8e541219ed46d95 23-Apr-2009 Andy Stadler <> AI 147423: Provide a hook to notify remote stores that local stores are set up.
BUG=1807499

Automated import of CL 147423
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
29bbfd0b971a7afca9e61f9475036f3b53f0209c 22-Apr-2009 Andy Stadler <> AI 147401: Redo the implementation of store-specific flags to allow
deeper database-style operations with them. This enables two
new LocalStore APIs to be provided: A new version of
GetMessages() that can retrieve only flagged (or un-flagged)
messages, and a new method to set flags for an entire set of
messages, in a single SQL transaction.
BUG=1786939

Automated import of CL 147401
ndroid/email/mail/Flag.java
ndroid/email/mail/Folder.java
ndroid/email/mail/Message.java
ndroid/email/mail/store/LocalStore.java
7e6df9c6aa616978efa9fc8288014735f9bf7edd 16-Apr-2009 Andy Stadler <> AI 146379: Provide a small set of message flags that can be set by stores and will
be persisted by LocalStore.
BUG=1786939

Automated import of CL 146379
ndroid/email/mail/Flag.java
37e98419d7778656b39eba21d9061ccd01a20196 15-Apr-2009 Andy Stadler <> AI 146366: Automated g4 rollback of changelist 146361.
*** Reason for rollback ***
Despite the markings in the CL, this was inadvertently merged.
This CL restores donut & downstream branches to the desired state.
*** Original change description ***
am: CL 146359 D* N*T M***E - we'll keep the fix for donut+
Automated g4 rollback of changelist 146273.
*** Reason for rollback ***
Inadvertently approved for cupcake, past deadline.
*** Original change description ***
Fixed "show pictures" button isnot displayed for HTML messages.
Original author: stadler
Merged from: //branches/cupcake/...
BUG=1766880

Automated import of CL 146366
ndroid/email/activity/MessageView.java
af88cfc4828b1e2844d335e5eda9e942235526f0 15-Apr-2009 Andy Stadler <> AI 146361: am: CL 146359 DO NOT MERGE - we'll keep the fix for donut+
Automated g4 rollback of changelist 146273.
*** Reason for rollback ***
Inadvertently approved for cupcake, past deadline.
*** Original change description ***
Fixed "show pictures" button isnot displayed for HTML messages.
Original author: stadler
Merged from: //branches/cupcake/...

Automated import of CL 146361
ndroid/email/activity/MessageView.java
1f48259d22001f3e745e34e1bf142dfaf6cad94b 15-Apr-2009 Andy Stadler <> AI 146360: Provide an API by which the server (or store) can tag some
of the role-specific folders such as Drafts, Sent, or Trash.
This allows us to properly target these folders even on
systems where they have different names. I capture the
tagged names into the existing columns in the account data,
where they are used elsewhere in the code (no changes
necessary).
Use default implementations on POP3 and IMAP for now -
no change from original behavior. The new code is
primarily to support EAS (for now).
BUG=1790798

Automated import of CL 146360
ndroid/email/MessagingController.java
ndroid/email/mail/Folder.java
4836f3c289f728048435ea2b5055e65b167f5a88 15-Apr-2009 Andy Stadler <> AI 146331: Make the download window sizing adjustable on a per-store basis.
The default values are 25 (default) and 25 (increment). This is fine
for Stores that control downloads by # of messages, but won't work for
stores that use other measurements - e.g. EAS windows the download in #
of days. So for this change:
1. Allow the StoreInfo to provide non-default values
2. Remove the hardcoded references to the default values
3. Use StoreInfo values everywhere
4. Set the values to 1,1 in EAS store info
BUG=1789913

Automated import of CL 146331
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/LocalStore.java
1464095f9f6ff4860b6a8d4a74ee0e5079707019 15-Apr-2009 Tadashi Takaoka <> AI 146274: am: CL 146273 Fixed "show pictures" button isnot displayed for HTML messages.
Original author: takaoka
Merged from: //branches/cupcake/...

Automated import of CL 146274
ndroid/email/activity/MessageView.java
c6039f7d17eea53ea7aa59dfade42d9546440929 14-Apr-2009 Andy Stadler <> AI 146134: Add persistence API for remote stores & folders to use while
syncing. This provides a key-value store, per folder, that
can be used by network Stores to record persistent data such
as sync status, server keys, etc.
Note that, by definition, this only applies to remote folders
(e.g. IMAP, POP3). You'll see everywhere that LocalFolder is
passed null, and this is correct - LocalFolder *is* persistent
storage and does not need external help.
Note to reviewers: The core changes are Folder.java,
LocalStore.java, and LocalStoreUnitTests.java, so please give
them the bulk of your reviewer attention. The other files
are just following along with minor API changes. Of those,
the one worth close examination is MessagingController.java,
which is the only place in the system where remote Folders
are bonded with Local Folders and thus where this new API
comes into play.
Note to jham: Can you please take a look at
LocalStore.LocalFolder.setPersistentString() and recommend
better SQL foo than my primitive test-then-update-or-insert
logic, which is not transactional or threadsafe.
BUG=1786939

Automated import of CL 146134
ndroid/email/MessagingController.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/mail/Folder.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7 14-Apr-2009 Andy Stadler <> AI 146061: Add persistent storage that Store classes can access.
The current design for Store classes (e.g. IMAP) did not provide for
any persistent storage. This is the beginning of a mechanism to
provide that. It's quite simplisitic - each Store can read/write one
persistent string - but that's enough for the first simple use case
(saving some sync data for EAS).
The core changes here - suggest reviewing first - are in Account.java,
Store.java, and AccountUnitTests.java. Everything else is just
following the API change that was necessary.
Note that, by definition, this only applies to remote stores (e.g.
IMAP, POP3). You'll see everywhere that LocalStore is passed null, and
this is correct - LocalStore *is* persistent storage and does not need
access (so far, at least).
BUG=1786939

Automated import of CL 146061
ndroid/email/Account.java
ndroid/email/MessagingController.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/Store.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/service/MailService.java
8664ecf1817e9965f9910dd12f6115ef4aaa8f2a 09-Apr-2009 Andy Stadler <> AI 145227: Add callback for push-mode stores to report async updates.
The logic for this is quite simplistic, for now: When the store
reports that it has new messages, it triggers a service refresh,
just as if a pull-mode interval had expired and it is time to
check the server.
Note, unfortunately at this time there are no tests, because there
are not currently any good test seams in MailService.java.
BUG=1776149

Automated import of CL 145227
ndroid/email/mail/Store.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
ndroid/email/service/MailService.java
ea6fea9bb22368c10083d5dce52adae86e51a243 08-Apr-2009 Andy Stadler <> AI 144953: Provide UI for push mode accounts.
1. Generalize the code for the various spinners that control
account check frequency.
2. Provide an API for looking up store attributes (and refactor
existing instatiateStore logic to use it).
3. Cleanup the old code that was used to setup frequency spinners.
4. Hardwire Exchange accounts to default into push mode.
Notes to tester:
1. For each account type (POP, IMAP, EAS) we need to check that
auto & manual creation "do the right thing" for frequencies.
POP & IMAP should offer "none" or time intervals, while EAS
should offer "push", "none", or time intervals.
2. EAS accounts should default to "push", all others to "15 min"
3. Make sure that you can edit existing account settings and see
the right choices (only EAS should be offered push).
4. I couldn't write an automated test for the mail checker service,
please confirm that POP & IMAP accounts are checked at the right
intervals (or never, if set for "none".)
BUG=1776149

Automated import of CL 144953
ndroid/email/Account.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/mail/Store.java
ndroid/email/service/MailService.java
87c43cada618a783197533934301230e608ab940 04-Apr-2009 Andy Stadler <> AI 144525: Add structural support for Exchange transport. The idea is that
the shipping client will include the necessary generic pieces for
configuring an Exchange client (e.g. account setup) but will not
include actual Exchange client code (e.g. transport / protocol).
Also added a "sample code" implementation of Exchange for use
as a starting point for implementors. (Note, this will not ship
in Donut, it's a placeholder for working on the "framework"
aspects.)
BUG=1740621,1740626

Automated import of CL 144525
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupExchange.java
ndroid/email/mail/exchange/ExchangeFolderExample.java
ndroid/email/mail/exchange/ExchangeSenderExample.java
ndroid/email/mail/exchange/ExchangeStoreExample.java
ndroid/email/mail/exchange/ExchangeTransportExample.java
2b0c619f1edd9fd89dc06bf35d99ece91f415f1e 04-Apr-2009 Andy Stadler <> AI 144520: General cleanup after the integrations in CL 143018. Some spelling
errors, inconsistencies in passing Application/Activity/Context, and
some error handling cleanups. These are all changes that would have
probably been made before the original submits, but I didn't want
to fix them in the integration step.
BUG=1740621

Automated import of CL 144520
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ae8ca3fbd1545c3a94011d7d70bcadac99e7779f 27-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@143018,143018
ndroid/email/MessagingController.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/SmtpSender.java
dfa98d5e1fdf976e232819b8e31d15d637a41663 26-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@142711,142711
ndroid/email/activity/MessageView.java
d12181df8f64f0b315dad0bf75d289c41dd7ca42 25-Mar-2009 Tadashi Takaoka <> Automated import from //branches/donutburger/...@142461,142461
ndroid/email/Email.java
7265bb729b822457f9ae56ef4dd23db5e6ada8d6 25-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@142152,142152
ndroid/email/Email.java
ndroid/email/activity/MessageCompose.java
7dbeb7d91c7b3970426af6debe48301ba053fd79 25-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@141237,141237
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeUtility.java
3469902379242c723b871d1dcb09b02d0998d538 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
ndroid/email/activity/MessageView.java
ndroid/email/mail/Address.java
ndroid/email/mail/Part.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/transport/LoggingInputStream.java
3b85e2c2b5662c58525baa41479e42c59e292f66 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
3debc4f25a34600b896bb4a77a51bf39427b1cad 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
3db9542af6be894a4b053c3c6eb9baf456cc8a44 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
ndroid/email/activity/MessageView.java
ndroid/email/service/MailService.java
96c5af40d639d629267794f4f0338a267ff94ce5 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid/email/Account.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/EmailAddressValidator.java
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/PeekableInputStream.java
ndroid/email/Preferences.java
ndroid/email/Utility.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/Debug.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/ProgressListener.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SpinnerOption.java
ndroid/email/codec/binary/Base64.java
ndroid/email/codec/binary/Base64OutputStream.java
ndroid/email/mail/Address.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/Body.java
ndroid/email/mail/BodyPart.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Flag.java
ndroid/email/mail/Folder.java
ndroid/email/mail/Message.java
ndroid/email/mail/MessageDateComparator.java
ndroid/email/mail/MessageRetrievalListener.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Multipart.java
ndroid/email/mail/NoSuchProviderException.java
ndroid/email/mail/Part.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeMultipart.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/CountingOutputStream.java
ndroid/email/mail/transport/EOLConvertingOutputStream.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/MailService.java
eetstra/jutf7/Base64Util.java
eetstra/jutf7/CharsetProvider.java
eetstra/jutf7/ModifiedUTF7Charset.java
eetstra/jutf7/UTF7Charset.java
eetstra/jutf7/UTF7StyleCharset.java
eetstra/jutf7/UTF7StyleCharsetDecoder.java
eetstra/jutf7/UTF7StyleCharsetEncoder.java
8c2158a5ebb88e226c23b66ff95910158a2727df 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid/email/Account.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/EmailAddressValidator.java
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/PeekableInputStream.java
ndroid/email/Preferences.java
ndroid/email/Utility.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/Debug.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/ProgressListener.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SpinnerOption.java
ndroid/email/codec/binary/Base64.java
ndroid/email/codec/binary/Base64OutputStream.java
ndroid/email/mail/Address.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/Body.java
ndroid/email/mail/BodyPart.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Flag.java
ndroid/email/mail/Folder.java
ndroid/email/mail/Message.java
ndroid/email/mail/MessageDateComparator.java
ndroid/email/mail/MessageRetrievalListener.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Multipart.java
ndroid/email/mail/NoSuchProviderException.java
ndroid/email/mail/Part.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeMultipart.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/CountingOutputStream.java
ndroid/email/mail/transport/EOLConvertingOutputStream.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/MailService.java
eetstra/jutf7/Base64Util.java
eetstra/jutf7/CharsetProvider.java
eetstra/jutf7/ModifiedUTF7Charset.java
eetstra/jutf7/UTF7Charset.java
eetstra/jutf7/UTF7StyleCharset.java
eetstra/jutf7/UTF7StyleCharsetDecoder.java
eetstra/jutf7/UTF7StyleCharsetEncoder.java
1f5bbf66d14caf6c8e7fb594fd1203601f588e93 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
ndroid/email/activity/MessageView.java
7a8703fda965e08ee255ef5f40f7e121ebf2f5e6 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
ndroid/email/activity/MessageView.java
88a1d6f92da47dc816377ee8911db15927b9f62b 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
ndroid/email/Email.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/MessageCompose.java
ff4eb775dfc72375053733d7b8a0b18c4f43dbbb 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
ndroid/email/Email.java
ndroid/email/MessagingController.java
ndroid/email/Preferences.java
ndroid/email/activity/AccountShortcutPicker.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageView.java
f7ae27b973c7a93cd5fb8432940179f6b76a9548 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
ndroid/email/activity/Accounts.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/store/ImapResponseParser.java
be72b1d08af5851ba79651671df8c8b750e35f73 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
ndroid/email/activity/setup/AccountSetupBasics.java
b957c795560ac4f5ea45a00c3103c5bc25ec01d0 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
ndroid/email/mail/internet/MimeUtility.java
687f9962d7095e18ef994cd0e64337f02ed1a5bd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ndroid/email/Account.java
ndroid/email/Email.java
ndroid/email/EmailAddressValidator.java
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/PeekableInputStream.java
ndroid/email/Preferences.java
ndroid/email/Utility.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/Debug.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/ProgressListener.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SpinnerOption.java
ndroid/email/codec/binary/Base64.java
ndroid/email/mail/Address.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/Body.java
ndroid/email/mail/BodyPart.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Flag.java
ndroid/email/mail/Folder.java
ndroid/email/mail/Message.java
ndroid/email/mail/MessageDateComparator.java
ndroid/email/mail/MessageRetrievalListener.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Multipart.java
ndroid/email/mail/NoSuchProviderException.java
ndroid/email/mail/Part.java
ndroid/email/mail/Sender.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeMultipart.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/CountingOutputStream.java
ndroid/email/mail/transport/EOLConvertingOutputStream.java
ndroid/email/mail/transport/MailTransport.java
ndroid/email/mail/transport/SmtpSender.java
ndroid/email/mail/transport/SmtpTransport.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/MailService.java
8978aac1977408b05e386ae846c30920c7faa0a6 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroid/email/Account.java
ndroid/email/Email.java
ndroid/email/EmailAddressAdapter.java
ndroid/email/EmailAddressValidator.java
ndroid/email/FixedLengthInputStream.java
ndroid/email/MessagingController.java
ndroid/email/MessagingListener.java
ndroid/email/PeekableInputStream.java
ndroid/email/Preferences.java
ndroid/email/Utility.java
ndroid/email/activity/Accounts.java
ndroid/email/activity/Debug.java
ndroid/email/activity/FolderMessageList.java
ndroid/email/activity/MessageCompose.java
ndroid/email/activity/MessageView.java
ndroid/email/activity/ProgressListener.java
ndroid/email/activity/Welcome.java
ndroid/email/activity/setup/AccountSettings.java
ndroid/email/activity/setup/AccountSetupAccountType.java
ndroid/email/activity/setup/AccountSetupBasics.java
ndroid/email/activity/setup/AccountSetupCheckSettings.java
ndroid/email/activity/setup/AccountSetupIncoming.java
ndroid/email/activity/setup/AccountSetupNames.java
ndroid/email/activity/setup/AccountSetupOptions.java
ndroid/email/activity/setup/AccountSetupOutgoing.java
ndroid/email/activity/setup/SpinnerOption.java
ndroid/email/codec/binary/Base64.java
ndroid/email/codec/binary/Base64OutputStream.java
ndroid/email/mail/Address.java
ndroid/email/mail/AuthenticationFailedException.java
ndroid/email/mail/Body.java
ndroid/email/mail/BodyPart.java
ndroid/email/mail/CertificateValidationException.java
ndroid/email/mail/FetchProfile.java
ndroid/email/mail/Flag.java
ndroid/email/mail/Folder.java
ndroid/email/mail/Message.java
ndroid/email/mail/MessageDateComparator.java
ndroid/email/mail/MessageRetrievalListener.java
ndroid/email/mail/MessagingException.java
ndroid/email/mail/Multipart.java
ndroid/email/mail/NoSuchProviderException.java
ndroid/email/mail/Part.java
ndroid/email/mail/Store.java
ndroid/email/mail/Transport.java
ndroid/email/mail/internet/BinaryTempFileBody.java
ndroid/email/mail/internet/MimeBodyPart.java
ndroid/email/mail/internet/MimeHeader.java
ndroid/email/mail/internet/MimeMessage.java
ndroid/email/mail/internet/MimeMultipart.java
ndroid/email/mail/internet/MimeUtility.java
ndroid/email/mail/internet/TextBody.java
ndroid/email/mail/store/ImapResponseParser.java
ndroid/email/mail/store/ImapStore.java
ndroid/email/mail/store/LocalStore.java
ndroid/email/mail/store/Pop3Store.java
ndroid/email/mail/store/TrustManagerFactory.java
ndroid/email/mail/transport/CountingOutputStream.java
ndroid/email/mail/transport/EOLConvertingOutputStream.java
ndroid/email/mail/transport/SmtpTransport.java
ndroid/email/mail/transport/StatusOutputStream.java
ndroid/email/provider/AttachmentProvider.java
ndroid/email/service/BootReceiver.java
ndroid/email/service/MailService.java
eetstra/jutf7/Base64Util.java
eetstra/jutf7/CharsetProvider.java
eetstra/jutf7/ModifiedUTF7Charset.java
eetstra/jutf7/UTF7Charset.java
eetstra/jutf7/UTF7StyleCharset.java
eetstra/jutf7/UTF7StyleCharsetDecoder.java
eetstra/jutf7/UTF7StyleCharsetEncoder.java