diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt index 7fbfc64..47d9067 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt @@ -183,7 +183,7 @@ class MediaFragment(private val mediaId: Int) : Fragment() { (activity as MainActivity).startPlayer(model.media.id, ep.id) Log.d(javaClass.name, "Started Player with episodeId: ${ep.id}") - model.updateNextEpisode() // set the correct next episode + model.updateNextEpisode(ep) // set the correct next episode } /** diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentEpisodes.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentEpisodes.kt index 704610b..78f480f 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentEpisodes.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentEpisodes.kt @@ -55,7 +55,7 @@ class MediaFragmentEpisodes : Fragment() { (activity as MainActivity).startPlayer(model.media.id, ep.id) Log.d(javaClass.name, "Started Player with episodeId: ${ep.id}") - model.updateNextEpisode() // set the correct next episode + model.updateNextEpisode(ep) // set the correct next episode } } \ No newline at end of file diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/viewmodel/MediaFragmentViewModel.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/viewmodel/MediaFragmentViewModel.kt index de0be69..c2ba21d 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/viewmodel/MediaFragmentViewModel.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/viewmodel/MediaFragmentViewModel.kt @@ -35,18 +35,14 @@ class MediaFragmentViewModel(application: Application) : AndroidViewModel(applic } /** - * based on watched state and current episode number set the next episode + * get the next episode based on episode number (the true next episode) * if no matching is found, use first episode */ - fun updateNextEpisode() { + fun updateNextEpisode(currentEp: Episode) { if (media.type == MediaType.MOVIE) return // return if movie - val currentEpNumber = nextEpisode.number - nextEpisode = if (media.episodes.firstOrNull{ !it.watched } != null) { - media.episodes.first{ !it.watched && it.number > currentEpNumber } - } else { - media.episodes.first() - } + nextEpisode = media.episodes.firstOrNull{ it.number > currentEp.number } + ?: media.episodes.first() } } \ No newline at end of file diff --git a/app/src/main/java/org/mosad/teapod/util/DataTypes.kt b/app/src/main/java/org/mosad/teapod/util/DataTypes.kt index ea6e59e..cf936bd 100644 --- a/app/src/main/java/org/mosad/teapod/util/DataTypes.kt +++ b/app/src/main/java/org/mosad/teapod/util/DataTypes.kt @@ -55,6 +55,7 @@ data class Media( fun getEpisodeById(id: Int) = episodes.first { it.id == id } } +// TODO all val? data class Info( var title: String = "", var posterUrl: String = "", @@ -97,6 +98,7 @@ data class Stream( /** * this class is used for tmdb responses + * TODO why is runtime var? */ data class TMDBResponse( val id: Int = 0,