2021-02-06 19:02:12 +01:00
package org.mosad.teapod.ui.activity.main.fragments
import android.os.Bundle
import android.util.Log
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.ui.activity.main.MainActivity
import org.mosad.teapod.ui.activity.main.viewmodel.MediaFragmentViewModel
import org.mosad.teapod.databinding.FragmentMediaEpisodesBinding
import org.mosad.teapod.util.adapter.EpisodeItemAdapter
class MediaFragmentEpisodes : 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 )
2021-12-20 22:14:58 +01:00
adapterRecEpisodes = EpisodeItemAdapter ( model . episodesCrunchy , model . tmdbTVSeason ?. episodes )
2021-02-06 19:02:12 +01:00
binding . recyclerEpisodes . adapter = adapterRecEpisodes
// set onItemClick only in adapter is initialized
if ( this :: adapterRecEpisodes . isInitialized ) {
2021-12-20 22:14:58 +01:00
adapterRecEpisodes . onImageClick = { seasonId , episodeId ->
println ( " TODO playback episode $episodeId (season: $seasonId ) " )
playEpisode ( seasonId , episodeId )
2021-02-06 19:02:12 +01:00
}
}
}
override fun onResume ( ) {
super . onResume ( )
// if adapterRecEpisodes is initialized, update the watched state for the episodes
if ( this :: adapterRecEpisodes . isInitialized ) {
2021-12-28 20:32:44 +01:00
// TODO reimplement, if needed
// model.media.playlist.forEachIndexed { index, episodeInfo ->
// adapterRecEpisodes.updateWatchedState(episodeInfo.watched, index)
// }
// adapterRecEpisodes.notifyDataSetChanged()
2021-02-06 19:02:12 +01:00
}
}
2021-12-20 22:14:58 +01:00
private fun playEpisode ( seasonId : String , episodeId : String ) {
( activity as MainActivity ) . startPlayer ( seasonId , episodeId )
2021-08-31 19:47:18 +02:00
Log . d ( javaClass . name , " Started Player with episodeId: $episodeId " )
2021-02-06 19:02:12 +01:00
2021-12-20 22:14:58 +01:00
//model.updateNextEpisode(episodeId) // set the correct next episode
2021-02-06 19:02:12 +01:00
}
}