Removed helper methods in DialerExecutors.

We now use dagger everywhere for consistency and explicitness.

Test: tap
PiperOrigin-RevId: 174071122
Change-Id: I15d2f8261a7b753353be9e7d3b80692aa0c1b64d
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
index 744c0de..641be85 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
@@ -21,7 +21,7 @@
 import android.content.Intent;
 import android.support.v4.util.Pair;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import me.leolin.shortcutbadger.ShortcutBadger;
 
 /**
@@ -30,7 +30,7 @@
  */
 public class MissedCallNotificationReceiver extends BroadcastReceiver {
 
-  //TODO: Use compat class for these methods.
+  // TODO: Use compat class for these methods.
   public static final String ACTION_SHOW_MISSED_CALLS_NOTIFICATION =
       "android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION";
 
@@ -53,7 +53,9 @@
 
     PendingResult pendingResult = goAsync();
 
-    DialerExecutors.createNonUiTaskBuilder(context, MissedCallNotifier.getInstance(context))
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(MissedCallNotifier.getInstance(context))
         .onSuccess(
             output -> {
               LogUtil.i(
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
index 9d8b040..33fcba0 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
@@ -38,7 +38,7 @@
 import com.android.dialer.app.voicemail.error.VoicemailStatusWorker;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.util.PermissionsUtil;
@@ -79,8 +79,9 @@
     super.onActivityCreated(savedInstanceState);
 
     mPreSyncVoicemailStatusCheckExecutor =
-        DialerExecutors.createUiTaskBuilder(
-                getContext(),
+        DialerExecutorComponent.get(getContext())
+            .dialerExecutorFactory()
+            .createUiTaskBuilder(
                 getActivity().getFragmentManager(),
                 "fetchVoicemailStatus",
                 new VoicemailStatusWorker())
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java b/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java
index fd0be5f..e3279ce 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java
@@ -31,7 +31,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.notification.DialerNotificationManager;
 import com.android.dialer.phonenumbercache.ContactInfo;
 import com.android.dialer.telecom.TelecomUtil;
@@ -184,7 +184,9 @@
             context,
             CallLogNotificationsQueryHelper.getInstance(context),
             new FilteredNumberAsyncQueryHandler(context));
-    DialerExecutors.createNonUiTaskBuilder(context, new VisualVoicemailUpdateTask())
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new VisualVoicemailUpdateTask())
         .onSuccess(
             output -> {
               LogUtil.i("VisualVoicemailUpdateTask.scheduleTask", "update successful");
diff --git a/java/com/android/dialer/app/list/RegularSearchFragment.java b/java/com/android/dialer/app/list/RegularSearchFragment.java
index ca19432..48f77dc 100644
--- a/java/com/android/dialer/app/list/RegularSearchFragment.java
+++ b/java/com/android/dialer/app/list/RegularSearchFragment.java
@@ -32,7 +32,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService.CachedContactInfo;
 import com.android.dialer.phonenumbercache.PhoneNumberCache;
@@ -66,8 +66,9 @@
     super.onCreate(savedState);
 
     addContactTask =
-        DialerExecutors.createUiTaskBuilder(
-                getContext(),
+        DialerExecutorComponent.get(getContext())
+            .dialerExecutorFactory()
+            .createUiTaskBuilder(
                 getFragmentManager(),
                 "RegularSearchFragment.addContact",
                 new AddContactWorker(getContext().getApplicationContext()))
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index 2d21bd6..10afe47 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -51,7 +51,7 @@
 import com.android.dialer.common.concurrent.AsyncTaskExecutor;
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
 import com.android.dialer.common.concurrent.DialerExecutor;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.configprovider.ConfigProviderBindings;
 import com.android.dialer.constants.Constants;
 import com.android.dialer.logging.DialerImpression;
@@ -220,11 +220,10 @@
         mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
       }
       shareVoicemailExecutor =
-          DialerExecutors.createUiTaskBuilder(
-                  mContext,
-                  mActivity.getFragmentManager(),
-                  "shareVoicemail",
-                  new ShareVoicemailWorker())
+          DialerExecutorComponent.get(mContext)
+              .dialerExecutorFactory()
+              .createUiTaskBuilder(
+                  mActivity.getFragmentManager(), "shareVoicemail", new ShareVoicemailWorker())
               .onSuccess(
                   output -> {
                     if (output == null) {
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index eedf073..cd0c741 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -58,7 +58,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.UiUtil;
 import com.android.dialer.common.concurrent.DialerExecutor;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.configprovider.ConfigProviderBindings;
 import com.android.dialer.constants.Constants;
@@ -223,8 +223,9 @@
     setMediaIconSelected(currentIndex);
 
     copyAndResizeExecutor =
-        DialerExecutors.createUiTaskBuilder(
-                getApplicationContext(),
+        DialerExecutorComponent.get(getApplicationContext())
+            .dialerExecutorFactory()
+            .createUiTaskBuilder(
                 getFragmentManager(),
                 "copyAndResizeImageToSend",
                 new CopyAndResizeImageWorker(this.getApplicationContext()))
diff --git a/java/com/android/dialer/callcomposer/camera/CameraManager.java b/java/com/android/dialer/callcomposer/camera/CameraManager.java
index 9a9577f..b850a19 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -35,7 +35,7 @@
 import com.android.dialer.callcomposer.camera.camerafocus.RenderOverlay;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -468,8 +468,9 @@
             }
             LogUtil.i(
                 "CameraManager.onPictureTaken", "taken picture size: " + bytes.length + " bytes");
-            DialerExecutors.createNonUiTaskBuilder(
-                    mCameraPreview.getContext(),
+            DialerExecutorComponent.get(mCameraPreview.getContext())
+                .dialerExecutorFactory()
+                .createNonUiTaskBuilder(
                     new ImagePersistWorker(
                         width, height, heightPercent, bytes, mCameraPreview.getContext()))
                 .onSuccess(
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutor.java b/java/com/android/dialer/common/concurrent/DialerExecutor.java
index 0414581..3ee0644 100644
--- a/java/com/android/dialer/common/concurrent/DialerExecutor.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutor.java
@@ -25,7 +25,95 @@
 /**
  * Provides a consistent interface for doing background work in either UI or non-UI contexts.
  *
- * <p>See {@link DialerExecutors} for usage examples.
+ * <p>You may create an executor from a UI component (activity or fragment) or a non-UI component.
+ * Using this class provides a number of benefits:
+ *
+ * <ul>
+ *   <li>Ensures that UI tasks keep running across configuration changes by using a headless
+ *       fragment.
+ *   <li>Forces exceptions to crash the application, unless the user implements their own onFailure
+ *       method.
+ *   <li>Checks for dead UI components which can be encountered if a UI task runs longer than its
+ *       UI. If a dead UI component is encountered, onSuccess/onFailure are not called (because they
+ *       can't be) but a message is logged.
+ *   <li>Helps prevent memory leaks in UI tasks by ensuring that callbacks are nulled out when the
+ *       headless fragment is detached.
+ *   <li>UI and non-UI threads are shared across the application and run at reasonable priorities
+ * </ul>
+ *
+ * <p>Executors accept a single input and output parameter which should be immutable data objects.
+ * If you don't require an input or output, use Void and null as needed.
+ *
+ * <p>You may optionally specify onSuccess and onFailure listeners; the default behavior on success
+ * is a no-op and the default behavior on failure is to crash the application.
+ *
+ * <p>To use an executor from a UI component, you must create it in your onCreate method and then
+ * use it from anywhere:
+ *
+ * <pre><code>
+ *
+ * public class MyActivity extends Activity {
+ *
+ *   private final DialerExecutor&lt;MyInputType&gt; myExecutor;
+ *
+ *   public void onCreate(Bundle state) {
+ *     super.onCreate(bundle);
+ *
+ *     // Must be called in onCreate; don't use non-static or anonymous inner classes for worker!
+ *     myExecutor = DialerExecutorComponent.get(context).dialerExecutorFactory()
+ *         .createUiTaskBuilder(fragmentManager, taskId, worker)
+ *         .onSuccess(this::onSuccess)  // Lambdas, anonymous, or non-static inner classes all fine
+ *         .onFailure(this::onFailure)  // Lambdas, anonymous, or non-static inner classes all fine
+ *         .build();
+ *     );
+ *   }
+ *
+ *   private static class MyWorker implements Worker&lt;MyInputType, MyOutputType&gt; {
+ *     MyOutputType doInBackground(MyInputType input) { ... }
+ *   }
+ *   private void onSuccess(MyOutputType output) { ... }
+ *   private void onFailure(Throwable throwable) { ... }
+ *
+ *   private void userDidSomething() { myExecutor.executeParallel(input); }
+ * }
+ * </code></pre>
+ *
+ * <p>Usage for non-UI tasks is the same, except that tasks can be created from anywhere instead of
+ * in onCreate. Non-UI tasks use low-priority threads separate from the UI task threads so as not to
+ * compete with more critical UI tasks.
+ *
+ * <pre><code>
+ *
+ * public class MyManager {
+ *
+ *   private final DialerExecutor&lt;MyInputType&gt; myExecutor;
+ *
+ *   public void init() {
+ *     // Don't use non-static or anonymous inner classes for worker!
+ *     myExecutor = DialerExecutorComponent.get(context).dialerExecutorFactory()
+ *         .createNonUiTaskBuilder(worker)
+ *         .onSuccess(this::onSuccess)  // Lambdas, anonymous, or non-static inner classes all fine
+ *         .onFailure(this::onFailure)  // Lambdas, anonymous, or non-static inner classes all fine
+ *         .build();
+ *     );
+ *   }
+ *
+ *   private static class MyWorker implements Worker&lt;MyInputType, MyOutputType&gt; {
+ *     MyOutputType doInBackground(MyInputType input) { ... }
+ *   }
+ *   private void onSuccess(MyOutputType output) { ... }
+ *   private void onFailure(Throwable throwable) { ... }
+ *
+ *   private void userDidSomething() { myExecutor.executeParallel(input); }
+ * }
+ * </code></pre>
+ *
+ * Note that non-UI tasks are intended to be relatively quick; for example reading/writing shared
+ * preferences or doing simple database work. If you submit long running non-UI tasks you may
+ * saturate the shared application threads and block other tasks. Also, this class does not create
+ * any wakelocks, so a long running task could be killed if the device goes to sleep while your task
+ * is still running. If you have to do long running or periodic work, consider using a job
+ * scheduler.
  */
 public interface DialerExecutor<InputT> {
 
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutors.java b/java/com/android/dialer/common/concurrent/DialerExecutors.java
index 4d8331f..b29bf5d 100644
--- a/java/com/android/dialer/common/concurrent/DialerExecutors.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutors.java
@@ -16,135 +16,15 @@
 
 package com.android.dialer.common.concurrent;
 
-import android.app.FragmentManager;
 import android.content.Context;
 import android.support.annotation.NonNull;
 import com.android.dialer.common.Assert;
-import com.android.dialer.common.concurrent.DialerExecutor.Worker;
 import java.util.concurrent.ExecutorService;
 
-/**
- * Factory methods for creating {@link DialerExecutor} objects for doing background work.
- *
- * <p>You may create an executor from a UI component (activity or fragment) or a non-UI component.
- * Using this class provides a number of benefits:
- *
- * <ul>
- *   <li>Ensures that UI tasks keep running across configuration changes by using a headless
- *       fragment.
- *   <li>Forces exceptions to crash the application, unless the user implements their own onFailure
- *       method.
- *   <li>Checks for dead UI components which can be encountered if a UI task runs longer than its
- *       UI. If a dead UI component is encountered, onSuccess/onFailure are not called (because they
- *       can't be) but a message is logged.
- *   <li>Helps prevents memory leaks in UI tasks by ensuring that callbacks are nulled out when the
- *       headless fragment is detached.
- *   <li>UI and non-UI threads are shared across the application and run at reasonable priorities
- * </ul>
- *
- * <p>Executors accept a single input and output parameter which should be immutable data objects.
- * If you don't require an input or output, use Void and null as needed.
- *
- * <p>You may optionally specify onSuccess and onFailure listeners; the default behavior on success
- * is a no-op and the default behavior on failure is to crash the application.
- *
- * <p>To use an executor from a UI component, you must create it in your onCreate method and then
- * use it from anywhere:
- *
- * <pre><code>
- *
- * public class MyActivity extends Activity {
- *
- *   private final DialerExecutor&lt;MyInputType&gt; myExecutor;
- *
- *   public void onCreate(Bundle state) {
- *     super.onCreate(bundle);
- *
- *     // Must be called in onCreate; don't use non-static or anonymous inner classes for worker!
- *     myExecutor = DialerExecutors.createUiTaskBuilder(fragmentManager, taskId, worker)
- *         .onSuccess(this::onSuccess)  // Lambdas, anonymous, or non-static inner classes all fine
- *         .onFailure(this::onFailure)  // Lambdas, anonymous, or non-static inner classes all fine
- *         .build();
- *     );
- *   }
- *
- *   private static class MyWorker implements Worker&lt;MyInputType, MyOutputType&gt; {
- *     MyOutputType doInBackground(MyInputType input) { ... }
- *   }
- *   private void onSuccess(MyOutputType output) { ... }
- *   private void onFailure(Throwable throwable) { ... }
- *
- *   private void userDidSomething() { myExecutor.executeParallel(input); }
- * }
- * </code></pre>
- *
- * <p>Usage for non-UI tasks is the same, except that tasks can be created from anywhere instead of
- * in onCreate. Non-UI tasks use low-priority threads separate from the UI task threads so as not to
- * compete with more critical UI tasks.
- *
- * <pre><code>
- *
- * public class MyManager {
- *
- *   private final DialerExecutor&lt;MyInputType&gt; myExecutor;
- *
- *   public void init() {
- *     // Don't use non-static or anonymous inner classes for worker!
- *     myExecutor = DialerExecutors.createNonUiTaskBuilder(worker)
- *         .onSuccess(this::onSuccess)  // Lambdas, anonymous, or non-static inner classes all fine
- *         .onFailure(this::onFailure)  // Lambdas, anonymous, or non-static inner classes all fine
- *         .build();
- *     );
- *   }
- *
- *   private static class MyWorker implements Worker&lt;MyInputType, MyOutputType&gt; {
- *     MyOutputType doInBackground(MyInputType input) { ... }
- *   }
- *   private void onSuccess(MyOutputType output) { ... }
- *   private void onFailure(Throwable throwable) { ... }
- *
- *   private void userDidSomething() { myExecutor.executeParallel(input); }
- * }
- * </code></pre>
- *
- * Note that non-UI tasks are intended to be relatively quick; for example reading/writing shared
- * preferences or doing simple database work. If you submit long running non-UI tasks you may
- * saturate the shared application threads and block other tasks. Also, this class does not create
- * any wakelocks, so a long running task could be killed if the device goes to sleep while your task
- * is still running. If you have to do long running or periodic work, consider using a job
- * scheduler.
- */
+/** Shared application executors. */
 public final class DialerExecutors {
 
   /**
-   * @param context any valid context object from which the application context can be retrieved
-   * @see DialerExecutorFactory#createUiTaskBuilder(FragmentManager, String, Worker)
-   */
-  @NonNull
-  public static <InputT, OutputT> DialerExecutor.Builder<InputT, OutputT> createUiTaskBuilder(
-      @NonNull Context context,
-      @NonNull FragmentManager fragmentManager,
-      @NonNull String taskId,
-      @NonNull Worker<InputT, OutputT> worker) {
-    return DialerExecutorComponent.get(Assert.isNotNull(context))
-        .dialerExecutorFactory()
-        .createUiTaskBuilder(
-            Assert.isNotNull(fragmentManager), Assert.isNotNull(taskId), Assert.isNotNull(worker));
-  }
-
-  /**
-   * @param context any valid context object from which the application context can be retrieved
-   * @see DialerExecutorFactory#createNonUiTaskBuilder(Worker)
-   */
-  @NonNull
-  public static <InputT, OutputT> DialerExecutor.Builder<InputT, OutputT> createNonUiTaskBuilder(
-      Context context, @NonNull Worker<InputT, OutputT> worker) {
-    return DialerExecutorComponent.get(Assert.isNotNull(context))
-        .dialerExecutorFactory()
-        .createNonUiTaskBuilder(Assert.isNotNull(worker));
-  }
-
-  /**
    * An application-wide thread pool used for low priority (non-UI) tasks.
    *
    * <p>This exists to prevent each individual dialer component from having to create its own
diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java
index 7b551f7..1f83d55 100644
--- a/java/com/android/dialer/dialpadview/DialpadFragment.java
+++ b/java/com/android/dialer/dialpadview/DialpadFragment.java
@@ -77,7 +77,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.location.GeoUtil;
 import com.android.dialer.logging.UiAction;
@@ -343,8 +343,9 @@
     }
 
     initPhoneNumberFormattingTextWatcherExecutor =
-        DialerExecutors.createUiTaskBuilder(
-                getContext(),
+        DialerExecutorComponent.get(getContext())
+            .dialerExecutorFactory()
+            .createUiTaskBuilder(
                 getFragmentManager(),
                 "DialpadFragment.initPhoneNumberFormattingTextWatcher",
                 new InitPhoneNumberFormattingTextWatcherWorker())
diff --git a/java/com/android/dialer/shortcuts/ShortcutRefresher.java b/java/com/android/dialer/shortcuts/ShortcutRefresher.java
index 7fd02a9..3201d59 100644
--- a/java/com/android/dialer/shortcuts/ShortcutRefresher.java
+++ b/java/com/android/dialer/shortcuts/ShortcutRefresher.java
@@ -24,7 +24,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -45,7 +45,9 @@
       return;
     }
 
-    DialerExecutors.createNonUiTaskBuilder(context, new RefreshWorker(context))
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new RefreshWorker(context))
         .build()
         .executeSerial(new ArrayList<>(contacts));
   }
diff --git a/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java b/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java
index 1a2cae1..f4b1916 100644
--- a/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java
+++ b/java/com/android/dialer/simulator/impl/SimulatorMainMenu.java
@@ -23,7 +23,7 @@
 import android.support.annotation.Nullable;
 import android.view.ActionProvider;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.databasepopulator.CallLogPopulator;
 import com.android.dialer.databasepopulator.ContactsPopulator;
 import com.android.dialer.databasepopulator.VoicemailPopulator;
@@ -48,13 +48,17 @@
   }
 
   private static void populateDatabase(@NonNull Context context) {
-    DialerExecutors.createNonUiTaskBuilder(context, new PopulateDatabaseWorker())
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new PopulateDatabaseWorker())
         .build()
         .executeSerial(context);
   }
 
   private static void cleanDatabase(@NonNull Context context) {
-    DialerExecutors.createNonUiTaskBuilder(context, new CleanDatabaseWorker())
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new CleanDatabaseWorker())
         .build()
         .executeSerial(context);
   }
@@ -65,7 +69,9 @@
   }
 
   private static void sharePersistentLog(@NonNull Context context) {
-    DialerExecutors.createNonUiTaskBuilder(context, new ShareLogWorker())
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new ShareLogWorker())
         .onSuccess(
             (String log) -> {
               Intent intent = new Intent(Intent.ACTION_SEND);
diff --git a/java/com/android/incallui/ContactInfoCache.java b/java/com/android/incallui/ContactInfoCache.java
index 2735461..67a294f 100644
--- a/java/com/android/incallui/ContactInfoCache.java
+++ b/java/com/android/incallui/ContactInfoCache.java
@@ -45,7 +45,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.concurrent.DialerExecutor;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.logging.ContactLookupResult;
 import com.android.dialer.logging.ContactSource;
 import com.android.dialer.oem.CequintCallerIdManager;
@@ -126,7 +126,10 @@
     mContext = context;
     mPhoneNumberService = Bindings.get(context).newPhoneNumberService(context);
     cachedNumberLookupExecutor =
-        DialerExecutors.createNonUiTaskBuilder(mContext, new CachedNumberLookupWorker()).build();
+        DialerExecutorComponent.get(mContext)
+            .dialerExecutorFactory()
+            .createNonUiTaskBuilder(new CachedNumberLookupWorker())
+            .build();
     Trace.endSection();
   }
 
diff --git a/java/com/android/incallui/ContactsAsyncHelper.java b/java/com/android/incallui/ContactsAsyncHelper.java
index 2e893b0..abca924 100644
--- a/java/com/android/incallui/ContactsAsyncHelper.java
+++ b/java/com/android/incallui/ContactsAsyncHelper.java
@@ -27,7 +27,7 @@
 import android.support.annotation.WorkerThread;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor;
-import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -94,7 +94,9 @@
     args.displayPhotoUri = displayPhotoUri;
     args.listener = listener;
 
-    DialerExecutors.createNonUiTaskBuilder(context, new Worker())
+    DialerExecutorComponent.get(context)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new Worker())
         .onSuccess(
             output -> {
               if (args.listener != null) {