From 44eb50910d4e38666ef3474dd22c9c2ef52c2fa3 Mon Sep 17 00:00:00 2001 From: Ray <154766448+damontecres@users.noreply.github.com> Date: Sat, 14 Feb 2026 16:13:38 -0500 Subject: [PATCH] Fixes unable to dismiss next up during credits (#899) ## Description Fixes an issue where the "Next Up" popup continuously pops up when dismissed if you have "Show next up during credits/outro" enabled. ### Related issues Fixes #895 Bug introduced by #884 ### Testing Emulator ## Screenshots N/A ## AI or LLM usage None --- .../damontecres/wholphin/ui/playback/PlaybackViewModel.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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}")