diff options
author | zachh <zachh@google.com> | 2017-12-06 18:06:06 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-07 18:29:07 -0800 |
commit | 0c0c0a318d72e4b6f24514c4c6b3a173e249297d (patch) | |
tree | 76408b119a13584de5845a147feab6c9f485746a /java/com/android/dialer/common | |
parent | 32632f8cbed8ec7651e7c831b4defdfd4d81e70d (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')
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); + } } |