I'm trying to load data from Firebase into a RecyclerView, however nothing shows up until I reload my fragment.
This is my onCreate method in SubjectsFragment
:
viewModel.subjectsListLiveData.observe(
this,
Observer { list ->
subjectsAdapter.swapSubjectsList(list)
if (subject_list != null && list.size != 0) Animations.runLayoutAnimation(
subject_list
)
})
viewModel.lessonsListLiveData.observe(
this,
Observer { list ->
subjectsAdapter.swapLessonsList(list)
if (subject_list != null && list.size != 0) Animations.runLayoutAnimation(
subject_list
)
})
This is SubjectsFragmentViewModel
:
private val subjectsList = MutableLiveData<ArrayList<Subject>>()
val subjectsListLiveData: LiveData<ArrayList<Subject>>
get() = subjectsList
private val lessonsList = MutableLiveData<ArrayList<Lesson>>()
val lessonsListLiveData: LiveData<ArrayList<Lesson>>
get() = lessonsList
init {
loadSubjects()
loadLessonsForSubjects()
}
fun loadSubjects() {
GlobalScope.launch {
val subjects = FirebaseUtils.loadAllSubjects()
subjectsList.postValue(subjects)
}
}
fun loadLessonsForSubjects() {
GlobalScope.launch {
val lessons = FirebaseUtils.loadAllLessons()
lessonsList.postValue(lessons)
}
}
I don't have any problems once I reload the fragment. Could someone please explain to me what I'm doing wrong?