@blakelee Hey, sorry for providing an incomplete code, but yeah it's missing the ViewModelProvider.Factory as you said, but you can get around that by doing
@Inject
lateinit var viewModelProvider: Provider<MyViewModel>
private val myViewModel: MyViewModel by viewModels {
object: ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
@Suppress("UNCHECKED_CAST")
return viewModelProvider.get() as T
}
}
}
Now you can replace the ugly
object: ViewModelProvider.Factory
part by extracting it to an inline function to get a much more elegant version of the above code
@Inject
lateinit var viewModelProvider: Provider<ViewModel>
private val myViewModel: ViewModel by viewModels {
createSimpleViewModelFactory { viewModelProvider.get()
}
}