package com.anthony.app.dagger.component; import android.content.Context; import com.anthony.app.dagger.DaggerApplication; import com.anthony.app.dagger.DataRepository; import com.anthony.app.dagger.module.ApplicationModule; import com.anthony.app.dagger.scope.ApplicationContext; import com.anthony.app.dagger.scope.PerActivity; import com.anthony.imageloader.ImageLoaderUtil; import com.anthony.library.data.dao.ChannelDao; import com.anthony.library.data.dao.NewsItemDao; import com.anthony.library.data.dao.OfflineResourceDao; import com.anthony.library.utils.ToastUtils; import com.anthony.library.widgets.CircleProgressBar; import com.anthony.library.widgets.ViewDisplay; import com.squareup.otto.Bus; import javax.inject.Singleton; import dagger.Component; /** * Created by Anthony on 2016/6/13. * Class Note: */ @Singleton @Component(modules = ApplicationModule.class) public interface ApplicationComponent { void inject(DaggerApplication application); /** * instance expose to children, * because children are in different Scope {@link PerActivity} * ,so if this is field children wanna load , we must expose here */ @ApplicationContext Context context(); DaggerApplication application(); //third part lib Otto used here Bus eventBus(); ViewDisplay viewDisplay(); CircleProgressBar circleProgressBar(); ChannelDao channelDao(); NewsItemDao newsItemDao(); OfflineResourceDao offlineResourceDao(); ImageLoaderUtil imageLoaderUtil(); ToastUtils toastUtils(); DataRepository dataRepository(); }