71 lines
2.4 KiB
Kotlin
71 lines
2.4 KiB
Kotlin
package org.mosad.teapod.ui.fragments
|
|
|
|
import android.os.Bundle
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import androidx.fragment.app.Fragment
|
|
import kotlinx.coroutines.Dispatchers
|
|
import kotlinx.coroutines.GlobalScope
|
|
import kotlinx.coroutines.launch
|
|
import kotlinx.coroutines.withContext
|
|
import org.mosad.teapod.MainActivity
|
|
import org.mosad.teapod.databinding.FragmentHomeBinding
|
|
import org.mosad.teapod.parser.AoDParser
|
|
import org.mosad.teapod.util.StorageController
|
|
import org.mosad.teapod.util.adapter.MediaItemAdapter
|
|
import org.mosad.teapod.util.decoration.MediaItemDecoration
|
|
|
|
class HomeFragment : Fragment() {
|
|
|
|
private lateinit var binding: FragmentHomeBinding
|
|
private lateinit var adapterMyList: MediaItemAdapter
|
|
private lateinit var adapterNewEpisodes: MediaItemAdapter
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
|
binding = FragmentHomeBinding.inflate(inflater, container, false)
|
|
return binding.root
|
|
}
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
super.onViewCreated(view, savedInstanceState)
|
|
|
|
GlobalScope.launch {
|
|
withContext(Dispatchers.Main) {
|
|
context?.let {
|
|
binding.recyclerMyList.addItemDecoration(MediaItemDecoration(9))
|
|
|
|
updateMyListMedia()
|
|
|
|
adapterNewEpisodes = MediaItemAdapter(AoDParser.newEpisodesList)
|
|
binding.recyclerNewEpisodes.adapter = adapterNewEpisodes
|
|
binding.recyclerNewEpisodes.addItemDecoration(MediaItemDecoration(9))
|
|
|
|
initActions()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// TODO recreating the adapter on list change is not a good solution
|
|
fun updateMyListMedia() {
|
|
val myListMedia = StorageController.myList.map { elementId ->
|
|
AoDParser.itemMediaList.first {
|
|
elementId == it.id
|
|
}
|
|
}
|
|
|
|
adapterMyList = MediaItemAdapter(myListMedia)
|
|
adapterMyList.onItemClick = { mediaId, _ ->
|
|
(activity as MainActivity).showMediaFragment(mediaId)
|
|
}
|
|
|
|
binding.recyclerMyList.adapter = adapterMyList
|
|
}
|
|
|
|
private fun initActions() {
|
|
adapterNewEpisodes.onItemClick = { mediaId, _ ->
|
|
(activity as MainActivity).showMediaFragment(mediaId)
|
|
}
|
|
}
|
|
} |