Commit Graph

431 Commits

Author SHA1 Message Date
Martin Hibdon 21dc44d235 Merge "Add analytics to track of what cipher suites are being used" into ub-gmail-ur14-dev 2014-10-24 19:34:10 +00:00
Martin Hibdon 93a9662d8d Add analytics to track of what cipher suites are being used
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
2014-10-24 11:46:48 -07:00
Martin Hibdon 303b553b13 Allow an external security provider to be installed
b/18001842

Change-Id: I8312fe541896e1ceeb6c5102f90bdbb0bb945151
2014-10-21 15:20:56 -07:00
Martin Hibdon a908d45ae3 Merge "Add deprecated cipher suites to our SSLSocket" into ub-gmail-ur14-dev 2014-10-21 21:19:43 +00:00
Anthony Lee 8b7fd49b13 Fix restoreBodySource key so it returns the correct value.
The previous version of this function would return the _ID value
instead of the SOURCE_MESSAGE_KEY value from the Body row.

Bug: 17720266
Change-Id: Ie4cfc988b0659892b68d31472ef0c41d4aa98c68
2014-10-21 13:19:45 -07:00
Martin Hibdon 4ecd51a794 Add deprecated cipher suites to our SSLSocket
b/18001842
In the L platform, some cipher suites are disabled by
default. Unfortunately, some of these are still in use
by common email providers. We need them to be enabled
for email to work with these providers.

Change-Id: Ia3a9bab5467c26626db9259074f77ec476610fa5
2014-10-21 12:58:25 -07:00
Martin Hibdon 601700a61e Get SSLSocketFactory from GmsCore
b/15721931
This follows an example pattern from GoogleHttpClient.
It tries to get the SSLCertificateSocketFactory from
GmsCore using reflection. If that fails, (because GmsCore
is not installed on the device) then it will fall back
to the platform implementation.
MailApplication sets a static object in SSLUtils that
allows it to get an externally created SSLCertifcateSocketFactory.
If this method is set, then it will use it, otherwise it
will fall back to the platform factory. This way there
is no reference to GmsCore in the AOSP email.

Change-Id: I0890fe4c3d79283fb98a4dc5a62a32efd320e52a
2014-10-02 10:54:52 -07:00
James Lemieux 40236a8931 Display sync errors using snackbar and not as a TL footer
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
2014-09-29 17:51:27 -07:00
Martin Hibdon 3c2f782c35 When we migrate Exchange folders, set the sync status to INITIAL_SYNC_NEEDED
b/17443087
When we migrate exchange accounts, we copy mailboxes over to the
new account (in order to preserve sync frequency and window).
The problem with this is, you may have many accounts/mailboxes.
After starting the app, it may take quite a long time before all
mailboxes are synced. If the user visits some mailbox near the
bottom, they'll see a misleading "folder is empty" view.
Now, when migrating, we'll set the uisyncstatus to INITIAL_SYNC_NEEDED.

Here I needed to add INITAL_SYNC_NEEDED to the list of states
that EmailConversationCursor will consider incompletely loaded.

Change-Id: Idef13adf9d691c03665830a2f926b1806d7591da
2014-09-26 16:02:22 -07:00
Martin Hibdon ce6916b32a Don't allow disabling of the camera with managed profiles
Change-Id: I2e6085084682b04ef7973bc433214b5b3ab2da79
2014-09-25 13:48:11 -07:00
Martin Hibdon 123d40283e Make sure to close a cursor
b/17570154

Change-Id: I759a116a14784e92e7fa7eb51755ceda3860550e
2014-09-24 11:30:52 -07:00
Martin Hibdon 51c653646d Put debug screen back into settings
There is still work to be done here:
* The debug setting is not persisted in Exchange, so if
the exchange service is killed, when it restarts the logging
will not be active.
* Nothing in Exchange actually does any additional logging
if this logging is turned on.

Change-Id: Ic578e6956f70dd47fba9b2895385312f71c47abf
2014-08-28 11:53:51 -07:00
Anthony Lee 8c65e50bfe b/17135753. Make sure to free ServiceConnection.
The only way that the ServiceConnection was not being freed is if
there was an Exception (other than RemoteException) being thrown
out of mTask.run(). Now the call to unbindService() is called
in a finally() block surrounding that block of code.

Change-Id: I597412233381894be76d3c8bdf99fc7d96794dc2
2014-08-20 14:08:47 -07:00
Tony Mantler 486e971066 Fix providers.xml alternate diversion
b/17048013

Change-Id: If2bc857266a6ba1445bf1fabbaed179c1b13a14f
2014-08-15 11:54:56 -07:00
Tony Mantler f1789afa53 Switch null checks to TextUtils.isEmpty()
b/16872654

Change-Id: Ib8943f068ad6988ff08f8bfd54e2df8fa5ce0274
2014-08-07 14:11:02 -07:00
Tony Mantler 751da26172 Add Exchange fallback and support diverting to Gmail
b/16679701

Change-Id: I59d7cb4a803f0ad8e782614d0c6cc635318d2375
(cherry picked from commit d039322f74)
2014-07-31 21:44:26 +00:00
Martin Hibdon 30a5e1d461 Add copyright notice
Change-Id: I80e074196ca8cb6962d400a756c510c8e3105899
2014-07-14 12:10:20 -07:00
Martin Hibdon bb391e8018 Merge "Update IEmailService" into ub-mail-master 2014-07-14 17:08:38 +00:00
Martin Hibdon 7afbeee47e Update IEmailService
Add version support
Change deleteAccountPIMData to deleteExternalAccountPIMData.
Data kept inside the EmailProvider can be deleted from within
the Email app. Only external data (e.g. contacts and calendar)
need to be deleted by the service which has protocol specific
knowlege.

Change-Id: I875d3051d0cfdbaf52775ec20eb114a345894a93
2014-07-11 15:49:45 -07:00
Tony Mantler 8c03e2af9f Remove direct entry points to AccountSettings
b/16240332

Change-Id: I9bc3f9a2e0b7faa4d8875a9ac7d6d585a65d9733
2014-07-11 21:34:55 +00:00
Régis Décamps c3404cca71 Better documentation for "Account display name".
Give examples of what the display name is.

Change-Id: I2934dc9e8b95d0b32b9c1e9fab391d7ba9e997da
2014-07-10 19:54:02 +02:00
Martin Hibdon 1d8fd9c054 Add communication class for HostAuth
We want a separate class for communicating HostAuth objects
to and from IEmailService. The issue is that the HostAuth object
was being used for both to and from the database, and to and from
IEmailService. This is dangerous because The Email app may change
out of band with the Exchange app, and may need to change the
format of HostAuth. This bit us before when adding OAuth.
Now communication to IEmailService is done using HostAuthCompat.

Change-Id: I2fb8c2bd8158f58a7bb9bc3dc83a7936948c718c
2014-07-07 15:08:52 -07:00
Tony Mantler 88580cd5e0 Merge "Unify settings activity" into ub-mail-master 2014-06-27 15:56:14 +00:00
Tony Mantler 06415a635f Unify settings activity
b/9566150

- Install PublicPreferenceActivity
- Create AccountServerSettingsActivity to contain all the crazy
    logic we don't want in AccountSettings
- Add restoreAccountWithAddress to Account
- Refactor almost everything out of AccountSettings
- Tidy the QuickResponse fragment
- Majorly refactor the AccountSettingsFragment to decouple it from
    the activity, and make it save settings immediately instead of
    when pausing
- Move login warning dialog to AccountSettingsFragment
- Tweak HeadlessAccountSettingsLoader

Change-Id: Ie69181d968b9c3e5940cfef9690b1f5c70e21aa8
2014-06-27 10:49:18 -07:00
Anthony Lee 3d16e5d4b9 Move over to the new AttachmentService.
Change-Id: I4a687b003884ea6a92a755fcbf394001bfc96a38
2014-06-25 09:56:29 -07:00
Paul Westbrook 4038f464de Enable supression of combined account
This enables the client of the provider to suppress the email combined
account.  Later, the UI can enable a combined account that spans all of
the account types

Change-Id: I77e201f751019240af2274a1f74e2124b9889aab
2014-06-20 00:09:07 -07:00
Martin Hibdon fb2a3a2f77 Update IEmailService
This is not yet finalized, but it's needed to fix push syncs
on exchange.

Change-Id: Iaff20aa0bdea9685ef6603de1f861d58fbab6ff1
2014-06-18 14:19:34 -07:00
Tony Mantler 51af59fc66 Remove unused preferences and dead code
Change-Id: Ica8bd735a91417ed44bd547ab7176832745d729e
2014-06-10 11:29:17 -07:00
James Lemieux 97fb20697c Merge "Unit Tests for serialization of Account and HostAuth objects" into ub-mail-master 2014-06-09 23:33:17 +00:00
James Lemieux 9250f47872 Unit Tests for serialization of Account and HostAuth objects
b/14998528

These are particularly important since they are stored in JSON form within the
Account Manager, so maintaining backward compatibility when future changes are
introduced is crucial.

Change-Id: I51333a364726a4c7e2fe88ee888e8c4cc11d962f
2014-06-09 16:18:27 -07:00
Tony Mantler 524e0a5fbc am 73101f3a: Fix OAuth when changing credentials from settings
* commit '73101f3a7bc1e735199a7c2c18358e9db9af0bca':
  Fix OAuth when changing credentials from settings
2014-06-09 22:50:37 +00:00
Tony Mantler 73101f3a7b Fix OAuth when changing credentials from settings
b/15521401

Change-Id: I7909389943c8e3eefbef0699f1c7c9c338282ca5
(cherry picked from commit 994c282d80)
2014-06-09 22:45:45 +00:00
Tony Mantler 994c282d80 Fix OAuth when changing credentials from settings
b/15521401

Change-Id: I7909389943c8e3eefbef0699f1c7c9c338282ca5
2014-06-09 15:28:11 -07:00
Tony Mantler f765f9b976 Clean up cert activity handling
Fix re-displaying the dialog on orientation change b/5622284
Add host/port when available b/4988512
Disambiguate intent between AOSP and EmailGoogle

Change-Id: Ideeda20dfd9bd0070998ccf42d8042765866ca0e
2014-06-05 13:21:08 -07:00
Martin Hibdon 163323294e Change IEmailService.sync to have two different forms
Change-Id: Id8e770154d6116b02746cbdfb8c7cdc9358398de
2014-05-30 14:49:47 -07:00
Martin Hibdon c5f5a14ae9 Revert "Get rid of deleteAccountPIMData from IEmailService"
This reverts commit cf2178c4fa.

Change-Id: I9b05dd7a29a2d2edf64529ca28e2305737a43115
2014-05-21 20:41:37 +00:00
Martin Hibdon cf2178c4fa Get rid of deleteAccountPIMData from IEmailService
This doesn't need to be part of the service because the
implementation doesn't need to be different between any
of the different protocols.

Change-Id: Ifddf16dd3ccaf397029f08f6d4283d9a5630f717
2014-05-21 12:18:29 -07:00
Tony Mantler c1265d2090 Merge "Move email bodies to files" into ub-mail-master 2014-05-15 16:43:00 +00:00
Tony Mantler 34c2e1619d Fix FLAG_OAUTH usage
Also fix some excessive checking of incoming/outgoing settings fragments

b/14969455 b/14971192

Change-Id: I6cf83aa59d381d3bbfc33e0d4a6e133c1814ba69
2014-05-14 16:31:04 -07:00
Tony Mantler 82a207132b Move account backup/restore to userdata in AccountManager
Change-Id: Iea9f2a1b1f2d87e07d63cbb1df5a0d6355ea4031
2014-05-14 15:15:49 -07:00
Tony Mantler 7525feb244 Move email bodies to files
Change-Id: Icfd0c4ab2ad25cc02b45cf41e7a205c17948ef2c
2014-05-14 13:27:49 -07:00
Tony Mantler 8518665a04 Fix projection columns, begin removing another unused field
Change-Id: I89126dba47ed6e78c870d458c4f286a37f763a66
2014-05-13 15:41:39 -07:00
Tony Mantler 2f97a7c658 Clean up unused code and warnings in Account
Change-Id: I40475eb6c8afa6b7b28fd143b9ad4fd268ff4657
2014-05-13 10:46:30 -07:00
Anthony Lee bca4f9fcfb Service intent's package matches the content provider's.
b/14596165. When setting the package of the service intent,
query the app that implements the Email content authority since
that is the same app that should handle the intent.

Change-Id: I29a34a056516edda78acb83b9c89547ca0dc5ca1
2014-05-11 00:47:44 -07:00
Tony Mantler 2f288864b6 Fetch email bodies using ContentResolver#openInputStream
This brings us further along the path to storing email bodies
outside of the database.

Change-Id: I96296114ade0d561df724878ed92999306bcd176
2014-05-08 15:50:57 -07:00
Tony Mantler 9a80ffce14 Handle attachment filenames with % characters
b/14571903

Change-Id: I3296bebfb4c6902750c68c9d3fb79ce644dbb137
2014-05-06 10:26:45 -07:00
Tony Mantler aab514c942 Catch empty mime type and substitute application/octet-stream
b/14564897

Change-Id: Id91dd18ef8b3fab449eb178bde73303107b78590
2014-05-05 13:26:22 -07:00
Tony Mantler 32471fc22e Catch exceptions when DownloadManager is disabled
b/14562210

Change-Id: If3f2da034e8492de049bc3bcac910a033c47d600
2014-05-05 10:23:12 -07:00
Tony Mantler 564a5343cc Merge "Don't allow empty or null filenames" into ub-mail-master 2014-05-05 16:14:56 +00:00
Tony Mantler d0b54a2948 Don't allow empty or null filenames
b/14500106

Change-Id: I519e4a0fe392c3bdbb84f1ccbdea89f07b9c1426
2014-05-02 16:42:46 -07:00