package com.thebluealliance.androidclient.binders;
import com.thebluealliance.androidclient.helpers.FragmentBinder;
import com.thebluealliance.androidclient.listeners.ClickListenerModule;
import com.thebluealliance.androidclient.listeners.EventInfoContainerClickListener;
import com.thebluealliance.androidclient.listeners.SocialClickListener;
import com.thebluealliance.androidclient.renderers.MatchRenderer;
import com.thebluealliance.androidclient.renderers.ModelRendererSupplier;
import com.thebluealliance.androidclient.renderers.RendererModule;
import org.greenrobot.eventbus.EventBus;
import android.content.res.Resources;
import dagger.Module;
import dagger.Provides;
@Module(includes = {RendererModule.class, ClickListenerModule.class})
public class BinderModule {
private final Resources mResources;
public BinderModule(Resources resources) {
mResources = resources;
}
@Provides
public FragmentBinder provideFragmentBinder() {
return new FragmentBinder();
}
@Provides
public EventInfoBinder provideEventInfoBinder(MatchRenderer renderer, SocialClickListener socialClickListener, EventInfoContainerClickListener eventInfoContainerClickListener) {
return new EventInfoBinder(renderer, socialClickListener, eventInfoContainerClickListener);
}
@Provides
public TeamInfoBinder provideTeamInfoBinder(SocialClickListener socialClickListener) {
return new TeamInfoBinder(socialClickListener);
}
@Provides
public ListViewBinder provideListviewBinder() {
return new ListViewBinder();
}
@Provides
RecyclerViewBinder provideRecyclerViewBinder() {
return new RecyclerViewBinder();
}
@Provides
public RecentNotificationsListBinder provideRecentNotificationsListBinder() {
return new RecentNotificationsListBinder();
}
@Provides
public ExpandableListViewBinder provideExpandableListBinder(ModelRendererSupplier supplier) {
return new ExpandableListViewBinder(supplier);
}
@Provides
public StatsListBinder provideStatsListBinder() {
return new StatsListBinder();
}
@Provides
public MatchListBinder provideMatchListBinder(ModelRendererSupplier supplier) {
return new MatchListBinder(supplier);
}
@Provides
public EventTabBinder provideEventTabBinder() {
return new EventTabBinder();
}
@Provides
public DistrictPointsListBinder provideDistrictPointsListBinder() {
return new DistrictPointsListBinder(mResources);
}
@Provides
public NoDataBinder provideNoDataBinder() {
return new NoDataBinder();
}
@Provides
public MatchBreakdownBinder provideMatchBreakdownBinder() {
return new MatchBreakdownBinder();
}
@Provides
public DistrictEventsBinder provideDistrictEventsBinder(EventBus eventBus, Resources res) {
return new DistrictEventsBinder(eventBus, res);
}
}