package co.infinum.pokemon.dagger.modules; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import javax.inject.Named; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; import retrofit.android.MainThreadExecutor; /** * This module uses to inject HTTP Client * and Callback executors. This implementation of Executors inject the default executors set * up by Retrofit RestClient.Builder. */ @Module public class DefaultExecutorsModule { @Provides @Singleton @Named("HttpExecutor") public Executor provideHttpExecutor() { return Executors.newCachedThreadPool(); } @Provides @Singleton @Named("CallbackExecutor") public Executor provideCallbackExecutor() { return new MainThreadExecutor(); } }