From 8ac0fd0bd1e4548a0f02c91d54b51bb64c130fad Mon Sep 17 00:00:00 2001 From: Barnabas Balogh Date: Sat, 20 Jun 2026 17:42:03 +0000 Subject: [PATCH] feat(series): show season/episode context on play button and truncate subtitle Enhance the series play button to display season and episode number alongside the play label when a next-up episode is available. Also constrain the subtitle text to a single line with ellipsis overflow to prevent layout issues from long subtitle strings. --- .../bbara/purefin/ui/common/media/MediaDetailScaffold.kt | 2 ++ .../java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailScaffold.kt b/app/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailScaffold.kt index 169ee7ef..f7bb9b04 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailScaffold.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailScaffold.kt @@ -220,6 +220,8 @@ private fun ColumnScope.MediaDetailScaffoldContent( color = scheme.onBackground, fontSize = uiModel.subtitleFontSize, fontWeight = uiModel.subtitleFontWeight, + maxLines = 1, + overflow = TextOverflow.Ellipsis, modifier = modifier ) } diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt index eb7f766d..d370c51d 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt @@ -250,9 +250,14 @@ private fun Series.toMediaDetailScaffoldUiModel( metadataItems = listOf(year, "$seasonCount Seasons"), actions = selectedSeason?.let { val seriesWatched = unwatchedEpisodeCount == 0 + val playButtonText = mediaPlayButtonText(nextUpEpisode?.progress, nextUpEpisode?.watched) MediaDetailActionsUiModel( primaryAction = MediaDetailPrimaryActionUiModel( - text = mediaPlayButtonText(nextUpEpisode?.progress, nextUpEpisode?.watched), + text = if (nextUpEpisode != null) { + "$playButtonText S${it.index} • E${nextUpEpisode.index}" + } else { + playButtonText + }, progress = mediaPlaybackProgress(nextUpEpisode?.progress), onClick = onPlayClick, testTag = SeriesPlayButtonTag