package eu.davidea.blueapp.infrastructure.injection; import android.arch.lifecycle.ViewModel; import android.arch.lifecycle.ViewModelProvider; import dagger.Binds; import dagger.Module; import dagger.multibindings.IntoMap; import eu.davidea.blueapp.viewmodels.message.MessageViewModel; import eu.davidea.blueapp.viewmodels.user.UserViewModel; @Module public abstract class ViewModelModule { @Binds @IntoMap @ViewModelKey(UserViewModel.class) abstract ViewModel bindUserViewModel(UserViewModel viewModel); @Binds @IntoMap @ViewModelKey(MessageViewModel.class) abstract ViewModel bindMessageViewModel(MessageViewModel viewModel); @Binds abstract ViewModelProvider.Factory bindViewModelFactory(ViewModelFactory factory); }