2020-10-08 22:20:20 +02:00
package org.mosad.teapod.ui.library
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
2020-10-11 10:02:00 +02:00
import androidx.fragment.app.commit
2020-10-08 22:20:20 +02:00
import kotlinx.android.synthetic.main.fragment_library.*
2020-10-09 13:02:58 +02:00
import kotlinx.coroutines.*
2020-10-11 10:02:00 +02:00
import org.mosad.teapod.MainActivity
2020-10-08 22:20:20 +02:00
import org.mosad.teapod.R
import org.mosad.teapod.parser.AoDParser
2020-10-11 10:02:00 +02:00
import org.mosad.teapod.ui.MediaFragment
2020-10-08 22:20:20 +02:00
import org.mosad.teapod.util.CustomAdapter
import org.mosad.teapod.util.GUIMedia
class LibraryFragment : Fragment ( ) {
2020-10-09 15:18:52 +02:00
private val parser = AoDParser ( )
2020-10-08 22:20:20 +02:00
private var mediaList = arrayListOf < GUIMedia > ( )
private lateinit var adapter : CustomAdapter
2020-10-11 10:02:00 +02:00
2020-10-08 22:20:20 +02:00
override fun onCreateView ( inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ) : View ? {
2020-10-09 13:02:58 +02:00
return inflater . inflate ( R . layout . fragment _library , container , false )
2020-10-08 22:20:20 +02:00
}
override fun onViewCreated ( view : View , savedInstanceState : Bundle ? ) {
super . onViewCreated ( view , savedInstanceState )
2020-10-09 13:02:58 +02:00
GlobalScope . launch {
2020-10-11 10:02:00 +02:00
if ( AoDParser . mediaList . isEmpty ( ) ) {
AoDParser ( ) . listAnimes ( )
}
mediaList = AoDParser . mediaList
2020-10-08 22:20:20 +02:00
2020-10-09 13:25:12 +02:00
// create and set the adapter, needs context
2020-10-09 13:02:58 +02:00
withContext ( Dispatchers . Main ) {
2020-10-09 15:18:52 +02:00
adapter = CustomAdapter ( requireContext ( ) , mediaList )
2020-10-09 13:02:58 +02:00
list _library . adapter = adapter
2020-10-09 13:25:12 +02:00
//adapter.notifyDataSetChanged()
2020-10-09 13:02:58 +02:00
}
2020-10-09 15:18:52 +02:00
}
initActions ( )
}
2020-10-08 22:20:20 +02:00
2020-10-09 15:18:52 +02:00
private fun initActions ( ) {
list _library . setOnItemClickListener { parent , view , position , id ->
println ( " selected item is: ${mediaList[position]} " )
2020-10-11 10:02:00 +02:00
//showDetailFragment(mediaList[position])
val mainActivity = activity as MainActivity
mainActivity . showDetailFragment ( mediaList [ position ] )
2020-10-08 22:20:20 +02:00
}
}
2020-10-09 15:18:52 +02:00
private fun showDetailFragment ( media : GUIMedia ) {
2020-10-11 10:02:00 +02:00
val streams = parser . loadStreams ( media . link ) // load the streams for the selected media
println ( " done: $streams " )
// TODO create detail fragment
val mediaFragment = MediaFragment ( media , streams )
activity ?. supportFragmentManager ?. commit {
add ( mediaFragment , " MediaFragment " )
addToBackStack ( null )
}
// activity?.supportFragmentManager?.beginTransaction()?.let {
// it.replace(mContainer.id, mediaFragment, "MediaFragment")
// it.addToBackStack("MediaFragment")
// it.commit()
// }
2020-10-09 15:18:52 +02:00
2020-10-11 10:02:00 +02:00
println ( " done!!! " )
2020-10-09 15:18:52 +02:00
}
2020-10-08 22:20:20 +02:00
}