Newer
Older
ToDoApp / app / src / main / java / keijumt / todoapp / di / ViewModelModule.kt
KeijuMatsumoto on 9 Mar 2018 999 bytes [Add] task list
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
}