lateinit property viewModelFactory has not been initialized at line 33
lateinit property drillerVMFactory has not been initialized at line 33
Привет. Я инжекчу во фрагмент вьюМодель с помощью AssistedFactory. Ругается на инициализацию, хотя там @Inject. Указано на строку 33 во фрагменте, внизу в примере.
Запутался, подскаюите пожалуйста в чем я не прав.
ViewModel:
class DrillerViewModel (
private val drillerUseCases: DrillerUseCases,
private val state: SavedStateHandle,
) : ViewModel() {
// code of viewModel
}
class DrillerViewModelFactory @Inject constructor(
private val drillerUseCases: DrillerUseCases,
) : ViewModelAssistedFactory<DrillerViewModel> {
override fun create(handle: SavedStateHandle): DrillerViewModel {
return DrillerViewModel(drillerUseCases, handle)
}
}
GenericSavedStaateViewModelFactory:
class GenericSavedStateViewModelFactory<out V : ViewModel>(
private val viewModelFactory: ViewModelAssistedFactory<V>,
owner: SavedStateRegistryOwner,
defaultArgs: Bundle? = null
) : AbstractSavedStateViewModelFactory(owner, defaultArgs) {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel> create(
key: String,
modelClass: Class<T>,
handle: SavedStateHandle
): T {
return viewModelFactory.create(handle) as T
}
}
interface ViewModelAssistedFactory<T : ViewModel> {
fun create(handle: SavedStateHandle): T
}
How I call ViewModel in the Fragment:
@Inject
lateinit var drillerVMFactory: DrillerViewModelFactory // here is that line 33(та самая строка 33)
private val vmDriller: DrillerViewModel by viewModels {
GenericSavedStateViewModelFactory(drillerVMFactory,this)
}
```