Commit Graph

54 Commits

Author SHA1 Message Date
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
Anthony Lee ebe49cfeaf b/16570506. Only enable alternate EAS authenticator when needed.
The old code was turning on both the EAS authenticator and the
alternate EAS authenticator (with the offending string). Now it
turns on the right one depending on the VendorPolicyLoader.

Change-Id: I69945e695f28fdb8bd33bf49ee253a354c05b30c
2014-07-28 14:37:02 -07:00
Martin Hibdon aaa26e8c3f Merge "Disable Eas Authenticator if Exchange is not installed" into ub-mail-master 2014-07-24 22:43:15 +00:00
Martin Hibdon 74dc106ae9 Disable Eas Authenticator if Exchange is not installed
b/16541219

Change-Id: Ibc2a9608278762e6af4f7c429b08ad38935bfcae
2014-07-24 15:46:15 -07:00
Anthony Lee 20110e6288 Factor out the guts of setupAccountManagerAccount()
The new function will be called by the old function but it also allows
me to use it from the Migration code.

Change-Id: If9b2ad82479d60c63e8924d42fb6ce18d7d9a2f8
2014-07-24 13:28:26 -07: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
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
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
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 84e010a463 Clean up logging
b/14590064

Change-Id: Ib841ebecae339690c143eaf356eced58d9ac5372
2014-05-06 11:22:10 -07:00
Tony Mantler 3dd85723a1 Cleanup in EmailContent
Change-Id: Ifa251eb206779f59ea003f99395d454c7e407bc2
2014-04-14 12:54:39 -07:00
Yu Ping Hu 8103f960d0 Add sync to IEmailService.
This supports the EasService design.

Yes, I just removed a startSync function from this interface last month. No,
I didn't quite know at the time that I'd be adding one back. :)

Change-Id: I19d9c7838473d8982560764fdba0056cba03d132
(cherry picked from commit 4a5b11d650)
2014-03-20 00:11:36 +00:00
Anthony Lee 70cb2878d7 Changed the IEmailService interface to accept and accountId in
the loadAttachment() call. This work was necessary to support
the new EasService & EasOperation infrastructure.

Change-Id: Idd507aec999596ccd4afa5f03ff2b3c2e38a9029
(cherry picked from commit efac8255ed75d22e60036e19e7a95f8407d18ad3)
2014-03-19 23:53:28 +00:00
Yu Ping Hu 701134953e Add pushModify to IEmailService.
This call lets the service know that the push settings for an
account have changed.

Change-Id: I7ed41853df6af6762c80283a2a3510ce41551657
(cherry picked from commit 446136a2278652c627068ecddff534de1ad431ab)
2014-03-19 23:51:14 +00:00
Yu Ping Hu f679cd08d1 Delete unused functions from IEmailService.aidl.
Change-Id: I131d2d3436a50c94d664fc57c6514481d9afbc97
(cherry picked from commit 8ff6c107867bc2044ba50cad010dbf4a2e93436e)
2014-03-19 22:35:47 +00:00
Tony Mantler 53b64eee54 Skip protocol choice if user entered from system account manager
b/13475223

Change-Id: Id1ec6259e2b3880f9ce83ffe7795c40aa069466e
2014-03-14 15:48:10 -07:00
Martin Hibdon 9195a12024 Create AuthenticationFragment
This is one fragment that holds all types of
authentication information, e.g. password,
OAuth info, and client certificates. What gets
displayed depends upon the type of account it is
dealing with.
So far this is only used in AccountSetupIncoming,
but later it can be added to other settings fragments.
There are still some issues with this, but I'd like
to check it in sooner than later to unblock other
work.

Change-Id: Iea675ad5c1727f32ca0baa270dfa793ab7109993
2014-01-29 11:20:53 -08:00
Alon Albert ae46818a19 Disable Move Actions for POP3 Folders
Bug: 11311812
Change-Id: I5813281cca76b9b4a373b5b40dbbd1909800f951
2013-10-29 11:06:36 -07:00
Tony Mantler 3a8c86b182 The ServiceMap caches locale-dependent strings. Destroy it on configuration changes.
b/10785115

Change-Id: I39df8a002cafdbaf4d41c9916d62a79a03d48804
2013-10-11 13:18:36 -07:00
Martin Hibdon 3aad3fcb8b Move calendar and contacts to the new account on upgrade
b/10805685

Change-Id: I08de135f166ad10812c9318efe649694e5c448d0
2013-09-24 17:02:08 -07:00
Martin Hibdon aad690f699 Improve display of attachments in pop
b/10714298
This is related to this CL in UnifiedEmail
https://googleplex-android-review.git.corp.google.com/#/c/363626/1

Change-Id: Idea2827791ed52e7558b11aaea07b1f3f1764db5
2013-09-20 17:39:05 -07:00
Martin Hibdon 7d6d8c87f8 Clear exchange sync keys upon app upgrade
b/10211620
The problem here is that on app upgrade, we need to change
the types of all email accounts. To do this, we have to
create new accounts and delete the old ones. This resulted
in calendar and contacts data getting deleted.
But we were copying over the last sync keys from the old
account, so on the next sync, we would only get new data.
This means that all of the data that we had gotten on
a previous sync would never be sent again, so calendar
events and contacts would be missing forever.
Now, we just don't migrate the old sync keys. This means
that on the next sync, we'll get all data, and restore
our original state.
This is still not ideal, because it means that any locally
created data that has not yet been synced will be lost
(b/10805685), but it's much better than it was.

Change-Id: I150c4dbdf490a8f3880261e2469795896ebfeab5
2013-09-17 16:43:07 -07:00
Martin Hibdon 24bb2dabd9 Kill the process when an account is deleted.
b/10653370
This prevents NPEs if a serviec happens to still be running
when an account is deleted.
This mirrors a similar pattern in the gmail app.

Change-Id: I6fd8ae5ffe41580df0a321ec22535403e3f32eee
2013-09-12 18:21:18 -07:00
Paul Westbrook e4ac06080b Don't use implicit events
Bug: 10189773
Change-Id: I4579f2e465bd23b8ab4cdf291bfbe80cf6518328
2013-08-28 14:31:09 -07:00
Yu Ping Hu b5eed31d1b Synchronize all access to the EmailServiceInfo map.
Bug: 10255995
Change-Id: I36bee575a923b5c8bfbaea7babdf9f2c5e9bd378
2013-08-09 11:51:53 -07:00
Yu Ping Hu 2075c97f60 Delete most of IEmailServiceCallback.
The old callback mechanism is deprecated, in favor of making
calls on the ContentProvider.

Bug: 9842867

Change-Id: I65f559e593cda24456c4ffb96f785e054626dd0b
2013-07-29 20:04:42 -07:00
Yu Ping Hu 48b14fde96 Fix all periodic syncs on upgrade.
Bug: 9844218

Change-Id: Ibacb309752b076faa3f96b5ad57dc121efd79bcb
2013-07-26 18:19:01 -07:00
Yu Ping Hu 02f0b1eee8 Remove MailService.
Change-Id: Ibffd0c9fb0eed4822dff28d1577fb455736cffd1
2013-07-26 17:38:07 -07:00
Yu Ping Hu 47bcb5a21a Cleanup service loading.
Authenticator upgrading no longer uses the services file
to specify upgrades, so we can remove the fields associated
with that functionality.

Change-Id: I2122f18614d714a3d5a565fb4a6a547ddc010b6f
2013-07-26 16:23:27 -07:00
Yu Ping Hu 462da178b1 Move authenticator upgrade to app upgrade time.
This used to run when the app first initializes the service map.

Bug: 9391930
Bug: 9971936
Change-Id: Iebaeb2dc94ef62edb0be0a7d5a008a26c4f5edfb
2013-07-22 17:33:57 -07:00
Yu Ping Hu 9a1f00bee4 Change deleteAccountPIMData to take emailAddress, not id.
By the time the remote call actually runs, the account
may be deleted from the DB, so the account id is likely
useless.

Bug: 9021105
Change-Id: If28b4b8c4b5c52be35c6ff68b326c4ea28d7f7b4
2013-07-19 18:42:43 -07:00
Yu Ping Hu d5acf0bbc0 Explicitly pass a callback when loading attachments.
This is part of moving away from the explicit setCallback,
which either has race conditions or is very noisy, or both.
(Each IEmailService call that wants callbacks should just
pass the callback explicitly.)

I'm not yet changing how the services actually handle the
call. Each protocol will need to fix this on their own.

Bug: 9735207
Bug: 9842867
Change-Id: If8cf69ffe82f3544ace9e58b1db5a183f38d038a
2013-07-15 21:54:02 +00:00
Scott Kennedy 560bfadc31 Unify LogTag
There is now only one LogTag class. The static initializer of
GmailApplication (existing) and EmailApplication (new) will now set
the log tag to "Gmail" and "Email", respectively. Up until that code
is run, it will be "UnifiedEmail".

"setprop log.tag.Gmail VERBOSE" (or .Email) will trigger all logs to
be printed as long as they go through LogUtils, regardless of what tag
is used by that individual log. This lets us still turn on logging
everywhere in one command, but also lets us use more descriptive tags
(like the class name).

And since we no longer have three com.android.mail.utils.LogTag
classes, builds will be much easier.

Also, we now use LogUtils everywhere.

Change-Id: I55f1c7a66ce50ead54877a13e40256422a56dc39
2013-06-05 20:06:15 -07:00
Yu Ping Hu 17d5bbf768 Improve mailbox sync and load more.
- Update syncTime for IMAP and POP whenever we sync.
- Change load more to simply include the delta in the RPC
  rather than using the visibleLimit column.
- Add a query to get the message count for a Mailbox.
- Refactor code for updating totalCount and determining
  the new message count when syncing.
- Remove dead code from Mailbox.
- Remove uses of visibleLimit from code.

Note that visibleLimit and messageCount in Mailbox table are
no longer useful and will be removed in a later change.

Bug: 8579767
Bug: 8523146
Change-Id: Ieb67e3b6f1c82c3b21b972c5a1e557cd75dc21db
2013-04-11 21:06:08 +00:00
Paul Westbrook 32881e8dd3 Fix NPE after migrating older account
Change-Id: Ifeb3b1853ce3efd725227941103d29a00bc14fc2
2013-03-05 14:07:47 -08:00
Marc Blank 5c52385838 Restore Imap1
* Restore Imap1 code
* Legacy users will use Imap1
* Existing Imap2 users will continue to use Imap2
* New accounts will be created in Imap1
* More to follow

Bug: 7203993

Change-Id: I8b86fcada59a854fd464d5269c94d00ebae85459
2012-09-21 08:29:09 -07:00
Marc Blank 323954df41 Merge "Create requireSetup attribute; use it for gImap" into jb-ub-mail 2012-09-09 10:15:18 -07:00
Marc Blank 81b0f74efa Create requireSetup attribute; use it for gImap
Change-Id: Id5f37861e4d6f2c2ed0fe98bd8b4d7eb73868c09
2012-09-08 13:08:50 -07:00
Marc Blank af092bd5f8 EmailProvider dump
Change-Id: Id975c99427b41f4a56235dc6ba5ad515d6700fe5
2012-09-07 19:02:25 -07:00
Marc Blank b82ae909d7 Add support for "load more" for Imap2
* Use new attribute in services.xml to indicate support
* Initial implementation

Change-Id: Ia8709d606d521c6d495c343a47ee074b5024d340
2012-09-01 15:58:46 -07:00
Marc Blank e714bb9d15 Convert authorities, intents, and account manager types
* Tested ok on wiped Nexus
* Tested ok on S3
* Upgrade verified on Nexus

Change-Id: If5d4ce594f8a309cdb59589d10b1d33f3b79326c
2012-08-31 23:26:36 -07:00
Marc Blank 70edcf0538 Integrate Imap2 into Email
* Also, convert imap accounts to imap2
* The original imap service remains, but is no used
* There remain some questions about how the upgrade
  should work in terms of settings

Change-Id: I0e05edad6a1553f428a2c2fa3daf1df878d4b5f7
2012-08-22 14:17:57 -07:00
Marc Blank b89744ecfb Use appropriate prefix to infer server address
Bug: 6999072
Change-Id: I71aa184b1cfa0b6926f4dae8861f071f27d3acb2
2012-08-16 14:11:11 -07:00
Marc Blank cf3b3ae987 Prevent NPE while getting service
Bug: 6989095
Change-Id: I646e393ec77a2e31c92011868f705e0936e41d88
2012-08-16 10:18:36 -07:00
Marc Blank 0b5f15d61e Make sure account capabilities get set properly in UIProvider
* Change getCapabilities API to take an account, rather than
  the id of the account
* getCapabilities() can therefore execute even before Exchange
  is fully up and running

Change-Id: Id4c2a9942ea7a21e0c56401c50206b680274b43e
2012-07-25 13:25:02 -07:00
Marc Blank 54b6b8b072 Prevent CME w/ sServiceList
Bug: 6854037
Change-Id: I0b9aadfa0b347c62bf8a3b0c5ec88330871cce2d
2012-07-20 10:51:33 -07:00
Marc Blank f419287f22 DO NOT MERGE: Move emailcommon2 sources to emailcommon
Change-Id: I06df7e467cd2e0117df8b8db3ddc6ff9da13f1c7
2012-06-28 11:15:06 -07:00
Marc Blank 03cd72805d Revert to old Email app
* These are the last sources in the ICS-MR1 tree

Change-Id: Ida4651bddd92a06a518d00f3e1f275ab3a80c8ae
2012-04-25 13:58:23 -07:00