Hilt - Assisted Injection

1k Views Asked by At

I have factory

@AssistedFactory
interface SetNumberUseCaseFactory {
    fun create(listener: UpdateFrontData,
               exercisedWithSetsDTO: MutableList<ExerciseWithSetNo>,
               setEntitiesList: MutableList<Exercise>): SetNumbersUseCase
}

in my viewModel I have:

@HiltViewModel
class TrainingAddViewModel @Inject constructor(
    private val trainingRepository: TrainingRepository,
    private val state: SavedStateHandle
) : ViewModel(), UpdateFrontData {
...
    @Inject
    lateinit var setNumberUseCaseFactory : SetNumberUseCaseFactory

    lateinit var setNumberUseCase : SetNumbersUseCase
...
    init {

        setNumberUseCase = setNumberUseCaseFactory.create(this, exercisedWithSetsDTO, setEntitiesList)

    }
...
}

and :

class SetNumbersUseCase @AssistedInject constructor(
    private val trainingRepository: TrainingRepository,
    @Assisted private val listener: UpdateFrontData,
    @Assisted private var exercisedWithSetsDTO: MutableList<ExerciseWithSetNo>,
    @Assisted private val setEntitiesList: MutableList<Exercise>
) {
...
}

and I get error: kotlin.UninitializedPropertyAccessException: lateinit property setNumberUseCaseFactory has not been initialized

Why SetNumberUseCaseFactory is not injected?

0

There are 0 best solutions below