This will call other setences (like delete accoutns) to block access. Just integrate
in the normal database transactions
Change-Id: I48d7028f2ceddcdfbc170acd1a1fe32f0322b6e6
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
This change adds support for suggested contacts (email addresses not in the contact
provider and received via email). The implementation creates a new separate
"extras" database (to avoid conflicts with future aosp changes). In the table
SuggestedContacts are stored every email address present in every email inserted
in the database.
This allow to display this contacts in the RecipientEditTextView when compose an email.
Suggested contacts are selected by account (only those ones received by that account).
This features is opt-out by default, but it can be activated in general settings by
choosing the suggested contact mode:
* none: Not active
* recents: Those received within the last 7 days
* all: All the suggested contacts
Change-Id: I156c3b1e2c4e4cff985a2183bc72b805bd596f3b
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
b/17720266
When replying to a message, sometimes the wrong message
is included in the reply. This seems to be related to
smart reply/forward, since it only has ever been known to
happen on an Exchange 2013 server. For now, disable smart
reply/forward.
We do this by making the EmailProvider always zero out the
FLAGS_SUPPORTS_SMART_FORWARD bit on the account. This way
we can control this feature from the Email app, rather than
Exchange.
Change-Id: I88bb5f06a1098f9f085592b0a3cf1a01d9eb3fc7
b/15868294
b/17377040
When we do a search, we clear the current contents of the search mailbox,
and then send a request to whatever service is appropriate (IMAP or
Exchange.) The service then begins a sync and updates the sync state.
The thing is, this leaves a time window when the sync state is still
NONE, but no contents have been loaded yet.
So now, as soon as the search request is made, we set the sync state
to LIVE, then send off the request. That should keep the empty state
view hidden until we actually do the sync.
Change-Id: Ia97e1cf2773db460fdf32aaa45205c4e6034527d
b/17573792
This is needed so that we can send cached files as attachments.
This case comes up if you edit a draft with an attachment,
view the attachment, and then share that with Email.
Also, update the manifest so that EmailProvider grants
uri permission for cachedFiles.
Change-Id: Ib32ae8360b627823af9361cba05e0e5dbd0ae4ca
If we have an error writing an old body file and overwrite the same ID,
we might end up in a situation where we have HTML from one message and Text
from another. Clean up the body files before insert to avoid this.
b/17720266
Change-Id: I2fb18fa24c6f3bc01e7c877e2f3bfccee6a34015
b/16463253
The FAB compose button overlaps the action button found in the TL footer
when network errors occur during sync. To avoid this overlap, the snackbar
is used to display these errors and they no longer appear as a TL footer.
In order to signal the sync error to AAC for display in the snackbar, the
Folder.lastSyncResult needed to be encoded in the manner that AAC reads.
This was not happening for POP/IMAP/Exchange accounts, so a large portion
of this change is encoding that value properly every place it is written.
To ensure the value is read/written properly everywhere, common methods were
introduced in UIProvider that do this work. UIProviderTest was also added
to ensure the read/write methods agree with each other.
Finally, the display of the "Load More" TL footer was updated to match the
latest spec.
Change-Id: I9d3ae1157f288f05b0fed4d1385858f6c9ebfbf9
This reduces the tombstone down by 100K
A follow-on cl will remove the unused resources from the tombstone build
Bug: 17414014
Change-Id: I5d38811b17a5273ec726e750ab123e10e36cee04