diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeState.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeState.kt index 65e71717f..b2173a023 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeState.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeState.kt @@ -70,7 +70,7 @@ internal class PlayerScreenRuntime( var watchedUiState: WatchedUiState = WatchedUiState() var watchProgressUiState: WatchProgressUiState = WatchProgressUiState() var sourceStreamsState by mutableStateOf(StreamsUiState()) - var episodeStreamsRepoState: StreamsUiState = StreamsUiState() + var episodeStreamsRepoState by mutableStateOf(StreamsUiState()) var metaUiState: MetaDetailsUiState = MetaDetailsUiState() var addonsUiState: AddonsUiState = AddonsUiState() var addonSubtitles: List = emptyList() diff --git a/composeApp/src/commonTest/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeStateTest.kt b/composeApp/src/commonTest/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeStateTest.kt index 0b8f720ba..5bf37d33d 100644 --- a/composeApp/src/commonTest/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeStateTest.kt +++ b/composeApp/src/commonTest/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeStateTest.kt @@ -23,6 +23,18 @@ class PlayerScreenRuntimeStateTest { assertEquals("addon-id", selectedFilter.value) } + @Test + fun episodeFilterUpdatesInvalidateUiWithoutPlaybackUpdates() { + val runtime = PlayerScreenRuntime(testPlayerScreenArgs()) + val selectedFilter = derivedStateOf { runtime.episodeStreamsRepoState.selectedFilter } + + assertNull(selectedFilter.value) + + runtime.episodeStreamsRepoState = StreamsUiState(selectedFilter = "addon-id") + + assertEquals("addon-id", selectedFilter.value) + } + @Test fun seekScrobbleUpdate_requiresActiveIncompletePlayback() { assertTrue(