package keijumt.todoapp.di import android.arch.lifecycle.ViewModel import android.arch.lifecycle.ViewModelProvider import dagger.Binds import dagger.Module import dagger.multibindings.IntoMap import keijumt.todoapp.addtask.AddEditTaskViewModel import keijumt.todoapp.main.MainViewModel import keijumt.todoapp.main.TasksViewModel /** * DIするViewModel */ @Module internal abstract class ViewModelModule { @Binds @IntoMap @ViewModelKey(MainViewModel::class) internal abstract fun bindMainViewModel(mainViewModel: MainViewModel): ViewModel @Binds @IntoMap @ViewModelKey(AddEditTaskViewModel::class) internal abstract fun bindAddTaskViewModel(addTaskViewModel: AddEditTaskViewModel): ViewModel @Binds @IntoMap @ViewModelKey(TasksViewModel::class) internal abstract fun bindTasksViewModel(tasksViewModel: TasksViewModel): ViewModel @Binds internal abstract fun bindViewModelFactory(factory: ViewModelFactory): ViewModelProvider.Factory }