ViewModelAssistedFactory
Factory interface for creating ViewModel instances with assisted injection using CreationExtras.
Implement this interface in an @AssistedFactory-annotated class to create ViewModels that require runtime parameters. The factory receives CreationExtras which can be used to access Android-specific ViewModel creation context (such as SavedStateHandle).
Example:
@AssistedInject
class DetailsViewModel(@Assisted val id: String) : ViewModel() {
// ...
@AssistedFactory
@ViewModelAssistedFactoryKey(Factory::class)
@ContributesIntoMap(AppScope::class)
fun interface Factory : ViewModelAssistedFactory {
override fun create(extras: CreationExtras): DetailsViewModel {
return create(extras.get<String>(KEY_ID))
}
fun create(@Assisted id: String): DetailsViewModel
}
}Content copied to clipboard