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
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
* changes:
Fix the java.lang.StringIndexOutOfBoundsException that occurs when an SMTP server closes the connection early or returns an empty line. Fix the same error in the Pop3 UIDL parser.
*** Reason for rollback ***
Rollback global lock because bug (now fixed) was not caused by
threading/concurrency.
*** Original change description ***
Evidence from failures, and inspection of source, leads me to believe
that SharedPreferences has some non-thread-safe paths. As a quick,
brute-force workaround, I'm putting a global lock around our use of it.
This is a bit inefficient, but cases of multiple threads writing to it
should be very rare.
Note, we don't have an explicit test for this (I will think about
finding a way to write one), but the evidence of this failure is that
after some amount of activity in the Email app, we see corrup
... description truncated by g4 rollback ...
Automated import of CL 149140
*** Reason for rollback ***
Problem found (bug in ICU encoder/decoder) so instrumentation no
longer required here.
*** Original change description ***
Heavily-instrumented Account.java that's looking for the precise moment
when an Account string gets corrupted. Looks for bad base64 strings
and bad store Uri's. Logs the error, and (optionally/disabled) throws
an exception (good for debugging).
BUG=1822859
Automated import of CL 149088
when an Account string gets corrupted. Looks for bad base64 strings
and bad store Uri's. Logs the error, and (optionally/disabled) throws
an exception (good for debugging).
BUG=1822859
Automated import of CL 148488
READ_PHONE_STATE so a push mode service can hold an active
network connection, monitor roaming status, etc. (2) Refresh
push mode status on Refresh(), not just on Check, so UI
(settings) changes, which call refresh(), propagate immediately
to the stores.
BUG=1776149
Automated import of CL 148377
for new accounts to "1 day". (2) Remove "all" from the list
of available lookback window sizes, to prevent runaway
during our simplistic sync model.
BUG=1789913
Automated import of CL 148376
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
that SharedPreferences has some non-thread-safe paths. As a quick,
brute-force workaround, I'm putting a global lock around our use of it.
This is a bit inefficient, but cases of multiple threads writing to it
should be very rare.
Note, we don't have an explicit test for this (I will think about
finding a way to write one), but the evidence of this failure is that
after some amount of activity in the Email app, we see corruption in
the string mSenderUri.
BUG=1822859
Automated import of CL 148333
the original filters. This affects preview, not download.
This does not preflight the launch at all, it is very simple
as it simply downloads the attachment and then tries to open it.
If no activity is found, it uses a toast to say "couldn't do
that." A better fix will be to pre-check the mime type to see
if there are any intent filters to handle it.
BUG=1650669
Automated import of CL 148257
At this point, *all* MessageListener callbacks should have their
work routed through the handler for deeper processing (especially
anything that affects the lists) to be in the UI thread only.
Also fixed a minor regression introduced in CL 148096 (on
configurations with a single account, the inbox was not
automatically preopening - this affected desktop shortcuts
as well.)
BUG=1812798
Automated import of CL 148256
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
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
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
MessagingController to accept and track a Context, instead of the
unnecessary Application object, which makes this fix more testable.
BUG=1790798
Automated import of CL 147868
or other changes during a delete operation, we need to explicitly
open the remote trash folder and give it the callbacks.
BUG=1807499
Automated import of CL 147866
calls for each account. This allows the folder list to be
updated before it is synced, which is necessary for some
stores.
BUG=1807499
Automated import of CL 147839
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
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
*** 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