fix(player): update sourceStreamsState to use mutableStateOf

This commit is contained in:
tapframe 2026-07-18 17:20:21 +05:30
parent 3c253b1b78
commit d9eaca52e6
2 changed files with 61 additions and 1 deletions

View file

@ -69,7 +69,7 @@ internal class PlayerScreenRuntime(
var metaScreenSettingsUiState: MetaScreenSettingsUiState = MetaScreenSettingsUiState()
var watchedUiState: WatchedUiState = WatchedUiState()
var watchProgressUiState: WatchProgressUiState = WatchProgressUiState()
var sourceStreamsState: StreamsUiState = StreamsUiState()
var sourceStreamsState by mutableStateOf(StreamsUiState())
var episodeStreamsRepoState: StreamsUiState = StreamsUiState()
var metaUiState: MetaDetailsUiState = MetaDetailsUiState()
var addonsUiState: AddonsUiState = AddonsUiState()

View file

@ -0,0 +1,60 @@
package com.nuvio.app.features.player
import androidx.compose.runtime.derivedStateOf
import androidx.compose.ui.Modifier
import com.nuvio.app.features.streams.StreamsUiState
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertNull
class PlayerScreenRuntimeStateTest {
@Test
fun sourceFilterUpdatesInvalidateUiWithoutPlaybackUpdates() {
val runtime = PlayerScreenRuntime(testPlayerScreenArgs())
val selectedFilter = derivedStateOf { runtime.sourceStreamsState.selectedFilter }
assertNull(selectedFilter.value)
runtime.sourceStreamsState = StreamsUiState(selectedFilter = "addon-id")
assertEquals("addon-id", selectedFilter.value)
}
private fun testPlayerScreenArgs() = PlayerScreenArgs(
profileId = 1,
title = "Title",
sourceUrl = "https://example.com/video.mp4",
sourceAudioUrl = null,
sourceHeaders = emptyMap(),
sourceResponseHeaders = emptyMap(),
streamType = null,
providerName = "Provider",
streamTitle = "Source",
streamSubtitle = null,
initialBingeGroup = null,
pauseDescription = null,
onBack = {},
onOpenInExternalPlayer = null,
onOpenExternalUrl = null,
modifier = Modifier,
logo = null,
poster = null,
background = null,
seasonNumber = null,
episodeNumber = null,
episodeTitle = null,
episodeThumbnail = null,
contentType = "movie",
videoId = "tt1234567",
parentMetaId = "tt1234567",
parentMetaType = "movie",
providerAddonId = null,
torrentInfoHash = null,
torrentFileIdx = null,
torrentFilename = null,
torrentTrackers = emptyList(),
initialPositionMs = 0L,
initialProgressFraction = null,
)
}