summaryrefslogtreecommitdiffstats
path: root/provider_src/com
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-6.0.1_r72' into HEADJessica Wagantall2016-10-061-5/+9
|\ | | | | | | | | | | | | Android 6.0.1 Release 72 (M4B30X) # gpg: Signature made Tue 04 Oct 2016 09:47:44 AM PDT using DSA key ID 9AB10E78 # gpg: Can't check signature: public key not found
| * Limit account id and id to longsRohan Shah2016-08-261-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The security issue occurs because id is allowed to be an arbitrary path instead of being limited to what it is -- a long. Both id and account id are now parsed into longs (and if either fails, an error will be logged and null will be returned). Tested/verified error is logged using the reported attack. BUG=30745403 Change-Id: Ia21418545bbaeb96fb5ab6c3f4e71858e57b8684 (cherry picked from commit 9794d7e8216138adf143a3b6faf3d5683316a662)
* | email: junk iconJorge Ruesga2016-01-131-0/+1
| | | | | | | | | | | | Change-Id: I5c5ad8e76025c92c2b11dd1948e32eaa5efe8fd5 Signed-off-by: Jorge Ruesga <jorge@ruesga.com> (cherry picked from commit b9984debe6b72f06cbf9bf72baa54b80f017eb38)
* | email: return default folder name for subfoldersJorge Ruesga2016-01-131-6/+20
| | | | | | | | | | | | | | | | | | | | | | For subfolders of system folder type return the remote folder name instead of translate it to the default folder type resource name. Subfolders shouldn't be considered as system folders. For example a SPAM folder of a SPAM root folder (Junk/Ham should be displayed as Ham instead of Junk). Change-Id: I2644b8da336e3f0983d24355aefe961aa8acf30b Signed-off-by: Jorge Ruesga <jorge@ruesga.com> (cherry picked from commit db1ca54cd325c64971240d92ed11dad175d83579)
* | email: fix empty body updateJorge Ruesga2015-10-181-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | Currently, body text and html are removed from the content values to be stored as files in the filesystem. This could lead to a IllegalArgumentException because we passed an empty content value to the update operation. We must ensure that we update at least one item. Related BUGDUMP-4037330 and http://forum.cyanogenmod.org/topic/112563-massive-data-use Change-Id: Ib9ba10eb2cb86598bef6e5f8bc11553d09fc4ef8 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
* | Allow saving attachments even if there's no intent handling them.Danny Baumann2015-10-181-1/+0
| | | | | | | | | | | | | | For e.g. compressed files that doesn't mean they can't be opened, as they still can be unpacked by the file manager. Change-Id: I53c80b7bedb44732bc1cf346a83c1f6e39fb0da0
* | Don't cancel PendingIntents used for AlarmManager.Danny Baumann2015-10-181-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Creating new ones (which is the implicit effect of FLAG_CANCEL_CURRENT) causes PendingIntent.equals() to return false for the new and the old instance, which in turn leads to AlarmManager failing to remove the alarm. Also remove the unneeded request code offsets. The intent actions for the various actions are already distinct, so we need to only identify between the intents that have the same actions; using the mailbox ID as request code is sufficient for that purpose. Change-Id: I9030c24a9c6b1c722b246601fde741f7027d3de7
* | Optimize connection loss and re-gain behaviour.Danny Baumann2015-10-181-54/+106
| | | | | | | | | | | | | | | | | | Schedule the ping restart through AlarmManager to be able to cancel it properly on connection loss, and make sure to only restart idle connections that aren't already idling (which may happen e.g. on bootup or if there was a sync request in the 30 second wait window). Change-Id: If62ffa0981a7a0a71ed7764a9724c07466c6d8a3
* | Refine thread handling.Danny Baumann2015-10-181-26/+28
| | | | | | | | | | | | | | Remove mailboxes from the list synchronously and just do the network I/O and thread joins in the background. Change-Id: I2a339e5982c103b69f1212627f1cc98e98a8a068
* | Properly unregister alarm manager callbacks.Danny Baumann2015-10-182-0/+18
| | | | | | | | Change-Id: I2d474bc1cee168a5b76b8710b382498cd6c2fd59
* | Use AlarmManager to schedule an IDLE connection restart.Danny Baumann2015-10-181-60/+70
| | | | | | | | | | | | We also want to restart it during sleep. Change-Id: Ib2c26e06fb923487b10d94edc1bbd743ebb39fb1
* | Don't auto-register IDLE when gaining connection.Danny Baumann2015-10-182-47/+3
| | | | | | | | | | | | | | | | We request a sync in this case anyway, which in turn starts the IDLE connection anyway. If we're starting IDLE earlier, we do unnecessary work as the sync will tear it down just a few moments later. Change-Id: I9b99023fbe1aaab72638f6ef9d29223d9a325b7b
* | Do less work on IDLE refresh.Danny Baumann2015-10-184-57/+126
| | | | | | | | | | | | | | | | | | | | | | Don't do a full reconnection, but just a stopIdling/startIdling pair. In order to be able to do that, make sure the IDLE connection is fully shut down when stopIdling() returns, for which some refactoring was needed to avoid a deadlock on mIdledFolders: the ImapIdleListener callbacks acquire this lock, so stopIdling() now MUST NOT be called with mIdledFolders lock held. Change-Id: Ifa1677d7845722ccee2b1b9380c7b7e4014bcd97
* | Improve debug logging.Danny Baumann2015-10-182-5/+10
| | | | | | | | Change-Id: I13a99d5caadcc7bd2682791527f71a697d07f8d0
* | Use an inexact timer for the IDLE refresh.Danny Baumann2015-10-181-13/+26
| | | | | | | | | | | | | | Also use a wakeup timer, as we can't rely on the screen being turned on at refresh time. Change-Id: If64c164fd151c63404d0d63d9c463556cc3d0658
* | Don't throw a NPE when operating on a destroyed list.Danny Baumann2015-10-181-2/+2
| | | | | | | | Change-Id: Ie4ca1fdd55031efa56448bf0237d0edab51ea349
* | Fix some more argument order issues.Danny Baumann2015-10-181-4/+4
| | | | | | | | Change-Id: I1ea17a0fba4ff3af03ee8c0acbe9967bed92aae1
* | Simplify logic.Danny Baumann2015-10-181-23/+25
| | | | | | | | | | | | | | Make sure that either messages are fetched or a sync is initiated, and there can be no situation where neither happens. Change-Id: I73ec2482a5a86c54309634f434b7d8fd77d7c079
* | Fix some typos.Danny Baumann2015-10-181-4/+4
| | | | | | | | Change-Id: Idd3018a03023efe02c3bcf40b44c8f5a5e304436
* | Don't solely rely on the presence of RECENT for checking for new mail.Danny Baumann2015-10-181-5/+25
| | | | | | | | | | | | | | | | | | It may happen (depending on server and/or timing) that only an EXISTS response is sent to the IDLE connection when new mail arrives. Don't discard that response, but evaluate it to determine whether there's new mail by checking whether the message count increased. Change-Id: Ia49714e6cd42dd71dfda8b7bbdf1fd622972edda
* | Don't re-sync when refreshing the IDLE connection.Danny Baumann2015-10-181-12/+4
| | | | | | | | | | | | | | The refreshing (done every 25 minutes) should be a cheap operation. Instead, do a (quick) re-sync after idling failed. Change-Id: Idfcc775417dc02417142e51ca546c9564c660aab
* | Reset idling flag when cancelling early due to being cancelled.Danny Baumann2015-10-181-0/+1
| | | | | | | | Change-Id: Idde5f3a3fa04a1aa80ef4cdb9e3ba1ab01d3fcb5
* | Add some debug statements.Danny Baumann2015-10-181-0/+2
| | | | | | | | Change-Id: I9295bedb5b7908c8ee873285c255816373d2c602
* | Assign debug tags to IMAP communication output.Danny Baumann2015-10-184-7/+44
| | | | | | | | | | | | Allows better tracking of the output if multiple connections are active. Change-Id: I900c9f9ecda06d3191c4cf82af7e774ae70b7dac
* | Fix argument order.Danny Baumann2015-10-182-6/+6
| | | | | | | | Change-Id: I087937c1323cfa1fd3d5400ef0a69d7476e36d20
* | Simplify code.Danny Baumann2015-10-181-3/+1
| | | | | | | | Change-Id: I6c783afb9c436a35176134bfe7ae5264f2255b2f
* | email: catch the correct exception while closing the buffersJorge Ruesga2015-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | BinaryTempFileBody#getBody()#getInputStream() returns a MessagingException not an IOException. This causes "com.android.emailcommon.mail.MessagingException: Unable to open body" exception messages and attachment messages not flagged as loaded. Change-Id: Ia8f25dd0a212ce52e3dd202c523c5db4a009604f Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
* | Fix ArrayIndexOutOfBoundsException.Danny Baumann2015-10-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | This crash happens when the server isn't able to resolve the MSN: FATAL EXCEPTION: IdleReader 3:Inbox Process: com.android.email, PID: 3200 java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at com.android.email.mail.store.ImapFolder.extractImapChanges(ImapFolder.java:1641) at com.android.email.mail.store.ImapFolder.access$700(ImapFolder.java:77) at com.android.email.mail.store.ImapFolder$1.run(ImapFolder.java:294) Change-Id: I8a8c7cf3f2949630ee9db3646e5832246d69132d
* | email: fix NPEJorge Ruesga2015-10-181-1/+1
| | | | | | | | | | | | | | Fix possible NPE when protocol don't offers offerLookback (pop3) Change-Id: Id924e06e691d0ed99179fcd37fd213ac379340fd Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
* | email: imap pushJorge Ruesga2015-10-1819-40/+1971
| | | | | | | | | | Change-Id: I8a184a5644e4322ee65d969e14cd47fe119f5df2 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
* | email: fix Account table creationJorge Ruesga2015-10-181-1/+7
| | | | | | | | | | | | | | | | | | | | | | Due to a bug in commit 44a064e5f16ddaac25f2acfc03c118f65bc48aec, AUTO_FETCH_ATTACHMENTS column could not be available in the Account table. Since cm12 and up doesn't use this column, we are leave as is it. In case the feature were added, then we need to create a new exception to ensure that the columns is re-added. Change-Id: I1803e343dde2e841fdc99b4489a74eb08b0a8352 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
* | email: support for auto-sync multiple IMAP foldersJorge Ruesga2015-10-184-50/+91
| | | | | | | | | | | | | | | | | | This enables to auto-sync multiple IMAP folders, not only Inbox. Default to Inbox only. This changes relays in the syncloopback attribute to configure the folders to add to sync process. Change-Id: I8973cfd6ddec33446256bc8b48418558e27596b5 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
* | email: don't block extras databaseJorge Ruesga2015-10-181-12/+6
| | | | | | | | | | | | | | | | 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>
* | email: suggested contactsJorge Ruesga2015-10-182-8/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Don't fetch deleted messages from IMAP folderDaniel Volk2015-10-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Fetching messages from an IMAP folder within a specific date range returns messages marked as deleted, also. Unlike every other getMessages() method, which filter out deleted messages. This leaves server deleted messages untouched in the mail conversation view, even when the folder is synced manually. This patch adds "NOT DELETED" to the IMAP search command, when searching for mails in a given date range. Change-Id: I49e4adfcab9a1de1d1baa4700462a82df651f3cb
* | DBHelper: Support upgrades from CM11Ricardo Cerqueira2015-10-181-4/+25
| | | | | | | | | | | | | | | | Add the new columns when coming from v126, add the old ones when coming from any other value (or creating) so that they're there when the feature gets reintroduced Change-Id: I48ec042b30afbcefd43bdad0042147b6b0d2249f
* | Add MAIL_SERVICE WAKEUP, SEND, MOVE, READ, DELETE MESSAGE actionAshwini Munigala2015-10-065-4/+396
|/ | | | | | | | | | | | | Add change in Email App to process following intents from Bluetooth App, for MAP MSE support. - org.codeaurora.email.intent.action.MAIL_SERVICE_WAKEUP - org.codeaurora.email.intent.action.MAIL_SERVICE_DELETE_MESSAGE - org.codeaurora.email.intent.action.MAIL_SERVICE_MOVE_MESSAGE - org.codeaurora.email.intent.action.MAIL_SERVICE_MESSAGE_READ - org.codeaurora.email.intent.action.MAIL_SERVICE_SEND_PENDING Change-Id: I2b46265ba20c6f333c9e6d1b19ee73f5a066f1ff
* Add additional analytics regarding our SSLSocketsMartin Hibdon2014-10-241-2/+8
| | | | | | | | | | | b/18104622 There were some suggestions for additional info to log. Now we also log the protocol being used, along with the cipher suite, and whether or not we are accepting all certificates (i.e. whether or not we are verifying hostnames.) Change-Id: Iad1fa4d2867d4a27830d54cc7fafcd0d32e0b23b
* Add analytics to track of what cipher suites are being usedMartin Hibdon2014-10-241-0/+13
| | | | | | | | | | | | | | b/18001842 I do this in MailTransport, which is only used by POP and IMAP. I can't log Analytics in SSLSocketFactoryWrapper, because that is in emailcommon and would cause a circular dependancy between emailcomman and UnifiedEmail. This will not yet work for Exchange, because it gets its socket indirectly through EmailClientConnectionManager, using a SchemeRegistry. Still, it will be helpful to get this info for POP and IMAP. Change-Id: Ibb9d22c83c49d0ba5090295b5321ca6afb09e65b
* Merge "Disable smart foward/reply" into ub-gmail-ur14-devMartin Hibdon2014-10-211-1/+19
|\
| * Disable smart foward/replyMartin Hibdon2014-10-211-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix handling AOL's login rejectionTony Mantler2014-10-203-3/+20
|/ | | | | | | Found while investigating b/18031180 b/18049329 Change-Id: I2c86449008fb5e89c84db1a0753b8a61f42305b9
* Correctly update UI_SYNC_STATUS upon searchMartin Hibdon2014-10-161-1/+1
| | | | | | b/17377040 Change-Id: I5cf9281fa204ac780b737215a86362a8317d63b6
* Merge "Resend notifications when Accounts are changed" into ub-gmail-ur14-devRégis Décamps2014-10-151-1/+5
|\
| * Resend notifications when Accounts are changedRégis Décamps2014-10-081-1/+5
| | | | | | | | | | | | | | | | | | When AccountManager notifies of account change, resend notifications because the existing ones can point to an account that doesn't exist anymore. Bug: 17713589 Gmail crashes when accessing an old notification for an account that has been deleted. Change-Id: I6c2cf5234006f4859fea5bbaa52970963bcfccdd
* | Set mailbox uiSyncStatus when IMAP and POP folders are createdMartin Hibdon2014-10-143-1/+44
| | | | | | | | | | | | | | | | | | | | b/17443087 Now for certain folder types, when they are first created, the uiSyncStatus is set to NEEDS_INITIAL_SYNC. This prevents us from displaying the empty state until after the sync has completed. Change-Id: Ib04c915f6972ecb75092dd50e90dee8647ee2f64
* | Merge "Set the search mailbox's syncState as soon as a search is requested" ↵Martin Hibdon2014-10-101-6/+16
|\ \ | | | | | | | | | into ub-gmail-ur14-dev
| * | Set the search mailbox's syncState as soon as a search is requestedMartin Hibdon2014-10-101-6/+16
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* / EmailProvider now supports query and getType for cached file urlsMartin Hibdon2014-10-101-0/+76
|/ | | | | | | | | | | 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
* Merge "Get SSLSocketFactory from GmsCore" into ub-gmail-ur14-devMartin Hibdon2014-10-031-2/+3
|\