2021-02-06 19:02:12 +01:00
package org.mosad.teapod.ui.activity.main.fragments
2020-10-08 22:20:20 +02:00
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
2021-06-06 17:54:19 +02:00
import androidx.lifecycle.lifecycleScope
2020-10-15 21:00:31 +02:00
import kotlinx.coroutines.launch
2020-12-06 15:18:15 +01:00
import org.mosad.teapod.R
2020-11-25 22:35:55 +01:00
import org.mosad.teapod.databinding.FragmentHomeBinding
2020-12-06 15:18:15 +01:00
import org.mosad.teapod.util.ItemMedia
2020-10-16 11:23:32 +02:00
import org.mosad.teapod.util.StorageController
2020-10-15 21:00:31 +02:00
import org.mosad.teapod.util.adapter.MediaItemAdapter
import org.mosad.teapod.util.decoration.MediaItemDecoration
2021-01-21 18:22:53 +01:00
import org.mosad.teapod.util.setDrawableTop
2021-01-20 16:10:41 +01:00
import org.mosad.teapod.util.showFragment
2020-10-08 22:20:20 +02:00
class HomeFragment : Fragment ( ) {
2020-11-25 22:35:55 +01:00
private lateinit var binding : FragmentHomeBinding
2020-10-19 17:34:41 +02:00
private lateinit var adapterMyList : MediaItemAdapter
private lateinit var adapterNewEpisodes : MediaItemAdapter
2020-12-11 10:54:40 +01:00
private lateinit var adapterNewSimulcasts : MediaItemAdapter
private lateinit var adapterNewTitles : MediaItemAdapter
2021-01-21 18:22:53 +01:00
private lateinit var adapterTopTen : MediaItemAdapter
2020-10-08 22:20:20 +02:00
2020-12-06 15:18:15 +01:00
private lateinit var highlightMedia : ItemMedia
2020-11-25 22:35:55 +01:00
override fun onCreateView ( inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ) : View {
binding = FragmentHomeBinding . inflate ( inflater , container , false )
return binding . root
2020-10-08 22:20:20 +02:00
}
override fun onViewCreated ( view : View , savedInstanceState : Bundle ? ) {
super . onViewCreated ( view , savedInstanceState )
2021-06-06 17:54:19 +02:00
lifecycleScope . launch {
2020-12-06 15:18:15 +01:00
context ?. let {
initHighlight ( )
initRecyclerViews ( )
initActions ( )
}
}
}
2020-10-16 11:23:32 +02:00
2020-12-06 15:18:15 +01:00
private fun initHighlight ( ) {
2021-12-27 21:14:35 +01:00
// TODO
// if (AoDParser.highlightsList.isNotEmpty()) {
// highlightMedia = AoDParser.highlightsList[0]
//
// binding.textHighlightTitle.text = highlightMedia.title
// Glide.with(requireContext()).load(highlightMedia.posterUrl)
// .into(binding.imageHighlight)
//
// if (StorageController.myList.contains(0)) {
// binding.textHighlightMyList.setDrawableTop(R.drawable.ic_baseline_check_24)
// } else {
// binding.textHighlightMyList.setDrawableTop(R.drawable.ic_baseline_add_24)
// }
// }
2020-10-16 11:23:32 +02:00
}
2020-12-06 15:18:15 +01:00
private fun initRecyclerViews ( ) {
binding . recyclerMyList . addItemDecoration ( MediaItemDecoration ( 9 ) )
binding . recyclerNewEpisodes . addItemDecoration ( MediaItemDecoration ( 9 ) )
2020-12-11 10:54:40 +01:00
binding . recyclerNewSimulcasts . addItemDecoration ( MediaItemDecoration ( 9 ) )
binding . recyclerNewTitles . addItemDecoration ( MediaItemDecoration ( 9 ) )
2021-01-21 18:22:53 +01:00
binding . recyclerTopTen . addItemDecoration ( MediaItemDecoration ( 9 ) )
2020-12-06 15:18:15 +01:00
// my list
2021-07-03 13:36:15 +02:00
adapterMyList = MediaItemAdapter ( mapMyListToItemMedia ( ) )
2020-11-25 22:35:55 +01:00
binding . recyclerMyList . adapter = adapterMyList
2020-12-06 15:18:15 +01:00
2021-12-27 21:14:35 +01:00
// TODO
2020-12-06 15:18:15 +01:00
// new episodes
2021-12-27 21:14:35 +01:00
// adapterNewEpisodes = MediaItemAdapter(AoDParser.newEpisodesList)
// binding.recyclerNewEpisodes.adapter = adapterNewEpisodes
2020-12-11 10:54:40 +01:00
// new simulcasts
2021-12-27 21:14:35 +01:00
// adapterNewSimulcasts = MediaItemAdapter(AoDParser.newSimulcastsList)
// binding.recyclerNewSimulcasts.adapter = adapterNewSimulcasts
2020-12-11 10:54:40 +01:00
// new titles
2021-12-27 21:14:35 +01:00
// adapterNewTitles = MediaItemAdapter(AoDParser.newTitlesList)
// binding.recyclerNewTitles.adapter = adapterNewTitles
2021-01-21 18:22:53 +01:00
// top ten
2021-12-27 21:14:35 +01:00
// adapterTopTen = MediaItemAdapter(AoDParser.topTenList)
// binding.recyclerTopTen.adapter = adapterTopTen
2020-10-19 17:34:41 +02:00
}
private fun initActions ( ) {
2020-12-06 15:18:15 +01:00
binding . buttonPlayHighlight . setOnClickListener {
// TODO get next episode
2021-06-06 17:54:19 +02:00
lifecycleScope . launch {
2021-12-27 21:14:35 +01:00
// TODO
//val media = AoDParser.getMediaById(0)
2020-12-06 15:18:15 +01:00
2021-12-27 21:14:35 +01:00
// Log.d(javaClass.name, "Starting Player with mediaId: ${media.aodId}")
//(activity as MainActivity).startPlayer(media.aodId, media.playlist.first().mediaId)
2020-12-06 15:18:15 +01:00
}
}
binding . textHighlightMyList . setOnClickListener {
2021-12-27 21:14:35 +01:00
if ( StorageController . myList . contains ( 0 ) ) {
StorageController . myList . remove ( 0 )
2021-01-21 18:22:53 +01:00
binding . textHighlightMyList . setDrawableTop ( R . drawable . ic _baseline _add _24 )
2020-12-06 15:18:15 +01:00
} else {
2021-12-27 21:14:35 +01:00
StorageController . myList . add ( 0 )
2021-01-21 18:22:53 +01:00
binding . textHighlightMyList . setDrawableTop ( R . drawable . ic _baseline _check _24 )
2020-12-06 15:18:15 +01:00
}
StorageController . saveMyList ( requireContext ( ) )
updateMyListMedia ( ) // update my list, since it has changed
}
binding . textHighlightInfo . setOnClickListener {
2021-12-20 22:14:58 +01:00
activity ?. showFragment ( MediaFragment ( " " ) )
2021-01-20 16:10:41 +01:00
}
2021-07-25 19:15:31 +02:00
adapterMyList . onItemClick = { id , _ ->
2021-12-20 22:14:58 +01:00
activity ?. showFragment ( MediaFragment ( " " ) ) //(mediaId))
2020-12-06 15:18:15 +01:00
}
2021-12-27 21:14:35 +01:00
// adapterNewEpisodes.onItemClick = { id, _ ->
// activity?.showFragment(MediaFragment("")) //(mediaId))
// }
//
// adapterNewSimulcasts.onItemClick = { id, _ ->
// activity?.showFragment(MediaFragment("")) //(mediaId))
// }
//
// adapterNewTitles.onItemClick = { id, _ ->
// activity?.showFragment(MediaFragment("")) //(mediaId))
// }
//
// adapterTopTen.onItemClick = { id, _ ->
// activity?.showFragment(MediaFragment("")) //(mediaId))
// }
2020-10-08 22:20:20 +02:00
}
2020-12-06 15:18:15 +01:00
/ * *
* update my media list
* TODO
* * auto call when StorageController . myList is changed
* * only update actual change and not all data ( performance )
* /
fun updateMyListMedia ( ) {
2021-12-27 22:50:29 +01:00
//adapterMyList.updateMediaList(mapMyListToItemMedia())
//adapterMyList.notifyDataSetChanged()
2021-07-03 13:36:15 +02:00
}
private fun mapMyListToItemMedia ( ) : List < ItemMedia > {
2021-12-27 21:14:35 +01:00
return emptyList ( )
// return StorageController.myList.mapNotNull { elementId ->
// AoDParser.guiMediaList.firstOrNull { it.id == elementId.toString() }.also {
// // it the my list entry wasn't found in itemMediaList Log it
// if (it == null) {
// Log.w(javaClass.name, "The element with the id $elementId was not found.")
// }
// }
// }
2020-12-06 15:18:15 +01:00
}
2020-10-08 22:20:20 +02:00
}