Я могу помочь вам в JAVA. Надеюсь, вы сможете перейти в kotlin лучше, чем я.
class MyViewModelFactory implements ViewModelProvider.Factory {
private final Context context;
private final MistakesRepository repository;
@Inject
public MyViewModelFactory(Context context, MistakesRepository repository) {
this.context = context;
this.repository = repository;
}
@Override
public MyViewModel create(Class modelClass) {
return new MyViewModel(context, repository);
}
}
Тогда, наконец, использовать:
@Inject MyViewModelFactory factory;
...
MyViewModel createViewModel() {
return ViewModelProviders.of(this,factory)
.get(MyViewModel.class);
}
Попытка в котлине
class MyViewModelFactory @Inject constructor(val context: Context, val repository: MistakesRepository) : ViewModelProvider.Factory {
override fun create(modelClass: Class): MyViewModel {
return MyViewModel(context, repository);
}
}
@Inject lateinit var factory : MyViewModelFactory
...
fun createViewModel() : MyViewModel {
return ViewModelProviders.of(this,factory)
.get(MyViewModel::java.class);
}