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
}