Use DialogBase for InAppScreensaver

This commit is contained in:
Niels van Velzen authored and Niels van Velzen committed 2026-01-01 18:29:35 +01:00
1 parent 4f67eeb0d2
commit 2af5ea8c28
2 files changed
+19 -20

No files matched your search

@@ -23,6 +23,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
import org.jellyfin.androidtv.ui.base.JellyfinTheme
@@ -32,6 +33,7 @@ fun DialogBase(
visible: Boolean,
onDismissRequest: () -> Unit,
modifier: Modifier = Modifier,
scrimColor: Color = JellyfinTheme.colorScheme.scrim,
enterTransition: EnterTransition = fadeIn(tween(300)),
exitTransition: ExitTransition = fadeOut(tween(300)),
contentAlignment: Alignment = Alignment.Center,
@@ -56,7 +58,6 @@ fun DialogBase(
decorFitsSystemWindows = false
),
) {
val scrimColor = JellyfinTheme.colorScheme.scrim
Box(
modifier = modifier
.fillMaxSize()
@@ -1,13 +1,10 @@
package org.jellyfin.androidtv.ui.screensaver
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
@@ -17,6 +14,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import org.jellyfin.androidtv.integration.dream.composable.DreamHost
import org.jellyfin.androidtv.ui.InteractionTrackerViewModel
import org.jellyfin.androidtv.ui.base.dialog.DialogBase
import org.koin.androidx.compose.koinViewModel
@Composable
@@ -24,23 +22,23 @@ fun InAppScreensaver() {
val interactionTrackerViewModel = koinViewModel<InteractionTrackerViewModel>()
val visible by interactionTrackerViewModel.visible.collectAsState()
AnimatedVisibility(
DialogBase(
visible = visible,
enter = fadeIn(tween(1_000)),
exit = fadeOut(tween(1_000)),
onDismissRequest = {
interactionTrackerViewModel.notifyInteraction(canCancel = true, userInitiated = false)
},
scrimColor = Color.Black,
enterTransition = fadeIn(tween(1_000)),
exitTransition = fadeOut(tween(1_000)),
modifier = Modifier
.fillMaxSize()
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
) {
interactionTrackerViewModel.notifyInteraction(canCancel = true, userInitiated = false)
}
) {
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Black)
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
) {
interactionTrackerViewModel.notifyInteraction(canCancel = true, userInitiated = false)
}
) {
DreamHost()
}
DreamHost()
}
}