added logic to stop/pause trailer when sidebar is expanded
This commit is contained in:
parent
55ffa02651
commit
2e217ccdd5
3 changed files with 30 additions and 12 deletions
|
|
@ -27,6 +27,7 @@ import androidx.compose.foundation.ExperimentalFoundationApi
|
|||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.gestures.LocalBringIntoViewSpec
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.clickable
|
||||
|
|
@ -133,6 +134,8 @@ import coil.request.ImageRequest
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import com.nuvio.tv.R
|
||||
|
||||
val LocalSidebarExpanded = compositionLocalOf { false }
|
||||
|
||||
data class DrawerItem(
|
||||
val route: String,
|
||||
val label: String,
|
||||
|
|
@ -694,11 +697,15 @@ private fun LegacySidebarScaffold(
|
|||
}
|
||||
}
|
||||
) {
|
||||
NuvioNavHost(
|
||||
navController = navController,
|
||||
startDestination = startDestination,
|
||||
hideBuiltInHeaders = hideBuiltInHeaders
|
||||
)
|
||||
CompositionLocalProvider(
|
||||
LocalSidebarExpanded provides (drawerState.currentValue == DrawerValue.Open)
|
||||
) {
|
||||
NuvioNavHost(
|
||||
navController = navController,
|
||||
startDestination = startDestination,
|
||||
hideBuiltInHeaders = hideBuiltInHeaders
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1033,11 +1040,15 @@ private fun ModernSidebarScaffold(
|
|||
}
|
||||
}
|
||||
) {
|
||||
NuvioNavHost(
|
||||
navController = navController,
|
||||
startDestination = startDestination,
|
||||
hideBuiltInHeaders = hideBuiltInHeaders
|
||||
)
|
||||
CompositionLocalProvider(
|
||||
LocalSidebarExpanded provides isSidebarExpanded
|
||||
) {
|
||||
NuvioNavHost(
|
||||
navController = navController,
|
||||
startDestination = startDestination,
|
||||
hideBuiltInHeaders = hideBuiltInHeaders
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (showSidebar && (sidebarVisible || sidebarWidth > 0.dp)) {
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ import com.nuvio.tv.ui.components.ContinueWatchingCard
|
|||
import com.nuvio.tv.ui.components.ContinueWatchingOptionsDialog
|
||||
import com.nuvio.tv.ui.components.MonochromePosterPlaceholder
|
||||
import com.nuvio.tv.ui.components.TrailerPlayer
|
||||
import com.nuvio.tv.LocalSidebarExpanded
|
||||
import com.nuvio.tv.ui.theme.NuvioColors
|
||||
import kotlinx.coroutines.delay
|
||||
import android.view.KeyEvent as AndroidKeyEvent
|
||||
|
|
@ -121,6 +122,7 @@ fun ModernHomeContent(
|
|||
onSaveFocusState: (Int, Int, Int, Int, Map<String, Int>) -> Unit
|
||||
) {
|
||||
val defaultBringIntoViewSpec = LocalBringIntoViewSpec.current
|
||||
val isSidebarExpanded = LocalSidebarExpanded.current
|
||||
val useLandscapePosters = uiState.modernLandscapePostersEnabled
|
||||
val showCatalogTypeSuffixInModern = uiState.catalogTypeSuffixEnabled
|
||||
val isLandscapeModern = useLandscapePosters
|
||||
|
|
@ -581,10 +583,12 @@ fun ModernHomeContent(
|
|||
effectiveAutoplayEnabled,
|
||||
trailerPlaybackTarget,
|
||||
heroTrailerUrl,
|
||||
isVerticalRowsScrolling
|
||||
isVerticalRowsScrolling,
|
||||
isSidebarExpanded
|
||||
) {
|
||||
derivedStateOf {
|
||||
effectiveAutoplayEnabled &&
|
||||
!isSidebarExpanded &&
|
||||
!isVerticalRowsScrolling &&
|
||||
trailerPlaybackTarget == FocusedPosterTrailerPlaybackTarget.HERO_MEDIA &&
|
||||
!heroTrailerUrl.isNullOrBlank()
|
||||
|
|
@ -606,7 +610,7 @@ fun ModernHomeContent(
|
|||
val catalogBottomPadding = 0.dp
|
||||
val heroToCatalogGap = 16.dp
|
||||
val rowTitleBottom = 14.dp
|
||||
val rowsViewportHeightFraction = if (useLandscapePosters) 0.50f else 0.54f
|
||||
val rowsViewportHeightFraction = if (useLandscapePosters) 0.49f else 0.52f
|
||||
val rowsViewportHeight = maxHeight * rowsViewportHeightFraction
|
||||
val localDensity = LocalDensity.current
|
||||
val verticalRowBringIntoViewSpec = remember(localDensity, defaultBringIntoViewSpec) {
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ import com.nuvio.tv.domain.model.MetaPreview
|
|||
import com.nuvio.tv.ui.components.ContinueWatchingCard
|
||||
import com.nuvio.tv.ui.components.MonochromePosterPlaceholder
|
||||
import com.nuvio.tv.ui.components.TrailerPlayer
|
||||
import com.nuvio.tv.LocalSidebarExpanded
|
||||
import com.nuvio.tv.ui.theme.NuvioColors
|
||||
import kotlin.math.abs
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
@ -141,8 +142,10 @@ private fun ModernCatalogRowItem(
|
|||
effectiveExpandEnabled &&
|
||||
expandedCatalogFocusKey == focusKey &&
|
||||
!suppressCardExpansionForHeroTrailer
|
||||
val isSidebarExpanded = LocalSidebarExpanded.current
|
||||
val playTrailerInExpandedCard =
|
||||
effectiveAutoplayEnabled &&
|
||||
!isSidebarExpanded &&
|
||||
trailerPlaybackTarget == FocusedPosterTrailerPlaybackTarget.EXPANDED_CARD &&
|
||||
isBackdropExpanded
|
||||
val trailerPreviewUrl = if (playTrailerInExpandedCard) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue