Skip to content

Instantly share code, notes, and snippets.

@ch8n
Created September 22, 2020 04:48
Show Gist options
  • Save ch8n/01b322090ca6fd36e8d53c9f646ceeea to your computer and use it in GitHub Desktop.
Save ch8n/01b322090ca6fd36e8d53c9f646ceeea to your computer and use it in GitHub Desktop.
for medium article
object ViewModelResolver {
// step 1, we need a viewmodel which is creted by ViewmodelProviders
fun provideDetailViewModel():MovieDetailViewModel = ViewModelProviders
.of(??, ??)
.get(MovieDetailViewModel::class.java)
// step 2, add dependencies of ViewmodelProviders,
// we have used added fragment Activty, so that we can support
// multiple activities not just MovieDetail activity
fun provideDetailViewModel(
factory : MovieDetailViewModelFactory,
activity : FragmentActivity
) :MovieDetailViewModel = ViewModelProviders
.of(activity, factory)
.get(MovieDetailViewModel::class.java)
// step 3, resolver for viewmodel factory?
fun provideDetailViewModelFactory() =
MovieDetailViewModelFactory(??)
// step 4, repository has already been resolved in App resolver
fun provideDetailViewModelFactory(movieRepository : MovieRepository)
= MovieDetailViewModelFactory(movieRepository)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment