package com.zhuinden.simplestackdemoexamplemvp.application.injection;
import android.content.Context;
import android.content.res.Resources;
import com.zhuinden.simplestackdemoexamplemvp.presentation.paths.addoredittask.AddOrEditTaskView;
import com.zhuinden.simplestackdemoexamplemvp.presentation.paths.statistics.StatisticsView;
import com.zhuinden.simplestackdemoexamplemvp.presentation.paths.taskdetail.TaskDetailView;
import com.zhuinden.simplestackdemoexamplemvp.presentation.paths.tasks.TasksView;
import com.zhuinden.simplestack.Backstack;
import com.zhuinden.simplestackdemoexamplemvp.application.MainActivity;
import com.zhuinden.simplestackdemoexamplemvp.application.MainScopeListener;
import com.zhuinden.simplestackdemoexamplemvp.application.MainView;
import com.zhuinden.simplestackdemoexamplemvp.data.manager.DatabaseManager;
import com.zhuinden.simplestackdemoexamplemvp.data.repository.TaskRepository;
import com.zhuinden.simplestackdemoexamplemvp.presentation.mapper.TaskMapper;
import com.zhuinden.simplestackdemoexamplemvp.util.BackstackHolder;
import com.zhuinden.simplestackdemoexamplemvp.util.SchedulerHolder;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Component;
/**
* Created by Owner on 2017. 01. 26..
*/
@Singleton
@Component(modules = {SchedulerModule.class, NavigationModule.class, AndroidModule.class})
public interface SingletonComponent {
TaskMapper taskMapper();
DatabaseManager databaseManager();
@Named("LOOPER_SCHEDULER")
SchedulerHolder looperScheduler();
@Named("WRITE_SCHEDULER")
SchedulerHolder writeScheduler();
TaskRepository taskRepository();
BackstackHolder backstackHolder();
Backstack backstack();
@Named("applicationContext")
Context applicationContext();
Resources resources();
void inject(MainActivity mainActivity);
void inject(MainScopeListener mainScopeListener);
void inject(MainView mainView);
void inject(TaskDetailView taskDetailView);
void inject(AddOrEditTaskView addOrEditTaskView);
void inject(StatisticsView statisticsView);
void inject(TasksView tasksView);
}