summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/common
diff options
context:
space:
mode:
authorzachh <zachh@google.com>2017-12-06 18:06:06 -0800
committerCopybara-Service <copybara-piper@google.com>2017-12-07 18:29:07 -0800
commit0c0c0a318d72e4b6f24514c4c6b3a173e249297d (patch)
tree76408b119a13584de5845a147feab6c9f485746a /java/com/android/dialer/common
parent32632f8cbed8ec7651e7c831b4defdfd4d81e70d (diff)
Added bindings for ListeningExecutorServices.
Use them where appropriate. Bug: 34672501 Test: existing PiperOrigin-RevId: 178182298 Change-Id: If454225e0d636c7cb14b5af02d46780d7732abf0
Diffstat (limited to 'java/com/android/dialer/common')
-rw-r--r--java/com/android/dialer/common/concurrent/Annotations.java8
-rw-r--r--java/com/android/dialer/common/concurrent/DefaultDialerExecutorFactory.java4
-rw-r--r--java/com/android/dialer/common/concurrent/DialerExecutorModule.java23
3 files changed, 30 insertions, 5 deletions
diff --git a/java/com/android/dialer/common/concurrent/Annotations.java b/java/com/android/dialer/common/concurrent/Annotations.java
index 5e3954cf9..62d5b318e 100644
--- a/java/com/android/dialer/common/concurrent/Annotations.java
+++ b/java/com/android/dialer/common/concurrent/Annotations.java
@@ -39,4 +39,12 @@ public class Annotations {
/** Annotation for retrieving the UI serial executor. */
@Qualifier
public @interface UiSerial {}
+
+ /** Annotation for retrieving the lightweight executor. */
+ @Qualifier
+ public @interface LightweightExecutor {}
+
+ /** Annotation for retrieving the background executor. */
+ @Qualifier
+ public @interface BackgroundExecutor {}
}
diff --git a/java/com/android/dialer/common/concurrent/DefaultDialerExecutorFactory.java b/java/com/android/dialer/common/concurrent/DefaultDialerExecutorFactory.java
index ab01654aa..317807b1d 100644
--- a/java/com/android/dialer/common/concurrent/DefaultDialerExecutorFactory.java
+++ b/java/com/android/dialer/common/concurrent/DefaultDialerExecutorFactory.java
@@ -40,14 +40,14 @@ import javax.inject.Inject;
public class DefaultDialerExecutorFactory implements DialerExecutorFactory {
private final ExecutorService nonUiThreadPool;
private final ScheduledExecutorService nonUiSerialExecutor;
- private final Executor uiThreadPool;
+ private final ExecutorService uiThreadPool;
private final ScheduledExecutorService uiSerialExecutor;
@Inject
DefaultDialerExecutorFactory(
@NonUiParallel ExecutorService nonUiThreadPool,
@NonUiSerial ScheduledExecutorService nonUiSerialExecutor,
- @UiParallel Executor uiThreadPool,
+ @UiParallel ExecutorService uiThreadPool,
@UiSerial ScheduledExecutorService uiSerialExecutor) {
this.nonUiThreadPool = nonUiThreadPool;
this.nonUiSerialExecutor = nonUiSerialExecutor;
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
index 5e0190e8d..98738ed37 100644
--- a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
@@ -17,16 +17,18 @@ package com.android.dialer.common.concurrent;
import android.os.AsyncTask;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor;
+import com.android.dialer.common.concurrent.Annotations.LightweightExecutor;
import com.android.dialer.common.concurrent.Annotations.NonUiParallel;
import com.android.dialer.common.concurrent.Annotations.NonUiSerial;
import com.android.dialer.common.concurrent.Annotations.Ui;
import com.android.dialer.common.concurrent.Annotations.UiParallel;
import com.android.dialer.common.concurrent.Annotations.UiSerial;
import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
-import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -85,8 +87,8 @@ public abstract class DialerExecutorModule {
@Provides
@UiParallel
- static Executor provideUiThreadPool() {
- return AsyncTask.THREAD_POOL_EXECUTOR;
+ static ExecutorService provideUiThreadPool() {
+ return (ExecutorService) AsyncTask.THREAD_POOL_EXECUTOR;
}
@Provides
@@ -105,4 +107,19 @@ public abstract class DialerExecutorModule {
}
});
}
+
+ @Provides
+ @Singleton
+ @LightweightExecutor
+ static ListeningExecutorService provideLightweightExecutor(@UiParallel ExecutorService delegate) {
+ return MoreExecutors.listeningDecorator(delegate);
+ }
+
+ @Provides
+ @Singleton
+ @BackgroundExecutor
+ static ListeningExecutorService provideBackgroundExecutor(
+ @NonUiParallel ExecutorService delegate) {
+ return MoreExecutors.listeningDecorator(delegate);
+ }
}