• Home
  • History
  • Annotate
  • only in /packages/apps/Email/src/com/android/email/mail/
History log of /packages/apps/Email/src/com/android/email/mail/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0408ee5b946142da9457b5bf596cb84d33d409e3 25-Mar-2011 Andy Stadler <stadler@google.com> DO NOT MERGE - 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
Backport of: If7403bf517477d2b03b21d71caab511fe45e234c

Change-Id: Ia6cc0e3ab0c8a8a78b5d8b8fb7b8ba4b4cdd3ef2
tore/Pop3Store.java
feb9a2c6be046cdb328223c5d76e027c07eb1326 02-Feb-2011 Jean-Baptiste Queru <jbq@google.com> Merge from open-source gingerbread - do not merge

Change-Id: Ic48053624dcb200a64776de01ba258800ed3a75c
499fc762ee4aea0838655adb4bc4f065062ca866 02-Feb-2011 Sang-Jun Park <sj2202.park@samsung.com> Fix a decoding problem on the Email body

When decoding the Email body, email application used google default base64
function. But it caused problem, so particular email did not sync any more.
So we have changed decoding function as a decoder from apache in order
not to occur problem

Change-Id: I7581123f21fbb4015153ca6f4a0c14c0f6a769fc
Signed-off-by: Sang-Jun Park <sj2202.park@samsung.com>
nternet/MimeUtility.java
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
tore/ImapStore.java
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
tore/ImapStore.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
nternet/MimeUtility.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
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
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
ransport/Rfc822Output.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
tore/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
tore/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
tore/ImapStore.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
tore/imap/ImapElement.java
tore/imap/ImapList.java
tore/imap/ImapMemoryLiteral.java
tore/imap/ImapSimpleString.java
tore/imap/ImapString.java
tore/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
tore/ImapStore.java
tore/imap/ImapResponseParser.java
tore/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
tore/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
tore/ImapStore.java
tore/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
etchProfile.java
essage.java
tore/ImapResponseParser.java
tore/ImapStore.java
tore/imap/ImapConstants.java
tore/imap/ImapElement.java
tore/imap/ImapList.java
tore/imap/ImapMemoryLiteral.java
tore/imap/ImapResponse.java
tore/imap/ImapResponseParser.java
tore/imap/ImapSimpleString.java
tore/imap/ImapString.java
tore/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
etchProfile.java
etchable.java
art.java
nternet/MimeUtility.java
tore/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
tore/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
tore/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
nternet/MimeMultipart.java
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
ransport.java
ransport/MailTransport.java
ransport/SmtpSender.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
older.java
essageRetrievalListener.java
tore/ImapStore.java
tore/LocalStore.java
tore/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
nternet/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
ddress.java
ender.java
tore.java
nternet/MimeHeader.java
nternet/MimeMessage.java
tore/ExchangeStore.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
ransport/Rfc822Output.java
ransport/SmtpSender.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
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
tore/ExchangeStore.java
3b811ae4c6bff1204bd08921f5debdb3ad1700b6 01-Jul-2010 Andy Stadler <stadler@android.com> resolved conflicts for merge of fb060de6 to gingerbread

Change-Id: I6ef4bda535650829f994b595d9cb5b57a8775aa5
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
ransport/MailTransport.java
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
165e8bfe7a46564ea98bb16cb059102ba356a1b5 08-May-2010 Makoto Onuki <omakoto@google.com> Cleanup: Add @Override

(Note it's for froyo-plus-asop)

Change-Id: Ic4211c08586e33c44d5d6267c0c9d37f8c7cdc85
ddress.java
ackedString.java
nternet/MimeMessage.java
nternet/MimeMultipart.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
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
ender.java
tore.java
toreSynchronizer.java
nternet/BinaryTempFileBody.java
nternet/EmailHtmlUtil.java
ransport/MailTransport.java
ransport/StatusOutputStream.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
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
tore/ImapResponseParser.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
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
tore/Pop3Store.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
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
ransport/Rfc822Output.java
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
essage.java
tore/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
ransport/SmtpSender.java
38e52ccc72772a1771845b8704b11a89cd7207aa 31-Mar-2010 Mike LeBeau <mlebeau@android.com> Fix build breakage caused by mblank in 47050.

Change-Id: Ic67fbc611c707a6ff4de558ca15e848f25b92728
tore/ImapStore.java
13e497dd406c910219b3bd9f71895808b4a91673 30-Mar-2010 Marc Blank <mblank@google.com> Fix NPE in ImapStore.create

Bug: 2557382
Change-Id: Ia2135e332162b0ae9d0ab85fbcc532ead089e815
tore/ImapStore.java
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
nternet/BinaryTempFileBody.java
nternet/MimeUtility.java
nternet/TextBody.java
tore/ImapStore.java
tore/LocalStore.java
ransport/Rfc822Output.java
ransport/SmtpSender.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
essagingException.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
tore/ImapResponseParser.java
tore/ImapStore.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
ransport/LoggingInputStream.java
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
ransport/Rfc822Output.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
ransport/Rfc822Output.java
319155a06124a590593f313980ab4de14dc5b619 11-Mar-2010 Andrew Stadler <stadler@android.com> Merge "Follow-up to MimeMessage efficiency improvements."
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
nternet/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
tore/ImapResponseParser.java
tore/ImapStore.java
ransport/DiscourseLogger.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
essage.java
nternet/MimeHeader.java
nternet/MimeMessage.java
tore/ImapStore.java
tore/LocalStore.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
tore/LocalStore.java
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
ddress.java
tore/LocalStore.java
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
tore/LocalStore.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
tore/ImapStore.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
tore/ImapStore.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
eetingInfo.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.
ackedString.java
0faa9881dc45a8ae2203b4da4ae7aeaf32fe2b77 23-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Don't use hidden APIs"
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
ransport/Rfc822Output.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
tore/ImapStore.java
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
tore/TrustManagerFactory.java
ransport/MailTransport.java
ransport/SSLUtils.java
33c972e0c62e474d2b2f5a293b92893cac0ea47a 15-Feb-2010 Doug Zongker <dougz@android.com> use the framework Base64 instead of android-common

Change-Id: Ib4f75f66fe8acb1bb5de614bb10e8c938b1d27ef
nternet/BinaryTempFileBody.java
nternet/MimeUtility.java
nternet/TextBody.java
tore/ImapStore.java
tore/LocalStore.java
ransport/Rfc822Output.java
ransport/SmtpSender.java
1a67f06829f46dc59cca0c38325ab1cba335ecfd 12-Feb-2010 Doug Zongker <dougz@android.com> use platform common Base64InputStream

Change-Id: Iebdaf61cd2183c20362052ec39122bf42b23c7b9
nternet/MimeUtility.java
ba714999f24697161f1ecd68199c3b330ea64ab9 10-Feb-2010 Doug Zongker <dougz@android.com> finish replacing Email's base64 implementation with android-common

Change-Id: I19adbbb884311d70073e9f7a961aa6808ac0dfb4
nternet/BinaryTempFileBody.java
tore/LocalStore.java
ransport/Rfc822Output.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
tore/LocalStore.java
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
nternet/TextBody.java
tore/ImapStore.java
ransport/Rfc822Output.java
ransport/SmtpSender.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).
essagingException.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
tore/ExchangeStore.java
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.
tore/ExchangeStore.java
049509d10edc97eb2439ecae24445c526ba4cfef 02-Feb-2010 Makoto Onuki <omakoto@google.com> Merge "Move Eas.ACCOUNT_MANAGER_TYPE out of the package."
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
tore/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.
tore/ExchangeStore.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
tore/ExchangeStore.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.
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
tore/ImapStore.java
08d92ebf4722e45216ee225775a3b86f9ceecc0d 21-Jan-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master
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
nternet/MimeUtility.java
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
tore/ExchangeStore.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.)
tore/ExchangeStore.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
tore.java
tore/ExchangeStore.java
08f9bfe8314a183778a9903395d6a7d2f8005697 06-Jan-2010 Makoto Onuki <omakoto@google.com> unbundle: Moving DomainNameChecker to android common.
tore/TrustManagerFactory.java
56e48981f0093c737b38b7757410283be9ed823f 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
ddress.java
uthenticationFailedException.java
older.java
essagingException.java
ender.java
tore.java
toreSynchronizer.java
ransport.java
xchange/ExchangeFolderExample.java
xchange/ExchangeSenderExample.java
xchange/ExchangeStoreExample.java
xchange/ExchangeTransportExample.java
nternet/EmailHtmlUtil.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
tore/ExchangeStore.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
tore/TrustManagerFactory.java
ransport/ExchangeSender.java
ransport/MailTransport.java
ransport/Rfc822Output.java
ransport/SmtpSender.java
ransport/StatusOutputStream.java
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
essagingException.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
essagingException.java
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
nternet/MimeBodyPart.java
tore/ImapStore.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
tore.java
ransport.java
tore/ExchangeStore.java
tore/ImapStore.java
tore/Pop3Store.java
tore/TrustManagerFactory.java
ransport/MailTransport.java
ransport/SmtpSender.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
tore/ImapStore.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.
tore/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
older.java
nternet/MimeHeader.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.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
ransport/Rfc822Output.java
2b4b5e2f26b2fc9e0875a2a1974d8010794f3642 21-Sep-2009 Marc Blank <mblank@google.com> Clean up recent submission per stadler

Change-Id: I9fdaf3ccefe7eab41ad853e120af36b78a30ce7b
ransport/Rfc822Output.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
ransport/Rfc822Output.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
tore/ExchangeStore.java
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
tore/ExchangeStore.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
tore/Pop3Store.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
ransport/Rfc822Output.java
ransport/SmtpSender.java
ffc681a4da85c82c80d819ab8afb4442577c52a0 15-Sep-2009 Marc Blank <mblank@google.com> Handle the case of no body being present (happens in unit tests)

* Fixes #2121403
ransport/Rfc822Output.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
ransport/Rfc822Output.java
ransport/SmtpSender.java
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
ransport/Rfc822Output.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
tore/ExchangeStore.java
tore/TrustManagerFactory.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.
xchange/ExchangeFolderExample.java
xchange/ExchangeSenderExample.java
xchange/ExchangeStoreExample.java
xchange/ExchangeTransportExample.java
tore/ExchangeStore.java
ransport/ExchangeSender.java
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
tore/ImapStore.java
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)
tore/ExchangeStore.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
tore/ImapStore.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.
tore/TrustManagerFactory.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.
tore/ExchangeStore.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
older.java
xchange/ExchangeFolderExample.java
tore/ExchangeStore.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.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
tore.java
xchange/ExchangeStoreExample.java
tore/ExchangeStore.java
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.
xchange/ExchangeSenderExample.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.
ender.java
xchange/ExchangeSenderExample.java
d0254da4e033df3265d9cea9bcbd8b6817e1d625 16-Aug-2009 Fred Quintana <fredq@google.com> do not merge: cherrypicked 7bb05334b3d711ff1d03672b35f89b326acba198 from master branch
tore/ExchangeStore.java
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
ender.java
xchange/ExchangeSenderExample.java
ransport/Rfc822Output.java
ransport/SmtpSender.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
ransport/Rfc822Output.java
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
ddress.java
ransport/Rfc822Output.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
tore/ExchangeStore.java
ff683a5b98eb0cc9c3e18bd022aa00c617b2eae1 27-Jul-2009 Mihai Preda <preda@google.com> Remove mOldMessage from MessageView.

And add Address.unpackFirst() (used in MessageView) + test.
ddress.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
nternet/EmailHtmlUtil.java
tore/LocalStore.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.
ddress.java
nternet/EmailHtmlUtil.java
7375d950e4c71a3ab2c8c726b7641c825fb92efc 24-Jul-2009 Marc Blank <mblank@google.com> Move to single EmailContent file; fix bug #1998157
tore/ExchangeStore.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
tore/ExchangeStore.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.
tore/ImapStore.java
tore/LocalStore.java
ransport/StatusOutputStream.java
6a6d67edded552c48640c8feb395bbbbf8a1cd73 16-Jul-2009 Marc Blank <mblank@google.com> Fix push bug, minor changes to logging and removal of debug code
tore/ExchangeStore.java
c6893ddf0fc1a647ca13a2b3aac2c68ca345de37 09-Jul-2009 Mihai Preda <preda@google.com> First steps towards using the new EmailContent.Message in MessageCompose.
ddress.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.
xchange/ExchangeTransportExample.java
tore/ExchangeStore.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.
ddress.java
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
essagingException.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.
toreSynchronizer.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.
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
tore/Pop3Store.java
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.
ddress.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)
uthenticationFailedException.java
essagingException.java
xchange/ExchangeTransportExample.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
toreSynchronizer.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.
tore.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
toreSynchronizer.java
xchange/ExchangeTransportExample.java
nternet/EmailHtmlUtil.java
a244abdad0abc2a2b9876cadcbb3e9c49aafbb4f 15-Jun-2009 The Android Open Source Project <initial-contribution@android.com> Do not merge. Merge commit '14f3e16' into donut
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
nternet/EmailHtmlUtil.java
tore/LocalStore.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
toreSynchronizer.java
nternet/EmailHtmlUtil.java
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
nternet/EmailHtmlUtil.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
tore/LocalStore.java
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
nternet/MimeHeader.java
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
nternet/EmailHtmlUtil.java
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
tore/LocalStore.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
art.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
nternet/MimeMessage.java
tore/LocalStore.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.
tore/Pop3Store.java
ransport/SmtpSender.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
tore/ImapResponseParser.java
tore/ImapStore.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
tore/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
nternet/BinaryTempFileBody.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
tore.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
older.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
nternet/MimeUtility.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
xchange/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
tore.java
xchange/ExchangeStoreExample.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
tore.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
tore.java
xchange/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
tore.java
tore/LocalStore.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
ddress.java
nternet/MimeMessage.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
ddress.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
tore/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
tore.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
tore/LocalStore.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
toreSynchronizer.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
tore.java
toreSynchronizer.java
xchange/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
older.java
xchange/ExchangeFolderExample.java
tore/ImapStore.java
tore/LocalStore.java
tore/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
older.java
xchange/ExchangeFolderExample.java
tore/ImapStore.java
tore/LocalStore.java
tore/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
older.java
xchange/ExchangeFolderExample.java
tore/ImapStore.java
tore/LocalStore.java
tore/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
tore.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
older.java
tore.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
tore/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
tore.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
lag.java
older.java
essage.java
tore/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
lag.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
older.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
tore.java
tore/LocalStore.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
older.java
xchange/ExchangeFolderExample.java
tore/ImapStore.java
tore/LocalStore.java
tore/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
tore.java
xchange/ExchangeStoreExample.java
tore/ImapStore.java
tore/Pop3Store.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
tore.java
xchange/ExchangeStoreExample.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
tore.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
xchange/ExchangeFolderExample.java
xchange/ExchangeSenderExample.java
xchange/ExchangeStoreExample.java
xchange/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
ender.java
tore.java
ae8ca3fbd1545c3a94011d7d70bcadac99e7779f 27-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@143018,143018
ender.java
tore.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
ransport/SmtpSender.java
7dbeb7d91c7b3970426af6debe48301ba053fd79 25-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@141237,141237
nternet/MimeMessage.java
nternet/MimeUtility.java
3469902379242c723b871d1dcb09b02d0998d538 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
ddress.java
art.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
nternet/MimeMessage.java
nternet/MimeUtility.java
tore/ImapResponseParser.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
ransport/LoggingInputStream.java
3b85e2c2b5662c58525baa41479e42c59e292f66 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
nternet/MimeHeader.java
nternet/MimeMessage.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
96c5af40d639d629267794f4f0338a267ff94ce5 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ddress.java
uthenticationFailedException.java
ody.java
odyPart.java
ertificateValidationException.java
etchProfile.java
lag.java
older.java
essage.java
essageDateComparator.java
essageRetrievalListener.java
essagingException.java
ultipart.java
oSuchProviderException.java
art.java
ender.java
tore.java
ransport.java
nternet/BinaryTempFileBody.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
nternet/MimeMessage.java
nternet/MimeMultipart.java
nternet/MimeUtility.java
nternet/TextBody.java
tore/ImapResponseParser.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
tore/TrustManagerFactory.java
ransport/CountingOutputStream.java
ransport/EOLConvertingOutputStream.java
ransport/MailTransport.java
ransport/SmtpSender.java
ransport/StatusOutputStream.java
8c2158a5ebb88e226c23b66ff95910158a2727df 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ddress.java
uthenticationFailedException.java
ody.java
odyPart.java
ertificateValidationException.java
etchProfile.java
lag.java
older.java
essage.java
essageDateComparator.java
essageRetrievalListener.java
essagingException.java
ultipart.java
oSuchProviderException.java
art.java
ender.java
tore.java
ransport.java
nternet/BinaryTempFileBody.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
nternet/MimeMessage.java
nternet/MimeMultipart.java
nternet/MimeUtility.java
nternet/TextBody.java
tore/ImapResponseParser.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
tore/TrustManagerFactory.java
ransport/CountingOutputStream.java
ransport/EOLConvertingOutputStream.java
ransport/MailTransport.java
ransport/SmtpSender.java
ransport/StatusOutputStream.java
f7ae27b973c7a93cd5fb8432940179f6b76a9548 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
nternet/MimeMessage.java
tore/ImapResponseParser.java
b957c795560ac4f5ea45a00c3103c5bc25ec01d0 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
nternet/MimeUtility.java
687f9962d7095e18ef994cd0e64337f02ed1a5bd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ddress.java
uthenticationFailedException.java
ody.java
odyPart.java
ertificateValidationException.java
etchProfile.java
lag.java
older.java
essage.java
essageDateComparator.java
essageRetrievalListener.java
essagingException.java
ultipart.java
oSuchProviderException.java
art.java
ender.java
tore.java
ransport.java
nternet/BinaryTempFileBody.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
nternet/MimeMessage.java
nternet/MimeMultipart.java
nternet/MimeUtility.java
nternet/TextBody.java
tore/ImapResponseParser.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
tore/TrustManagerFactory.java
ransport/CountingOutputStream.java
ransport/EOLConvertingOutputStream.java
ransport/MailTransport.java
ransport/SmtpSender.java
ransport/SmtpTransport.java
ransport/StatusOutputStream.java
8978aac1977408b05e386ae846c30920c7faa0a6 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ddress.java
uthenticationFailedException.java
ody.java
odyPart.java
ertificateValidationException.java
etchProfile.java
lag.java
older.java
essage.java
essageDateComparator.java
essageRetrievalListener.java
essagingException.java
ultipart.java
oSuchProviderException.java
art.java
tore.java
ransport.java
nternet/BinaryTempFileBody.java
nternet/MimeBodyPart.java
nternet/MimeHeader.java
nternet/MimeMessage.java
nternet/MimeMultipart.java
nternet/MimeUtility.java
nternet/TextBody.java
tore/ImapResponseParser.java
tore/ImapStore.java
tore/LocalStore.java
tore/Pop3Store.java
tore/TrustManagerFactory.java
ransport/CountingOutputStream.java
ransport/EOLConvertingOutputStream.java
ransport/SmtpTransport.java
ransport/StatusOutputStream.java