Skip to content

Commit 66212f8

Browse files
committed
fix(player): resolve snapshot state read exception [attempt 1]
man fuck this bug
1 parent 7145df3 commit 66212f8

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

app/src/main/kotlin/com/flixclusive/mobile/MobileApp.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ internal fun MobileActivity.MobileApp(viewModel: MobileAppViewModel) {
165165
}
166166
}
167167

168-
LaunchedEffect(cachedLinks?.streams?.size, uiState.mediaLinkResourceState) {
168+
LaunchedEffect(uiState.mediaLinkResourceState) {
169169
if (
170170
uiState.mediaLinkResourceState == MediaLinkResourceState.Success &&
171171
currentSelectedScreen != PlayerScreenDestination
@@ -317,7 +317,10 @@ internal fun MobileActivity.MobileApp(viewModel: MobileAppViewModel) {
317317
}
318318

319319
if (!uiState.mediaLinkResourceState.isIdle) {
320-
window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
320+
LaunchedEffect(true) {
321+
window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
322+
}
323+
321324
MediaLinksBottomSheet(
322325
state = uiState.mediaLinkResourceState,
323326
streams = cachedLinks?.streams ?: emptyList(),
@@ -330,7 +333,9 @@ internal fun MobileActivity.MobileApp(viewModel: MobileAppViewModel) {
330333
},
331334
)
332335
} else {
333-
window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
336+
LaunchedEffect(true) {
337+
window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
338+
}
334339
}
335340

336341
AnimatedVisibility(

core/ui/mobile/src/main/kotlin/com/flixclusive/core/ui/mobile/component/provider/MediaLinksBottomSheet.kt

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,10 @@ import androidx.compose.material3.surfaceColorAtElevation
4444
import androidx.compose.runtime.Composable
4545
import androidx.compose.runtime.LaunchedEffect
4646
import androidx.compose.runtime.MutableState
47-
import androidx.compose.runtime.derivedStateOf
4847
import androidx.compose.runtime.getValue
4948
import androidx.compose.runtime.mutableStateListOf
5049
import androidx.compose.runtime.mutableStateOf
5150
import androidx.compose.runtime.remember
52-
import androidx.compose.runtime.rememberUpdatedState
5351
import androidx.compose.runtime.setValue
5452
import androidx.compose.ui.Alignment
5553
import androidx.compose.ui.Modifier
@@ -90,7 +88,7 @@ fun MediaLinksBottomSheet(
9088
onSkipLoading: () -> Unit
9189
) {
9290
val areSubtitlesShown = remember { mutableStateOf(false) }
93-
val filteredLinks by rememberUpdatedState(newValue = if (areSubtitlesShown.value) subtitles else streams)
91+
val filteredLinks = if (areSubtitlesShown.value) subtitles else streams
9492

9593
ModalBottomSheet(
9694
onDismissRequest = onDismiss,
@@ -258,11 +256,7 @@ private fun ProgressHeader(
258256
streams: List<Stream>,
259257
onSkipLoading: () -> Unit,
260258
) {
261-
val canSkipLoading by remember {
262-
derivedStateOf {
263-
state.isLoading && streams.isNotEmpty()
264-
}
265-
}
259+
val canSkipLoading = state.isLoading && streams.isNotEmpty()
266260

267261
Column(
268262
verticalArrangement = Arrangement.spacedBy(8.dp),
@@ -542,4 +536,4 @@ private fun MediaLinksBottomSheetPreview() {
542536
)
543537
}
544538
}
545-
}
539+
}

domain/provider/src/main/kotlin/com/flixclusive/domain/provider/CachedLinks.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import com.flixclusive.model.provider.link.Stream
88
import com.flixclusive.model.provider.link.Subtitle
99
import java.io.Serializable
1010

11+
// TODO: Replace SnapshotStateList with flow
12+
1113
/**
1214
*
1315
* A data model to hold all cached [MediaLink]s that was extracted from a provider.
@@ -49,4 +51,4 @@ data class CachedLinks(
4951
}
5052
}
5153
}
52-
}
54+
}

0 commit comments

Comments
 (0)