Hej! Wygląda całkiem całkiem. Jednak ViewModel nie powinien nic wiedzieć o fragmencie, a szczególnie o jego layoucie. Najpierw przekazujesz fragment do metodysetDataUser:
fun setUserData(binding: FragmentProfileBinding)
Potem ustawiasz na widoku:
binding.apply {
presentationTextView.text = modelUser.presentation
displayAgeTv.text = modelUser.age
displayCountryTv.text = modelUser.country
displayEmailTv.text = modelUser.email
}
imageProcessing.setImage(modelUser.image.toString(), binding.profileImage)
Takie rzeczy powinny być robione we fragmencie 😉
Lista userów też nie jest używana i możesz ją nawet usunąć:
val user: MutableLiveData<User> = MutableLiveData()
A sama metoda powinna właśnie zwracać listę userów. Czyli zamiast:
userProfileViewModel.setUserData(binding)
userProfileViewModel.user.observe(this, Observer {user ->
user?.let {
userProfileViewModel.setUserData(binding)
}
})
Powinno być:
userProfileViewModel.getUserData().observe(this, Observer { users ->
// i tutaj ustawienie wszystkich rzeczy na layoucie
})