package pl.mg6.agde.demo.dagger; import android.content.Context; import android.os.AsyncTask; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; import pl.mg6.agde.demo.api.GitHubApi; import pl.mg6.agde.demo.ui.ReposActivity; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import retrofit.android.MainThreadExecutor; @Module( injects = { ReposActivity.class, }, library = true ) public final class MyModule { private final Context context; public MyModule(Context context) { this.context = context; } @Provides @Singleton public Context provideContext() { return context; } @Provides @Singleton public GitHubApi provideApi() { RestAdapter adapter = new RestAdapter.Builder() .setEndpoint("https://api.github.com") .setExecutors(AsyncTask.THREAD_POOL_EXECUTOR, new MainThreadExecutor()) .setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { request.addHeader("User-Agent", "https://github.com/mg6maciej/android-groovy-dagger-espresso-demo"); } }) .setLogLevel(RestAdapter.LogLevel.FULL) .build(); return adapter.create(GitHubApi.class); } }