diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt index 7ed25311..b3a446d7 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt @@ -165,7 +165,6 @@ class PlaybackViewModel val currentPlayback = MutableStateFlow(null) val currentItemPlayback = MutableLiveData() val currentSegment = MutableStateFlow(null) - private val autoSkippedSegments = mutableSetOf() val subtitleCues = MutableLiveData>(listOf()) @@ -957,7 +956,10 @@ class PlaybackViewModel } } + // Variables for tracking segment state private var segmentJob: Job? = null + private val autoSkippedSegments = mutableSetOf() + private val outroShownSegments = mutableSetOf() /** * Cancels listening for segments and clears current segment state @@ -965,6 +967,7 @@ class PlaybackViewModel private fun resetSegmentState() { segmentJob?.cancel() autoSkippedSegments.clear() + outroShownSegments.clear() currentSegment.value = null } @@ -1007,7 +1010,8 @@ class PlaybackViewModel if (currentSegment.type == MediaSegmentType.OUTRO && prefs.showNextUpWhen == ShowNextUpWhen.DURING_CREDITS && - playlist != null && playlist.hasNext() + playlist != null && playlist.hasNext() && + outroShownSegments.add(currentSegment.id) ) { val nextItem = playlist.peek() Timber.v("Setting next up during outro to ${nextItem?.id}")