Set play button to first unwatched episode on TV

This commit is contained in:
KingLucius 2024-03-19 17:47:36 +02:00
parent eb60be54ed
commit a2e63174be
1 changed files with 10 additions and 7 deletions

View File

@ -781,25 +781,28 @@ class ResultFragmentTv : Fragment() {
// resultEpisodeLoading.isVisible = episodes is Resource.Loading
if (episodes is Resource.Success) {
val first = episodes.value.firstOrNull()
if (first != null) {
val lastWatchedIndex = episodes.value.indexOfLast { ep -> ep.videoWatchState == VideoWatchState.Watched }
val firstUnwatched = episodes.value.getOrElse(lastWatchedIndex + 1) { episodes.value.firstOrNull() }
if (firstUnwatched != null) {
resultPlaySeriesText.text =
when {
first.season != null ->
"${getString(R.string.season_short)}${first.season}:${getString(R.string.episode_short)}${first.episode}"
else -> "${getString(R.string.episode)} ${first.episode}"
firstUnwatched.season != null ->
"${getString(R.string.season_short)}${firstUnwatched.season}:${getString(R.string.episode_short)}${firstUnwatched.episode}"
else -> "${getString(R.string.episode)} ${firstUnwatched.episode}"
}
resultPlaySeriesButton.setOnClickListener {
viewModel.handleAction(
EpisodeClickEvent(
ACTION_CLICK_DEFAULT,
first
firstUnwatched
)
)
}
resultPlaySeriesButton.setOnLongClickListener {
viewModel.handleAction(
EpisodeClickEvent(ACTION_SHOW_OPTIONS, first)
EpisodeClickEvent(ACTION_SHOW_OPTIONS, firstUnwatched)
)
return@setOnLongClickListener true
}