Skip to content

Instantly share code, notes, and snippets.

@rohankandwal
Created May 10, 2018 10:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rohankandwal/457c81cbee9b5d05a0367ce90e257db5 to your computer and use it in GitHub Desktop.
Save rohankandwal/457c81cbee9b5d05a0367ce90e257db5 to your computer and use it in GitHub Desktop.
ViewModelModule - Module to bind your ViewModels. We also bind our custom ViewModelFactory here.
@Module
public abstract class ViewModelModule {
@Binds
@IntoMap
@ViewModelKey(SplashScreenViewModel.class)
abstract ViewModel bindSplashScreenViewModel(final SplashScreenViewModel splashScreenViewModel);
@Binds
@IntoMap
@ViewModelKey(LoginActivityViewModel.class)
abstract ViewModel bindLoginActivityViewModel(final LoginActivityViewModel loginActivityViewModel);
@Binds
@IntoMap
@ViewModelKey(RegistrationViewModel.class)
abstract ViewModel bindRegistrationViewModel(final RegistrationViewModel registrationViewModel);
@Binds
@IntoMap
@ViewModelKey(HomeScreenViewModel.class)
abstract ViewModel bindHomeScreenViewModel(final HomeScreenViewModel homeScreenViewModel);
// Binding our own custom ViewModelFactory impementation here.
@Binds
abstract ViewModelProvider.Factory bindViewModelFactory(final CustomViewModelFactory factory);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment