package org.mosad.teapod.activity.main.fragments import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import org.mosad.teapod.databinding.FragmentMediaEpisodesBinding import org.mosad.teapod.util.adapter.EpisodeItemAdapter class MediaEpisodesFragment : Fragment() { private lateinit var binding: FragmentMediaEpisodesBinding private lateinit var adapterRecEpisodes: EpisodeItemAdapter private val model: MediaFragmentViewModel by activityViewModels() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { binding = FragmentMediaEpisodesBinding.inflate(inflater, container, false) return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) adapterRecEpisodes = EpisodeItemAdapter(model.media.episodes) binding.recyclerEpisodes.adapter = adapterRecEpisodes println(model.media.episodes) // set onItemClick only in adapter is initialized if (this::adapterRecEpisodes.isInitialized) { adapterRecEpisodes.onImageClick = { _, position -> model.playEpisode(model.media.episodes[position]) } } } override fun onResume() { super.onResume() if (this::adapterRecEpisodes.isInitialized) { model.media.episodes.forEachIndexed { index, episode -> adapterRecEpisodes.updateWatchedState(episode.watched, index) } adapterRecEpisodes.notifyDataSetChanged() } } }