add watched callback for next episode

This commit is contained in:
Jannik 2020-11-18 18:58:39 +01:00
parent 0f0573e5bd
commit 3880b3ab75
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
2 changed files with 26 additions and 5 deletions

View File

@ -26,6 +26,7 @@ import kotlinx.android.synthetic.main.player_controls.*
import kotlinx.coroutines.* import kotlinx.coroutines.*
import org.mosad.teapod.parser.AoDParser import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.preferences.Preferences import org.mosad.teapod.preferences.Preferences
import org.mosad.teapod.ui.fragments.MediaFragment
import org.mosad.teapod.util.DataTypes.MediaType import org.mosad.teapod.util.DataTypes.MediaType
import org.mosad.teapod.util.Episode import org.mosad.teapod.util.Episode
import org.mosad.teapod.util.Media import org.mosad.teapod.util.Media
@ -266,8 +267,7 @@ class PlayerActivity : AppCompatActivity() {
private fun playNextEpisode() { private fun playNextEpisode() {
nextEpisode?.let { nextEp -> nextEpisode?.let { nextEp ->
currentEpisode = nextEp // set current ep to next ep
episodeId = nextEp.id
// update the gui // update the gui
exo_text_title.text = nextEp.title exo_text_title.text = nextEp.title
@ -279,6 +279,11 @@ class PlayerActivity : AppCompatActivity() {
player.setMediaSource(mediaSource) player.setMediaSource(mediaSource)
player.prepare() player.prepare()
// watchedCallback for next ep
currentEpisode = nextEp // set current ep to next ep
episodeId = nextEp.id
MediaFragment.instance.updateWatchedState(nextEp) // TODO i don't like this
nextEpisode = selectNextEpisode() nextEpisode = selectNextEpisode()
} }
} }

View File

@ -30,6 +30,14 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
private lateinit var viewManager: RecyclerView.LayoutManager private lateinit var viewManager: RecyclerView.LayoutManager
private lateinit var nextEpisode: Episode private lateinit var nextEpisode: Episode
companion object {
lateinit var instance: MediaFragment
}
init {
instance = this
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_media, container, false) return inflater.inflate(R.layout.fragment_media, container, false)
} }
@ -134,9 +142,10 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
playStream(ep) playStream(ep)
// update watched state // update watched state
AoDParser.sendCallback(ep.watchedCallback) updateWatchedState(ep)
adapterRecEpisodes.updateWatchedState(true, media.episodes.indexOf(ep)) //AoDParser.sendCallback(ep.watchedCallback)
adapterRecEpisodes.notifyDataSetChanged() //adapterRecEpisodes.updateWatchedState(true, media.episodes.indexOf(ep))
//adapterRecEpisodes.notifyDataSetChanged()
// update nextEpisode // update nextEpisode
nextEpisode = if (media.episodes.firstOrNull{ !it.watched } != null) { nextEpisode = if (media.episodes.firstOrNull{ !it.watched } != null) {
@ -152,4 +161,11 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
(activity as MainActivity).startPlayer(media.id, ep.id) (activity as MainActivity).startPlayer(media.id, ep.id)
} }
fun updateWatchedState(ep: Episode) {
AoDParser.sendCallback(ep.watchedCallback)
adapterRecEpisodes.updateWatchedState(true, media.episodes.indexOf(ep))
adapterRecEpisodes.notifyDataSetChanged()
}
} }