Background tasks can decide which executor to run with.

- Allow BackgroundTaskService to take an Executor as an optional argument,
  most commonly these will be one of the static fields defined on
  AsyncTask.
- Make voicemail prepare media on async background thread.
- Mark voicemails as read concurrently with other async tasks.
- Change background task service to accept an Executor as argument.
- Remove the initial progress and initial time from seek bar.

Bug: 5148472
Change-Id: I55815294fe671d3a42af0b2d6d5e29e6eaea271e
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 1e791b6..0aba332 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -16,6 +16,8 @@
 
 package com.android.contacts;
 
+import static com.android.contacts.util.BackgroundTaskService.createAsyncTaskBackgroundTaskService;
+
 import com.android.contacts.model.AccountTypeManager;
 import com.android.contacts.test.InjectedServices;
 import com.android.contacts.util.BackgroundTaskService;
@@ -97,7 +99,7 @@
 
         if (BackgroundTaskService.BACKGROUND_TASK_SERVICE.equals(name)) {
             if (mBackgroundTaskService == null) {
-                mBackgroundTaskService = BackgroundTaskService.createBackgroundTaskService();
+                mBackgroundTaskService = createAsyncTaskBackgroundTaskService();
             }
             return mBackgroundTaskService;
         }