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
Merge commit '60ab49eddcf8f7f1fd7c805739d7035eca787107'
* commit '60ab49eddcf8f7f1fd7c805739d7035eca787107':
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
being strict enough about decoupling the MessageListener from
updates to the various lists that should only happen in the UI
thread.
BUG=1812798
Automated import of CL 148096
access mMessageContentView.
This is a brute-force solution, and I have also left TODO notes
mentioning that it might make more sense (long term) to use the
existing handler message mechanism.
BUG=1812798
Automated import of CL 148095
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
(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
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
Merge commit 'b91fe4de91d617a2ddc96082cd06651946f6b454'
* commit 'b91fe4de91d617a2ddc96082cd06651946f6b454':
AI 147868: Fix CL 146360 which didn't make the changes persistent. Changed
Merge commit '0f8a57891fd4fa19fba602249fedd0587177b2f1'
* commit '0f8a57891fd4fa19fba602249fedd0587177b2f1':
AI 147866: To better support remote stores that write back persistent data
Merge commit '085757aa51b6ebdebd10e485c6c54458d5130874'
* commit '085757aa51b6ebdebd10e485c6c54458d5130874':
AI 147839: In checkMail(), do a listFolders() before the existing sync...()
Merge commit '4fca6f3dba633a0f0ee7c91041462ac7fd2a7f78'
* commit '4fca6f3dba633a0f0ee7c91041462ac7fd2a7f78':
AI 147765: Fix concurrency bugs in MessagingController, in the collections
Merge commit 'eeaad585cd95acd5e5355ea02bb4b79715c2f9bc'
* commit 'eeaad585cd95acd5e5355ea02bb4b79715c2f9bc':
AI 147730: 1. Create an API by which a Store can specify its own custom
Merge commit 'a63e9a0c868ec2e1e50368f603e7c048140f6c81'
* commit 'a63e9a0c868ec2e1e50368f603e7c048140f6c81':
AI 147714: New, lighter-weight version of CL 147620. Still touches as many files,
Merge commit '1bca9ccac5ed54d0c90c353a3016b5559fb07535'
* commit '1bca9ccac5ed54d0c90c353a3016b5559fb07535':
AI 147620: Some stores require changing the UID of a message when it is
Merge commit 'c1a26752c1efffe17701f6795572eb9eaaa655ff'
* commit 'c1a26752c1efffe17701f6795572eb9eaaa655ff':
AI 147538: Because mPreferences is transient, we need to pass Context into the
Merge commit 'd4a1c5a232b854ff1808d6d5f8b20b06f8e25d26'
* commit 'd4a1c5a232b854ff1808d6d5f8b20b06f8e25d26':
AI 147486: Change the remote/local mapping callback to be folder-by-folder instead
Merge commit '6f25a47d4a38f04c74c0f0cc3b4fbf67edd5d3de'
* commit '6f25a47d4a38f04c74c0f0cc3b4fbf67edd5d3de':
AI 147452: Update LocalFolder.fetch() to support STRUCTURE mode, in
Merge commit '28874ce46057473eb41b9b1f6f5ee16e283444d1'
* commit '28874ce46057473eb41b9b1f6f5ee16e283444d1':
AI 147423: Provide a hook to notify remote stores that local stores are set up.