package com.example.tools.dagger.components; import android.support.annotation.VisibleForTesting; import android.support.test.espresso.idling.CountingIdlingResource; import com.example.App; import com.example.dagger.modules.BuildTypeAwareModule; import com.example.networking.BaseUrlInterceptor; import com.example.networking.RestService; import com.example.tools.analytics.AnalyticsHelper; import com.example.tools.dagger.modules.AndroidModule; import com.example.tools.dagger.modules.ApplicationModule; import com.example.tools.dagger.modules.NetworkModule; import com.example.tools.images.ImageLoader; import com.example.util.rx.RxSchedulers; import dagger.Component; import okhttp3.OkHttpClient; import javax.inject.Singleton; @Singleton @Component(modules = {ApplicationModule.class, NetworkModule.class, AndroidModule.class, BuildTypeAwareModule.class}) public interface ApplicationComponent { RestService restService(); RxSchedulers rxSchedulers(); AnalyticsHelper analyticsHelper(); App application(); ImageLoader imageLoader(); OkHttpClient okHttpClient(); CountingIdlingResource countingIdlingResource(); void inject(App application); @VisibleForTesting BaseUrlInterceptor baseUrlInterceptor(); }