* Functionality is effectively unchanged, but we reuse existing
code rather than custom code created for this purpose
* Fix bug related to setting mFlagLoaded after loading a plain
text body
Change-Id: Iaaf647c0560827f318c8b7a00fb18a6570783c99
Merge commit '0ac04f7297708f00c25772add8c3b397acb975a6'
* commit '0ac04f7297708f00c25772add8c3b397acb975a6':
DO NOT MERGE: Send intro text with SmartForward
Merge commit '99579872de99b687d4a16e759cb9b1392a996d9b'
* commit '99579872de99b687d4a16e759cb9b1392a996d9b':
DO NOT MERGE: Make sure signature is added to reply/forward
* The code to enforce a sync window (limit to the number of items
synced per request) was inadvertently removed in an earlier
CL; restore it here
Bug: 3018568
Change-Id: Ib2377b36999b92d0bcef1b159416f46016137100
Merge commit 'e596086160bc3edb348cfc7657742adc8019b24b'
* commit 'e596086160bc3edb348cfc7657742adc8019b24b':
DO NOT MERGE: New IMAP parser to fix long-lasting problems.
Merge commit '01d5e0a6aed9f0c5fc6ada4a9d577d48ca9da16a'
* commit '01d5e0a6aed9f0c5fc6ada4a9d577d48ca9da16a':
DO NOT MERGE: Two new tests for the bottom half of ImapFolder.append().
Merge commit '4746f2f862ce64ef25de35880e9730a1a698f9af'
* commit '4746f2f862ce64ef25de35880e9730a1a698f9af':
DO NOT MERGE: Clean up ImapStore and related classes.
Merge commit 'a6e83640a4eb1668780299a0afde9b55e0979830'
* commit 'a6e83640a4eb1668780299a0afde9b55e0979830':
DO NOT MERGE: More tests for IMAP, clean up, and a few bug fixes.
Merge commit '1dbf8b08f0bbf37b6f01761032c8b361229b9bc3'
* commit '1dbf8b08f0bbf37b6f01761032c8b361229b9bc3':
DO NOT MERGE: More test for ImapStore/ImapFolder.
Merge commit 'ba2f13754012265626e562f9bb38c588f5bad4c3'
* commit 'ba2f13754012265626e562f9bb38c588f5bad4c3':
DO NOT MERGE Send local IP address with EHLO instead of "localhost".
Merge commit '96fa5834d4bccbbcfb512c6f2fe40a2db1db476b'
* commit '96fa5834d4bccbbcfb512c6f2fe40a2db1db476b':
DO NOT MERGE: Add static method to get temp dir in Email.
Merge commit 'ef70c9872b90d0980260a9be020cbfcc286d405f' into gingerbread-plus-aosp
* commit 'ef70c9872b90d0980260a9be020cbfcc286d405f':
DO NOT MERGE: Send intro text with SmartForward
Merge commit '65124587840b840bc00ddb6d8670018a92644739' into gingerbread-plus-aosp
* commit '65124587840b840bc00ddb6d8670018a92644739':
DO NOT MERGE: Make sure signature is added to reply/forward
* 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
* Add this to processSourceMessage in the reply/forward cases
* Add unit tests for reply and forward case
Backport of I6be8383fe5f217a4bda8e669cb69f439bc8e96b6
Bug: 2734321
Change-Id: Ia59e8c4e2f9663f2a10cff066eddeff80bc06cef
Merge commit 'ff0712cb1e2e1902d754ac37ab637b94b8cc8933' into gingerbread-plus-aosp
* commit 'ff0712cb1e2e1902d754ac37ab637b94b8cc8933':
DO NOT MERGE: New IMAP parser to fix long-lasting problems.
Merge commit '9d1b9fc78494adba2c2cd58faa69c234a6efd408' into gingerbread-plus-aosp
* commit '9d1b9fc78494adba2c2cd58faa69c234a6efd408':
DO NOT MERGE: Two new tests for the bottom half of ImapFolder.append().
Merge commit '80202a9599d25fe9f01e23897938e7280ce1c554' into gingerbread-plus-aosp
* commit '80202a9599d25fe9f01e23897938e7280ce1c554':
DO NOT MERGE: Clean up ImapStore and related classes.
Merge commit '286eafcf5fa7d37c9100567c8e550c3092106d93' into gingerbread-plus-aosp
* commit '286eafcf5fa7d37c9100567c8e550c3092106d93':
DO NOT MERGE: More tests for IMAP, clean up, and a few bug fixes.
Merge commit 'cd0b60e97ae739555413b2bfd543e4f452a005c6' into gingerbread-plus-aosp
* commit 'cd0b60e97ae739555413b2bfd543e4f452a005c6':
DO NOT MERGE: More test for ImapStore/ImapFolder.
Merge commit 'a599ee773d3bb6350ca775db717123faffbdbfe3' into gingerbread-plus-aosp
* commit 'a599ee773d3bb6350ca775db717123faffbdbfe3':
DO NOT MERGE: Tests for IMAP FETCH
- 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
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
One thing that bothers me regarding the new ImapStore is that there is no
tests to verify if the way how getImapId() uses a vendor policy hasn't changed.
This part is hard to test with a real vendor policy, and it can easily be
overlooked even if it's broken.
This CL offers ImapStoreUnitTests a way to test the interaction between
getImapId() and a vendor policy.
Also fixed a bug in VendorPolicyLoaderTest where it assumed the test apk
package name is "com.android.email.tests", but it may actually be
"com.google.android.email.tests" now. (Broken since the test makefile
used inherit-package.)
Backport of I8feb616ea28cb5cae5b4fba57e363771014ac599
Change-Id: I59536bc9a0e5c09c23eab21cdfb2f8283ef01a42
- 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
Unfortunately it's hard to write tests for this change, but at least
all tests pass with Idc7b88c4.
Backport of If0335a848dfcc23aecea22c21b2cce73dac7ff6f
Change-Id: I6cb3525bc3c67bbf2fb101488bf95edbead5d299
- 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
- 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
They cover the cases:
- when OK response doesn't have APPENDUID.
- when APPEND fails.
Backport of I13a0fb8aaf2e1cbb5a1f055c9ce56e2891373ea0
Change-Id: Ifb5f8c07a8d956b0f4cc019eac7712ef22b0fa73
- 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