History log of /packages/apps/Email/src/com/android/email/service/MailService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bc47398187c6ffd132435e51d8d61e6ec79a79db 25-Sep-2012 Paul Westbrook <pwestbro@google.com> Merge Email1 into MR1

Change-Id: I45289d46b65faffc7a3a3dd46382899162f3aaab
/packages/apps/Email/src/com/android/email/service/MailService.java
f53490dc86f5a61ab09024dc4938ce8419c61fc5 03-Sep-2012 Marc Blank <mblank@google.com> Reconcile all types of local accounts in MailService

Bug: 7078247

Change-Id: I43eb5b8a85e40217893bdc08cd839450358d07ea
/packages/apps/Email/src/com/android/email/service/MailService.java
e714bb9d153cfe13a7f0932e7d67ea08fa5a1d98 23-Aug-2012 Marc Blank <mblank@google.com> Convert authorities, intents, and account manager types

* Tested ok on wiped Nexus
* Tested ok on S3
* Upgrade verified on Nexus

Change-Id: If5d4ce594f8a309cdb59589d10b1d33f3b79326c
/packages/apps/Email/src/com/android/email/service/MailService.java
70edcf05387df33f4761b766add6b80999e425e9 22-Aug-2012 Marc Blank <mblank@google.com> 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
/packages/apps/Email/src/com/android/email/service/MailService.java
f419287f22ae44f25e1ba1f757ec33c7941bbfa8 28-Jun-2012 Marc Blank <mblank@google.com> DO NOT MERGE: Move emailcommon2 sources to emailcommon

Change-Id: I06df7e467cd2e0117df8b8db3ddc6ff9da13f1c7
/packages/apps/Email/src/com/android/email/service/MailService.java
03cd72805dab0379ed255d151f1c17cc60655fc3 25-Apr-2012 Marc Blank <mblank@google.com> Revert to old Email app

* These are the last sources in the ICS-MR1 tree

Change-Id: Ida4651bddd92a06a518d00f3e1f275ab3a80c8ae
/packages/apps/Email/src/com/android/email/service/MailService.java
4f813fb12937de74d3ccec730b8de0c9de7a87e0 14-Feb-2012 Marc Blank <mblank@google.com> Convert POP3 to service

* Remove MessagingController and (almost all of) MailService

Change-Id: I8953b58b237de6a71fda770f1727bd94081fec55
/packages/apps/Email/src/com/android/email/service/MailService.java
c84467afe1b5e0a657ed7d6a9fa1e3fe1ff259a0 09-Feb-2012 Marc Blank <mblank@google.com> Start of IMAP conversion to Service architecture

* Handle startSync and loadMore
* Use SyncManager rather than MailService for periodic sync
and upload sync
* First of many CL's to disentangle sync from UI
* Note that the large majority of this CL is a refactoring
of IMAP specific code out of MessagingController and into
ImapService; MessagingController will eventually be
removed entirely from the app, as will much of Controller

Change-Id: I13546d0694479b33cf93c25920dedc1d38227f6c
/packages/apps/Email/src/com/android/email/service/MailService.java
faf9ecc992c34de53969335f9fb403d2b17f3163 03-Oct-2011 Marc Blank <mblank@google.com> Enforce "auto-sync app data" setting for POP3/IMAP

* We were using the deprecated ConnectivityManager for this; we should now be
using the setting in ContentResolver
* Also, remove broadcast receiver code that is no longer relevant

Bug: 5405352
Change-Id: I985a95071aea92d235a2708925f775b817ba2328
/packages/apps/Email/src/com/android/email/service/MailService.java
002a1802cad235ffa8f7152e0d0a5a2ebad14f63 16-Sep-2011 Ben Komalo <benkomalo@google.com> Prevent flicker in opening Email.

Welcome had some assumptions that some things had to be done
asynchronously, such as checking inbox status.
This can now be done on the UI thread and so transition into Email can
be done immediately in onCreate, except if there's reconciliating to
be done

Bug: 4599569
Change-Id: Iaaac21e73c985c60e1b7974fb0429948b35968e4
/packages/apps/Email/src/com/android/email/service/MailService.java
7688300055a4ea84cd95768145f773d7c3259948 20-Jul-2011 Ben Komalo <benkomalo@google.com> Fix sync window settings for EAS setup on phones

- the container is the one that should be visible/gone - individual
fields should just be visible
- also do drive by javadoc fixes

Bug: 5052310
Change-Id: I45c4b6b7f94b2b62ac94eeff0ab97bf34c9e117a
/packages/apps/Email/src/com/android/email/service/MailService.java
4e4aba9ebc43c6a83190f3a883fa05bb7d5100b3 19-Jul-2011 Marc Blank <mblank@google.com> Clean up account reconciliation

* Move AccountReconciler to the Email app (from EmailCommon)
* Ensure that Controller.deleteAccountSync() performs ALL actions
needed to clean up after an account deletion (delete attachment
files, reset policies, refresh the UI, etc.)
* Add reconcileAccounts() API to AccountService
* Remove accountDeleted() and restoreAccountsIfNeede() from the
AccountService API
* Remove unused callback

Bug: 4883073
Bug: 4767084

Change-Id: I43ffaf009db1a6f306bb0f2a74fb4dd3b2c4b966
/packages/apps/Email/src/com/android/email/service/MailService.java
9863dac3ee1af2b5f81e77245410e21e5db5613f 23-Jun-2011 Marc Blank <mblank@google.com> Prevent NPE when creating account...

* Yet more whack-a-mole

Bug: 4544677
Change-Id: I35eb0850b3abb13ca82dc5b19bb5511d894b5722
/packages/apps/Email/src/com/android/email/service/MailService.java
9dad9ad973ccf8255228a41acc0ee78af989a651 21-Jun-2011 Makoto Onuki <omakoto@google.com> Move restore account to EmailProvider.

In order to reduce the UI initialization code, move
let EmailProvider restore accounts when it opens the DB.

Backup can be moved too, but I just leave it as a TODO.

Change-Id: Id5c1810904db6abaecbfecbaa8d2d53834ebf07b
/packages/apps/Email/src/com/android/email/service/MailService.java
f5418f1f93b02e7fab9f15eb201800b65510998e 14-Jun-2011 Marc Blank <mblank@google.com> Move Account into its own top-level class

Change-Id: Ide7c991b7d4d418dbe17164421425bf898ba64ee
/packages/apps/Email/src/com/android/email/service/MailService.java
12b82d9374947c9268217f45befe8a74bd9b60d7 20-May-2011 Ben Komalo <benkomalo@google.com> Move HostAuth to top level class.

No other changes made.

Change-Id: I1c6497c98abc0f99443ea42d8aed6295b263c123
/packages/apps/Email/src/com/android/email/service/MailService.java
53ea83ebf91f820692e8fa8e781f5cc982dd94db 14-May-2011 Ben Komalo <benkomalo@google.com> Move Mailbox to top level class.

No other changes made.

Change-Id: I3d8f3c521dc0d902be313b25252b4b6a4a96e7ee
/packages/apps/Email/src/com/android/email/service/MailService.java
577ddb7dd76f2f2e3d0493952d53f7ab966d10bc 13-May-2011 Todd Kennedy <toddke@google.com> Remove notifyNewMessages() service callback

Since the notification controller now operates exclusively using database
observers, there's no reason for the exchange service to call the
notifyNewMessages() service API.

Change-Id: Iaa7e2f5eae786162eab23b02b03ce6d1e8a738e9
/packages/apps/Email/src/com/android/email/service/MailService.java
5701e0a555a5c263862156c1291aa13b06850425 12-May-2011 Todd Kennedy <toddke@google.com> Suspend notifications for currently shown account

We will suspend notifications whenever we display the message list for an
account (including "combined inbox"). As soon as the message list is paused,
notifications will be resumed.

Change-Id: I481a0f59ce68f89c32210d862d0267f3f334063b
/packages/apps/Email/src/com/android/email/service/MailService.java
bb7787bd3d3acbe560b1b8056443b47e18ff2dd3 11-May-2011 Todd Kennedy <toddke@google.com> Merge "Create a new notification service"
71bd208ddd6f8ba5a4ac928a4e121e7ad7c21495 11-May-2011 Todd Kennedy <toddke@google.com> Create a new notification service

We can remove the preferences stuff 'cuz the service "should be" longer
living. And, even if the service is terminated (either by the user or by
the system) we'll receive a new notification when the service comes back.
This is probably desired behaviour anyway.

Change-Id: I4850a9473401536e8fb20385b780d4736ce80a8e
/packages/apps/Email/src/com/android/email/service/MailService.java
d31d64d330e1276ffdcd0fe9978b3303a38d4e95 11-May-2011 Todd Kennedy <toddke@google.com> Merge "Use observers to manage new message notifications"
83693a6acaffd219f65e04054bc04530e9cc132f 10-May-2011 Todd Kennedy <toddke@google.com> Use observers to manage new message notifications

We were sort of using observers to maintain the new message notifications.
However, other parts of the code would poke into the notification controller
to set things such as a list of newly added message IDs. Now, we rely
exclusively on db observers to manage notifications.

As a side effect of this, we now set the notification text correctly to be
the most recently _added_ message. This may be different than the most recently
sent message [since there may be a non-negligable delta between when the
message was sent and when it was received].

NOTE this still suffers from an outstanding bug where we continue to get
notifications when the Eamil UX is visible. That and monitoring changes to the
account table will be addressed in future CLs.

Change-Id: I4c68273716cc685574a1ca71e5d634f53fe0d882
/packages/apps/Email/src/com/android/email/service/MailService.java
0993190cafebc107bd27a26996b5d63d4a4ede10 06-May-2011 Marc Blank <mblank@google.com> Complete rewrite of account backup/restore code

* Use EmailProvider to backup/restore into a backup database
* Remove all of the old AccountBackupRestore code
* Get rid of the legacy Account class and all of the Preferences
crap that referenced it
* Remove corresponding tests

Change-Id: I2de75aafdacc87246174303961e58547303f641e
/packages/apps/Email/src/com/android/email/service/MailService.java
c4cdb11d24c19428dd39f986b00c1a29e75e1505 03-May-2011 Todd Kennedy <toddke@google.com> Remove notification if messages seen off device

If we receive new messages, we may display a notification to the user. If
those same messages are read elsewhere (i.e. via a web client), we will
remove the notification.

Change-Id: Iba09afe01942e0deaac8210fd6f9b315b1c8c93f
/packages/apps/Email/src/com/android/email/service/MailService.java
3a5c1fb274a9ce72d708d88509bf2607cb018ddd 13-Feb-2011 Marc Blank <mblank@google.com> Email split, part neuf: Setup, logging, attachment glue

* Make "Exchange" option in account setup depend upon availability of the
Exchange EmailService
* Make presence of Exchange logging depend upon availability of the
Exchange EmailService
* Make AttachmentDownloadService use service rather than ExchangeService
class
* Move SSLUtils to emailcommon/utility
* Move account manager type defs to emailcommon/AccountManagerTypes
* Update proguard.flags
* This is the penultimate CL for the Email package itself; the next CL
creates a clean, SDK-compatible Email application

Bug: 3442973
Change-Id: I9162cf5fa6b5a043ded0fdd1e25fd3ce5948ad8f
/packages/apps/Email/src/com/android/email/service/MailService.java
31d9acbf0623872f9d4a2b3210b5970854b654c7 12-Feb-2011 Marc Blank <mblank@google.com> Email split, part huit: Refactor constants, clean emailcommon

* There are three pieces to this CL (sorry):
1) Move and/or rename some constants into emailcommon
2) Move Utility to emailcommon, moving the few UI
related utilities back into Email (FolderProperties
and UiUtilities)
3) Remove all references to resources from emailcommon
* The three pieces relate in that, between them, they allow
the emailcommon static library to compile cleanly

Bug: 3442973

Change-Id: Ic5e3abaa2a1b36999e0b6653c6c2134ea1bd544f
/packages/apps/Email/src/com/android/email/service/MailService.java
a7bc0319a75184ad706bb35c049af107ac3688e6 10-Feb-2011 Marc Blank <mblank@google.com> Email split, part six: EmailContent

* Moved EmailContent to emailcommon

Change-Id: Ib3db1bfcfe74554c0e5afd3cfce6d72f26e9aeb9
/packages/apps/Email/src/com/android/email/service/MailService.java
2193962ca2b3157e79f731736afa2a0c972e778a 10-Feb-2011 Marc Blank <mblank@google.com> Email split, part quatre: Move along, nothing to see here

* No code was harmed, er, changed in the making of this CL
* All that's happened is that code that is needed by both Email and
Exchange have been moved into emailcommon
* This required import changes to many files, which explains the
length of the CL

Change-Id: I4e12455ba057a4a8054fdbd0b578c73afa411c8a
/packages/apps/Email/src/com/android/email/service/MailService.java
8a574694606f0e5d781334d0d426fc379c51f3ed 09-Feb-2011 Marc Blank <mblank@google.com> Email split, part trois: AccountService

* Create AccountService.aidl and AccountServiceProxy in emailcommon
* Implement AccountService in email
* Use AccountServiceProxy in Exchange for account reconciliation,
notifications, etc.
* Move sync window constants into emailcommon
* Split attachment provider utilities and constants into emailcommon

Bug: 3442973
Change-Id: I89dce28b799b193243c07774dab65d830ae62775
/packages/apps/Email/src/com/android/email/service/MailService.java
5907d39d2b34b1b4ab3c1ef32b5b42ead97ec3ef 27-Jan-2011 Makoto Onuki <omakoto@google.com> Add debug setting for one-minute refresh

Bug 3377054

Change-Id: I7843fe82d66ab7896b8293b2fa16ca73f6711595
/packages/apps/Email/src/com/android/email/service/MailService.java
c50b6f685ba26a38b8110f6ca0115b12f84d643c 14-Jan-2011 Makoto Onuki <omakoto@google.com> Use broadcast to detect system account update.

Instead of AccountsUpdatedListener.

Bug 3211657

Change-Id: I1e60092fc06fe80b9914ff7264c24fcbfa950745
/packages/apps/Email/src/com/android/email/service/MailService.java
201a24f51e166f66f99c17da3356aa4fdb7fa54d 06-Jan-2011 Andy Stadler <stadler@google.com> Harden MailService against half-created accounts

* Add simple sanity checks to scanned accounts, skip over if bad
* Fix existing unit tests and add new unit test for this change
* Also fixed minor bug in EmailContent that was never triggered in
production code (only discovered it via a unit test).
* Also fixed minor bug in an existing unit test

Bug: 2937595
Change-Id: Id60bbb5d8bd923db043d46891c7f89d7debb0a11
/packages/apps/Email/src/com/android/email/service/MailService.java
6ebaa90847e6e9c7624c18905971a003b2ee902b 23-Dec-2010 Andy Stadler <stadler@google.com> Reduce/eliminate UI thread access in MailService

* Make most calls to AccountBackupRestore return immediately w/o DB access
* Move most workers in MailService into async runnables
* Remove account restore / null check from ACTION_SEND_PENDING_EMAIL
* Strengthened unit test on Mailbox.findMailboxOfType() because after
removing the account check (above), sendPendingMessages depends on
findMailboxOfType() returning -1 on a missing account.
* Clean up a bunch of warnings (no longer use deprecated Config.LOGD)

Bug: 3133763 (and probably others)
Change-Id: Id39707bca7a8ebf5000f84d542013411ff0f422e
/packages/apps/Email/src/com/android/email/service/MailService.java
34e6205d4432c8b591c35fbcfc504852608f35a6 28-Oct-2010 Andrew Stadler <stadler@android.com> Simplify setupSyncReportsLocked

* Remove three unneeded DB lookups
* Eliminate race condition that could cause NPE
* Remove protocol field from report, it wasn't needed (we already
set the sync interval to -1 which has the same effect.)

Note, the problems were introduced unintentionally, due to the merged
result of three different CL's:
I168b3db49bf422b33d05f25cfff1c7be15150c2b
I74a3dae21d9ec16f9903bdf2a1c28092ae89cc50
I53e935f8bf08e0bda6e2cd483229a6377ed39d74

Bug: 3139451
Change-Id: Iadbed267f88808aeace0a2f011e4acf79074af70
/packages/apps/Email/src/com/android/email/service/MailService.java
d3e4f3ca7e43fb7ebaa140f93a44a1fb96a0577e 18-Oct-2010 Marc Blank <mblank@google.com> Use notifications for login failures

* For now, clicking on the notification takes the user to the
Welcome activity, as we don't have final flows for the new
account setup UI
* Need comment on strings; the problem is that notification
text must be rather short if we're to use the standard
notification display. It looks like newer UI will allow
3 lines instead of 2, however.
* Tested w/ IMAP, POP3, EAS, and SMTP

Bug: 2322253
Change-Id: I7ed6fa5599179870cbcdb14af062e956eff37ec5
/packages/apps/Email/src/com/android/email/service/MailService.java
9a9c725174e6abd8ee23d01cdac8776517efa99f 22-Oct-2010 Jean-Baptiste Queru <jbq@google.com> Merge a059c4a1 from gingerbread-plus-aosp

Change-Id: I955120aff44d69bcd6fde165ac7ac974acbd3c78
2a08ef0d285ebf9e8fe86afec1ac4732586b7bb5 22-Oct-2010 Marc Blank <mblank@google.com> Don't allow MailService to schedule EAS accounts

Bug: 3120208
Change-Id: I53e935f8bf08e0bda6e2cd483229a6377ed39d74
/packages/apps/Email/src/com/android/email/service/MailService.java
eb4965942387619c1b44c751affda83c4a2401dc 17-Oct-2010 Marc Blank <mblank@google.com> Prevent MailService from spamming AccountManager during reconcile

* When any Account is modified, MailService gets a content notification and
runs reconciliation in an AsyncTask. Reconciliation ends up calling the
AccountManager, which also runs asynchronously. The net effect is that,
especially during unit tests, where we create/destroy accounts rapidly,
these calls can "back up", ending in a situation in which the worker pool
for AsyncTask is filled, with a resulting RejectedExecutionException
* We fix this by preventing more than one request for reconciliation to
be queued at a time
* Added a unit test that thrashes the notification handler

Bug: 2937628
Change-Id: Iaf25806efb46831f31704604360df091752d9525
/packages/apps/Email/src/com/android/email/service/MailService.java
241f18f237171a804f849262533d3cddb08e45c7 08-Oct-2010 Makoto Onuki <omakoto@google.com> Fix when to clear notification

I was assuming MailService.resetNewMessageCount cleared notification,
but it didn't.

Doing it in Activity.onResume is clearly wrong because we don't always
have an account ID there. If we don't, we're passing -1, which clears
all notifications for all accounts.

We're now calling resetNewMessageCount() in MessageListFragment,
when we refresh the list, so we can remove it from onResume() for the Phone
UI as well.

Bug 3074056

Change-Id: Ib0bb2fbb0309a0784fb3a525927102f423e930df
/packages/apps/Email/src/com/android/email/service/MailService.java
4b0d4f9f4d778e3e3896c6b2a8fd6ca250d9e4a5 08-Oct-2010 Makoto Onuki <omakoto@google.com> Fix "+ -1 more" in notification.

Need to reset lastUnseenMessageCount with unseenMessageCount.

Bug 3069406

Change-Id: I867dfaeb2d39cfd3511f956d60d2187031291780
/packages/apps/Email/src/com/android/email/service/MailService.java
fe6e3eae2a318f89634c82222acfdaac32ee6cf1 07-Oct-2010 Marc Blank <mblank@google.com> Fix MailService unit test

Bug: 2844726
Change-Id: I168b3db49bf422b33d05f25cfff1c7be15150c2b
/packages/apps/Email/src/com/android/email/service/MailService.java
899c5b866192a4c4a12413446d10e5d98dbf94fa 27-Sep-2010 Makoto Onuki <omakoto@google.com> Switch to tablet style notification

- Now we show separate notification for each account
- New notification has sender photo, sender name, and subject
of the latest email
- Added the NotificationController class, which is intended to manage
all notifications besides "new message" eventually.

The framework doesn't seem to be 100% ready, and it's not clear how to
add the 3rd line in the expanded notification at this point. Need to
revisit it later to verify UI details.

Change-Id: I40193ee372cb6b2b7245c1588890f238b2469699
/packages/apps/Email/src/com/android/email/service/MailService.java
08346b67b8aa3e36057fa4e439275efa8c3a8098 25-Sep-2010 Makoto Onuki <omakoto@google.com> Refactor for new notification UI

- Move the notifiaction code into a bg thread.
We need to access db to fetch the latest message
- Extracted ContactStatusLoader.load to synchronously load contact
pictures.

Change-Id: I282ffb706ea8e14558bf29880a0fb952868b27e5
/packages/apps/Email/src/com/android/email/service/MailService.java
550aa6163fdb9681d6adee018a313d5f82629b34 10-May-2010 Makoto Onuki <omakoto@google.com> DO NOT MERGE: Clean up member variables.

- Fix misnomered fields. (e.g. static mMember -> static sMember)
- Reduce visibility. (e.g. mark as private)
- Mark final / static if possible.

Note it's on master.

There's a lot more cleanup oppotunities in the activities, but they're going
to go through a major overhaul, so I didn't bother.

Backport of b3f7dd0169a35221184b9327c8ce337b09dc6d1f

Change-Id: Ic33f9518f23805716e2aec0ab42edb92107e066c
/packages/apps/Email/src/com/android/email/service/MailService.java
261d6c3f0c97a12256519a2c3b131a56e57ab45f 15-Sep-2010 Makoto Onuki <omakoto@google.com> Notify only account cursors when resetting new msg count

- Resetting the new message count is now correctly done on a BG thread.
- Added special content provider URI to reset the count.
(/resetNewMessageCount)
- This URI only supports update, which will notify only account
cursors.
- Fixed a problem that an insert with MAILBOX_ID/MESSAGE_ID/ACCOUNT_ID
triggers two notifications.

- This CL changes how we use notification URIs, but unfortunately
no tests for this part. It turned out MockContentResolver doesn't
support the notification mechanism, which made it very hard
to write tests.

Bug 2911646

Change-Id: I35b30a7e6bf2d57510486c7ed19b9f263d8c9b58
/packages/apps/Email/src/com/android/email/service/MailService.java
0be2d85bb8e4ca177a52aebeb0dc5e869f1c96b4 25-Aug-2010 Makoto Onuki <omakoto@google.com> Make notification open XL activity on tablet

* Now notification kicks Welcome, which knows which
activity to use.
* Extracted cancelNewMessageNotification
* Also fixed 2909215. There'll be only one XL activity on the app stack.

Bug 2945369
Bug 2909215

Change-Id: I2a7fec0d48a7618375cae55138ca51fefc70ff6e
/packages/apps/Email/src/com/android/email/service/MailService.java
c184f36c2df16431693d7709e28ded593efc3da7 24-Aug-2010 Marc Blank <mblank@google.com> Revert "Convert Controller to a full service"

This reverts commit 0e6d972641c19467d6b26351ce14a3f44c9fd6f4.

Change-Id: I005fc34152396806468edef919a3620961ddb4fe
/packages/apps/Email/src/com/android/email/service/MailService.java
0e6d972641c19467d6b26351ce14a3f44c9fd6f4 20-Aug-2010 Marc Blank <mblank@google.com> Convert Controller to a full service

Change-Id: I2078fd047ff46f85936c8bf798a5edd3678bb5b4
/packages/apps/Email/src/com/android/email/service/MailService.java
09fd4d0a181db511a07950f52ad56cc6e686356b 10-Aug-2010 Marc Blank <mblank@google.com> New asynchronous attachment loading code

* Create AttachmentDownloadService to manage all attachment downloads
1) User requested
2) Required for email forwarding
3) Opportunistic downloads to enhance offline use
* New attachment related UI (pending UX approval, of course)
1) MessageView (attachment actions, progress bar, etc.)
2) MessageCompose (attachments for forwarded messages)
3) Associated toasts, notifications, etc.

TODO:
* Unit tests
* Cache Management (separate CL)

Change-Id: I7864a5fb1c3f4f2be68d98341a971edc6cbacfe1
/packages/apps/Email/src/com/android/email/service/MailService.java
d14229872a1c4ac5c5e4e8f98705b471e3da71b3 17-Aug-2010 Marc Blank <mblank@google.com> Fix NPE in MailService

Bug: 2873538
Change-Id: Ida9135d3c8090abb63424cc2b2cb1b848785d571
/packages/apps/Email/src/com/android/email/service/MailService.java
21efedb67fdfff208cef3a18804771fd1d1fff30 16-Aug-2010 Makoto Onuki <omakoto@google.com> Rework/cleanup of "refresh".

Added RefreshManager, which is responsible for getting refresh requests
from UI and keeping track of what is being refreshed.

Conceptually it's a part of Controller, but extracted for easier testing.

- Now sendPendingMessagesForAllAccounts() is owned by RefreshManager
rather than Controller.
- Also updateMailboxRefreshTime/mailboxRequiresRefresh have been moved
in from the Email class.
- Now MessagingException implements a method to return an error message
for the UI.

The refresh button on 2-pane doesn't work as intended yet, because the
spec is a bit too complicated (as described in the TODO in
MessageListXLFragmentManager.onRefhres()).

This change touches many file mostly because it cleans up a lot
of code duplication.

Change-Id: I058ab745ccff10f6e574f6ec4569c84ac4a3e10e
/packages/apps/Email/src/com/android/email/service/MailService.java
a09459f6f4a1bc85a9289cd01a4ab71d1c756f09 16-Aug-2010 Marc Blank <mblank@google.com> Run AccountsUpdatedListener work in worker thread

Bug: 2922224
Change-Id: If7b61c4f41d901fd71d571450fa5fa7f3ff11535
/packages/apps/Email/src/com/android/email/service/MailService.java
c435d7ad244195bb15dfba49b6a377ca3bf5a1c1 27-Jul-2010 Makoto Onuki <omakoto@google.com> Workaround for bug 2873538

Prevent NPE.

Change-Id: I6d80e6f574d6c37adb9d7a402850c39e2a79f04a
/packages/apps/Email/src/com/android/email/service/MailService.java
e6cc662abc0b5fffe223cda5e980b4f05a4e91dd 08-Jul-2010 Marc Blank <mblank@google.com> Use AccountManager for POP/IMAP; refactor setup classes

There are two major, interrelated parts to this CL:

1) Clean up the activities to reduce the use of Intents to pass
information between activities; instead, we use a common
SetupData structure that automatically saved/restored as necessary
during the setup flow. A fair amount of code and inconsistent
use of Bundle extras has been eliminated in the process.

* Create SetupData structure, setters/getters, and initialization
methods to simplify the preservation of state during setup flow
* Remove all state/flow extras from Intents; Intents now only
specify the Activity to be started, which should greatly simplify
the transition to Fragments.
* Remove all state/flow fields from Activities
* Modify existing setup activity unit tests and confirm tests pass

2) Create AccountManager accounts for POP/IMAP email accounts to
provide consistency in user experience. Also, internal flows are
now identical as between account types.

* Move account reconciliation from SyncManager to MailService, so
that reconciliation is consistent between email and exchange
accounts; move unit tests as appropriate
* Add a "Sync Email" setting for POP/IMAP/EAS
* Change MailService to respect the "Sync Email" setting in
Settings -> Accounts & sync
* Create PopImapSyncAdapterService to handle manual POP/IMAP sync as
requested by SyncManager; add EmailSyncAdapterService to perform
the same function for EAS
* Use new PopImapAuthenticatorService to add AccountManager accounts
for POP/IMAP accounts; setup appropriate stanzas in AndroidManifest
and add related xml files
* Update AccountSettings to use SetupData

Miscellaneous other changes:

* Only allow valid port numbers in incoming/outgoing setup

Bug: 1712475

Change-Id: Ibdac52fb2c5578b86bf3992ddb1acd10f162391a
/packages/apps/Email/src/com/android/email/service/MailService.java
42ff939e3a8a69ca5937aa5d6a2a932ae2e80752 25-Jun-2010 Marc Blank <mblank@google.com> Prevent MailService from potential looping due to EAS accounts

* The code assumed that all accounts used the scheduler in MailService
whereas only those using MessagingController do so (i.e. EAS does
not)
* Change setupSyncReportsLocked to set the syncInterval for accounts
that don't use MessagingController to Account.CHECK_INTERVAL_NEVER
* Add unit test for the changed code

Change-Id: I74a3dae21d9ec16f9903bdf2a1c28092ae89cc50
/packages/apps/Email/src/com/android/email/service/MailService.java
3f545a4060982b8a5d715905c7818d59056c1ee0 07-Jun-2010 Makoto Onuki <omakoto@google.com> Controller rework.

- Controller.Result is now a class rather than an interface,
so subclasses don't have to implement empty methods.

- Replaced Threads with AsyncTasks, which is more light weighted
because it uses pooled threads.

- Removed the Result argument from Controller's methods.
These argumetns weren't used, except in serviceCheckMail.

Regarding serviceCheckMail, the new code behave differenly from the old code.
If there's already listeners registered when it's colled, they wouldn't get
called in the old code, but they will in the new code.
But I think this difference is okay because that's how it works for
POP/IMAP accounts.

Change-Id: I37a857ce7c089c1a411cb7f1fcfcb72c9f5fd2a6
/packages/apps/Email/src/com/android/email/service/MailService.java
9580f6175da4c5df4b8aa13242aaef8c922dec05 03-May-2010 Makoto Onuki <omakoto@google.com> Don't sync when the background data system setting is off.

Bug 2494703

Change-Id: Ia6f4c9fc86cdcb5ca3276141cb84b4effb6ee87c
/packages/apps/Email/src/com/android/email/service/MailService.java
b3f7dd0169a35221184b9327c8ce337b09dc6d1f 10-May-2010 Makoto Onuki <omakoto@google.com> Clean up member variables.

- Fix misnomered fields. (e.g. static mMember -> static sMember)
- Reduce visibility. (e.g. mark as private)
- Mark final / static if possible.

Note it's on master.

There's a lot more cleanup oppotunities in the activities, but they're going
to go through a major overhaul, so I didn't bother.

Change-Id: I3fde73ba5f1f9ff675fff07c510e1e49521dde42
/packages/apps/Email/src/com/android/email/service/MailService.java
9e2ddca59d048fc9ac55278b193ee36b330a7981 17-Mar-2010 Jim Shuma <jshuma@google.com> Add "vibrate when silent" mode to notifications

* Add "vibrate when silent" choice in UI
* Add storage for it in Email's provider. Existing accounts default to
their current settings (always vibrate / never vibrate).
* Respect new mode when notifications are posted
* Updated existing unit tests

Bug: 2457183
Change-Id: I5c933ac39dbef8b2028255f330e0b084a445421a
/packages/apps/Email/src/com/android/email/service/MailService.java
e37881aac562c066e6e666349749e40b7c116a21 02-Mar-2010 Makoto Onuki <omakoto@google.com> Store UUID instead of _id in desktop shortcuts.

- Because AccountBackupRestore won't preserve _id.
- Now MessageList accepts both Donut(1.6)-style URIs and Eclair(2.0-2.1)-style
URIs.

Bug 2479609
/packages/apps/Email/src/com/android/email/service/MailService.java
c18f8f615f134a2b391d06e2d8d49434a8bb94e5 24-Feb-2010 Makoto Onuki <omakoto@google.com> Enable calendar sync for Exchange accounts when upgrading.

On the first boot after upgrade from Eclair, enable calendar sync for all the
existing Exchange accounts, if any, and show notification.

Note on this version, nothing happens when you click on the "Calendar added"
notification. We're waiting for an API (action or something) to launch
calendar.

Bug 2428718
/packages/apps/Email/src/com/android/email/service/MailService.java
5f32e2d31f5839081de1f9ee78b4c8b06d5c1150 13-Feb-2010 Jeff Hamilton <jham@android.com> Don't use hard coded package names.

Change-Id: Id65967a87afa969f5410f4fdee058d450776a32e
/packages/apps/Email/src/com/android/email/service/MailService.java
3d2b3b3b3554be2ac23d9a49fee00faa9693e857 05-Feb-2010 Andrew Stadler <stadler@android.com> Logic to move phone into security-admin mode

* Create notification to display when syncs fail due to security
* Create psuedo-activity (no UI) to manage device admin state transitions
* Clean up and flesh out SecurityPolicy APIs'
* Add placeholders in EasSyncService showing how to react when policies
are not met and sync cannot continue.

Note: There are some STOPSHIP todo's at the top of SecurityPolicy.java.
These should explain any code that you might think is "missing".
/packages/apps/Email/src/com/android/email/service/MailService.java
87a520d7b9cc40ae7a91b3723b8bd5fc4a241e61 20-Jan-2010 Mike Lockwood <lockwood@android.com> Use default values rather than hard coding green for LED notification color.

Change-Id: Id192ea4d34725abf9ce892bc24e5c8562215f3e3
BUG: 2329568

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/apps/Email/src/com/android/email/service/MailService.java
5e91cccd4b530eb2aeace5c5bf4f3328a5b5d69d 20-Jan-2010 Andrew Stadler <stadler@android.com> Quick backup/restore of accounts

* Workaround for (HTC bug 2275383) & (Moto bug 2226582)
* Adds checkpoints for backing up and restoring accounts
* Uses legacy Account / prefs to back up accounts - this is because
some of this code will be reused for legacy account migration
* Unit tests of Account & LegacyConversions
* Unit tests of backup & restore
* Not done: testing of EAS/Account Manager interface (this will require
deeper dependency injection, to avoid the embedded calls to the Account
Manager and other system services.)
/packages/apps/Email/src/com/android/email/service/MailService.java
d16b4b921fef0a79a12fd90a5fad353413ba80ea 21-Oct-2009 Marc Blank <mblank@google.com> Go to combined inbox from notification for 2+ accounts (#2147265)

* The problem is that PendingIntents aren't updated when a notification
is updated, so the changed extras when a 2nd account gets a new message
aren't seen by MessageList when it's started up upon tapping the
notification (it uses the extras from the 1st account to get a new
message)
* The fix is to use the newish (cupcake) flag in the PendingIntent that
causes the extras in the PendingIntent to be updated

Change-Id: Ia4ab14954b2c1413526016975216b2516372f2aa
/packages/apps/Email/src/com/android/email/service/MailService.java
deffba584e9a66ca3dca3c897728fd1b8c66b368 28-Sep-2009 Andrew Stadler <stadler@android.com> Stop forcing email logging for all users

* Don't force Email.Debug == true
* Also, remove some unneeded development logging from MailService
/packages/apps/Email/src/com/android/email/service/MailService.java
27bc39399e47e8f14cbb42834990546eb93851de 18-Sep-2009 Andrew Stadler <stadler@android.com> Turn off debugging code that was accidentally left on.

This goes with Change I52e53c4b.

Change-Id: Ife5672af1c0c5cf2b2c279a9a912beb26c64390d
/packages/apps/Email/src/com/android/email/service/MailService.java
01f61ef912879c12665d2073917626cb3ee7df0a 18-Sep-2009 Andrew Stadler <stadler@android.com> Fix acct settings -> inbox checks -> notifications

This cleans up a number of bugs that could be generically described as
"MailService and Notifications not being updated when accounts or account
settings are changed."

This also fixes a number of race conditions, one of which was causing
accounts to be refreshed in a nearly-endless loop, and another which
could cause an endless loop of alarms to be posted & fired..

Specific changes:
* Update/reschedule any time an account is edited (this was accidentally
broken and being handled on EAS only.)
* Make sure we reschedule if an account becomes unavailable
* Clear notifications whenever refreshing accounts
* Reload local copy of account settings whenever refreshing accounts
* When restoring prev sync times (this happens when process is killed),
be sure to also recalculate next sync times.
* Set flags on the pending intents to make sure old pending intents are
not being reused.
* Set a watchdog each time we check the mail, so if we are killed during
the mail check, we will be woken up again to retry.
* Fix a 2nd race condition in which a just-created account fails to sync,
due to not (yet) having an inbox.
* Clean up handling of Controller callback:
* Fix a minor bug in which refresh of non-inbox mailboxes would delay
the next timed sync of the inbox for that account.
* If the checkmail ended in an error (result != null) the service was
never rescheduled.

Bugs Fixed:
bug 2078149 - Update service and notifications when account settings
change or accounts are added/deleted.
bug 2084412 - Fix race condition caused by first intent being refired
bug 2071484 - Make sure we wake up later if killed during mail check

Change-Id: I3ee0d1b389c652351de5eb798c32a2daea244067
/packages/apps/Email/src/com/android/email/service/MailService.java
d2174733b146eeccd5f3b3b95f98e1e1aaafb257 08-Sep-2009 satok <satok@google.com> Auto-sync of stale mailboxes

BUG: 2050116
- auto sync onResume
- add mNonPushMode
-- mNonPushMode is updated in SetFooterTask
/packages/apps/Email/src/com/android/email/service/MailService.java
7b03c7936a2fd238f366fe145619308e5b31a8ec 05-Sep-2009 Andrew Stadler <stadler@android.com> A bit more debugging to catch the service race condition.

NOTE: This switches on Email.DEBUG for everyone, and should be
removed.


Change-Id: I700099a9aa5e5c64d8c282cb8d07a47c7c408862
/packages/apps/Email/src/com/android/email/service/MailService.java
9b9a2e69b920823c18b27740ee77cef007316d60 04-Sep-2009 Andrew Stadler <stadler@android.com> Improve logging in MailService

The goal is to generate better reports to help find the race condition
described in bug 2084412

Change-Id: Idfc453af17edf08e89d2aa656585b83ed48691c8
/packages/apps/Email/src/com/android/email/service/MailService.java
68c3c7518e132bdbfd17a0b122fbe09c08e0acdc 23-Aug-2009 Marc Blank <mblank@google.com> Use LED for notification (same parameters as Gmail and GTalk services)

* Agreed to by Erick and Prasenjit

Change-Id: I1a0f3642c9b10f981b2feed55762407ed853763d
/packages/apps/Email/src/com/android/email/service/MailService.java
df86adf87328a439347260331592509787020420 25-Aug-2009 Andrew Stadler <stadler@android.com> Finish the code to demand-load partially loaded messages.

This happens in two primary cases:
1. When a very large POP message was skipped during initial sync
2. When any message was interrupted during initial sync, e.g. by
a dropped connection.

Changes:
* Added loadMessageForView and callbacks to Controller (and touched all
files with Controller listeners)
* Rewrote loadMessageForView in legacy MessagingController to work with
provider.
* Update flow in MessageView to use loadMessageForView when needed.
* Restored the use of "loading.html" and "empty.html" assets (although
I think we should replace them with simple layouts & views.)
* Some random cleanup in MessageView

Satisfies bug # 2065563
/packages/apps/Email/src/com/android/email/service/MailService.java
4bc4fed47bec36b48203ae7dd6cd7e4727cfea70 23-Aug-2009 Dianne Hackborn <hackbod@google.com> Use new service command processing to avoid leaving the service running.

The service still needs to schedule an alarm in its onStartCommand() so that
it will run in its next poll interval.

Change-Id: I66228ef573e84a5c7d33bcb07f4772626079b960
/packages/apps/Email/src/com/android/email/service/MailService.java
e1f0b0a9bcc78ade7f3b2ac540705701f19cd6cd 25-Aug-2009 Andrew Stadler <stadler@android.com> MessageView: next/prev navigation.

in addition:
- fix AND-OR precedence in cursor query in MessageList.
- move special mailbox ids from MessageList to Mailbox
- move shared code from MessageList to com.android.email.Utility
- add invisible prev/next to landscape in order to avoid special-case in code
- select mailbox list using IN() instead of list of OR

Note: Checked in by Andy to facilitate further work on MessageView.

Change-Id: I8049be2b45fed1e4e697a0ed895492c4d0e59e0a
/packages/apps/Email/src/com/android/email/service/MailService.java
4b41bae270ea4c49ec8403084db43ee9b37cdda4 20-Aug-2009 Andrew Stadler <stadler@android.com> Enable IMAP/POP sending and EAS resend

* Finish IMAP/POP sections of Controller.sendMessage
* Rewrite MessagingController.sendPendingMessagesSynchronous
* Add deleteAllAttachmentFiles to AttachmentProvider, and unit test
* Rework sendMessage callbacks and integrate into MessageList UI
* Send pending from UI

TODO:
* Find other places from which to call deleteAllAttachmentFiles
/packages/apps/Email/src/com/android/email/service/MailService.java
c0c9c33322deecace00a32766e0a1b355aad4b31 20-Aug-2009 Marc Blank <mblank@google.com> Add URI's that atomically add a value to a particular field (Account or Mailbox)

* Message, etc. could be added, if this had a use case
* Unit test added for both Account and Mailbox cases
* Eclipse changed some parens around; it won't happen again
/packages/apps/Email/src/com/android/email/service/MailService.java
cbe513d4305893edde60aca645b290f31f7643da 19-Aug-2009 Andrew Stadler <stadler@android.com> Integrate EAS push notifications with the main notifications.

* Use the new account-based field for number of new messages
* Add support for async notifications in MailService
* Change EAS to call MailService to notify user
/packages/apps/Email/src/com/android/email/service/MailService.java
46d7d7f1b6387d144c3f9e7c987418dc8f55fad4 18-Aug-2009 Andrew Stadler <stadler@android.com> Rework service to use provider accounts and controller.

* Rewrite service logic to select and update one account at a time
* Add checkmail API to Controller, and much rework/cleanup of existing
callback API's
* Rewrite notification posting code
* Rewire connection to MessageList to be opened by notifications, to
cancel notifications, and to reset the "new message" count whenever
an account is viewed.
* Boilerplate cleanup to a lot of activities because they share the
callbacks that have had minor changes.
* Remove old push controls from Store API

In progress:
* To provide notification mechanism for EAS pushed mail
/packages/apps/Email/src/com/android/email/service/MailService.java
9e2c6bd5f21f2d19eef7ebfe30e6fdf94ede0857 23-Jul-2009 Andrew Stadler <stadler@android.com> Remove saveOrUpdate from EmailContent to prevent stale writes

* Numerous classes modified to deal with this change
* Fixes bugs 1993292 and 1994671
* Renamed various setter and getter methods to reflect the underlying
field names
* Renamed syncFrequency to syncInterval in Account and Mailbox
* Convenience method added to AccountSettings to save only user settings
* Calls to content.update(context, content.toContentValues()), which save
all fields, should be double-checked for correctness, making sure that
content has current data and will not conflict with other threads that
might modify that data
* Ran all unit tests to confirm proper function

NOTE: The logic to enforce single default account no longer works,
because that logic is in Account.save() and does not run via
Account.update(). I have patched out a small section of the relevant unit
test and will file a bug to come back for this fix.
/packages/apps/Email/src/com/android/email/service/MailService.java
ded3c915d88a5ee2d143b75cbf5718dae92a2f1c 11-Jul-2009 Andrew Stadler <stadler@android.com> Add folders to AccountFolderList

* Scan folders and write into child cursors
* Clicking a folder takes you to MessageList
* Remove most links to FolderMessageList (nearly dead!)
* Repair 1-account startup behavior (takes you directly to inbox)
* Cleanup a few basic things like context menus & refresh

TODO: Magic mailbox section at the top
TODO: As always, better linkage to sync engine(s)
TODO: Menus, context menus, etc.
TODO: Proper handling of expandable list - accounts should stay open?
/packages/apps/Email/src/com/android/email/service/MailService.java
72dce733900a812cf11a5ac08756362030556849 09-Jul-2009 Andrew Stadler <stadler@android.com> Convert Accounts to AccountFolderList

* Move relevant sources & resources to new name
* Convert from ListView to ExpandableListView
* No children yet - selecting account simply jumps to FML (temp)
* No other change to functionality (e.g. no menu changes yet)
/packages/apps/Email/src/com/android/email/service/MailService.java
7b0b463477ef7172bd4b9e19c6338634ebedd8ee 23-Jun-2009 Andrew Stadler <stadler@android.com> List messages from MessagingController & Stores.

* update MessageListener callbacks and remove the callbacks that
edit data (this comes through the provider now).
* provide simple linkage via Controller to sync a mailbox
* update FolderMessageList to trigger mailbox sync
* rewrite synchronize to push messages into provider
* small improvements to FML (sorting; show read/unread status)
* note: trailing whitespace cleanup in some files
/packages/apps/Email/src/com/android/email/service/MailService.java
a290f503f14432163f74548a5e5d1dc5003ad049 15-Jun-2009 Marc Blank <mblank@google.com> Refactored EmailStore, EmailContent, EmailProvider

EmailStore goes away, replaced by EmailContent
All database activity is moved to EmailProvider
/packages/apps/Email/src/com/android/email/service/MailService.java
c0033f24a26a08c47aa38d957f42cf63cfa3c345 09-Jun-2009 Andrew Stadler <stadler@android.com> Convert remainder of app to use provider-based accounts
What works:
* Unit tests, except for com.android.email.activity.setup.*
* Editing existing accounts
* Create new accounts
* Checking account settings against server
* Mail sync using accounts
* Viewing mailboxes

What breaks (in approx order of planned fixes)
* Unit tests in com.android.email.activity.setup.*
* Viewing messages
* Composing messages
* Some details of account editing
* Import of existing accounts
/packages/apps/Email/src/com/android/email/service/MailService.java
dab90a7b350e9c7dc23d501f12a40060d7178763 07-May-2009 Andy Stadler <nobody@android.com> AI 148377: Push Mode changes: (1) Add android.permission.WAKE_LOCK and
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
/packages/apps/Email/src/com/android/email/service/MailService.java
c5c2b9673907d44fa03ac277a9028704b6277c7b 01-May-2009 Andy Stadler <nobody@android.com> AI 148145: Remove the account-based storage of store persistent data, and instead
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
/packages/apps/Email/src/com/android/email/service/MailService.java
cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7 14-Apr-2009 Andy Stadler <> AI 146061: Add persistent storage that Store classes can access.
The current design for Store classes (e.g. IMAP) did not provide for
any persistent storage. This is the beginning of a mechanism to
provide that. It's quite simplisitic - each Store can read/write one
persistent string - but that's enough for the first simple use case
(saving some sync data for EAS).
The core changes here - suggest reviewing first - are in Account.java,
Store.java, and AccountUnitTests.java. Everything else is just
following the API change that was necessary.
Note that, by definition, this only applies to remote stores (e.g.
IMAP, POP3). You'll see everywhere that LocalStore is passed null, and
this is correct - LocalStore *is* persistent storage and does not need
access (so far, at least).
BUG=1786939

Automated import of CL 146061
/packages/apps/Email/src/com/android/email/service/MailService.java
8664ecf1817e9965f9910dd12f6115ef4aaa8f2a 09-Apr-2009 Andy Stadler <> AI 145227: Add callback for push-mode stores to report async updates.
The logic for this is quite simplistic, for now: When the store
reports that it has new messages, it triggers a service refresh,
just as if a pull-mode interval had expired and it is time to
check the server.
Note, unfortunately at this time there are no tests, because there
are not currently any good test seams in MailService.java.
BUG=1776149

Automated import of CL 145227
/packages/apps/Email/src/com/android/email/service/MailService.java
ea6fea9bb22368c10083d5dce52adae86e51a243 08-Apr-2009 Andy Stadler <> AI 144953: Provide UI for push mode accounts.
1. Generalize the code for the various spinners that control
account check frequency.
2. Provide an API for looking up store attributes (and refactor
existing instatiateStore logic to use it).
3. Cleanup the old code that was used to setup frequency spinners.
4. Hardwire Exchange accounts to default into push mode.
Notes to tester:
1. For each account type (POP, IMAP, EAS) we need to check that
auto & manual creation "do the right thing" for frequencies.
POP & IMAP should offer "none" or time intervals, while EAS
should offer "push", "none", or time intervals.
2. EAS accounts should default to "push", all others to "15 min"
3. Make sure that you can edit existing account settings and see
the right choices (only EAS should be offered push).
4. I couldn't write an automated test for the mail checker service,
please confirm that POP & IMAP accounts are checked at the right
intervals (or never, if set for "none".)
BUG=1776149

Automated import of CL 144953
/packages/apps/Email/src/com/android/email/service/MailService.java
3db9542af6be894a4b053c3c6eb9baf456cc8a44 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
/packages/apps/Email/src/com/android/email/service/MailService.java
96c5af40d639d629267794f4f0338a267ff94ce5 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/packages/apps/Email/src/com/android/email/service/MailService.java
8c2158a5ebb88e226c23b66ff95910158a2727df 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/packages/apps/Email/src/com/android/email/service/MailService.java
687f9962d7095e18ef994cd0e64337f02ed1a5bd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/packages/apps/Email/src/com/android/email/service/MailService.java
8978aac1977408b05e386ae846c30920c7faa0a6 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/packages/apps/Email/src/com/android/email/service/MailService.java