Я пытаюсь получить значение из класса SharedViewModel, но ViewModelProvider () выдает ошибку параметра, когда я передаю requireActivity (), хотя те же инициализация и назначение работают в моих фрагментах.
Это требующий передачи «ViewModelStoreOwner».
class CourseRepository(val app: Application) {
private var viewModel: SharedViewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
val courseData = MutableLiveData<List<Course>>()
init {
CoroutineScope(Dispatchers.IO).launch {
callWebService()
}
}
@WorkerThread
suspend fun callWebService() {
if (Utility.networkAvailable(app)) {
val retrofit = Retrofit.Builder().baseUrl(WEB_SERVICE_URL).addConverterFactory(MoshiConverterFactory.create()).build()
val service = retrofit.create(CourseService::class.java)
val serviceData = service.getCourseData(viewModel.pathName).body() ?: emptyList()
courseData.postValue(serviceData)
}
}
}
Цель ViewModel здесь заключается в том, что я храню Id выбранного элемента RecyclerView для отправки его на сервер