From 285580b69bbc26d628bad124dc4767bd7878e2f9 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 19 Apr 2026 00:22:27 +0530 Subject: [PATCH] ref: adjsut safe area for some pages --- .../kotlin/com/nuvio/app/core/ui/NuvioComponents.kt | 2 +- .../app/core/ui/NuvioContinueWatchingActionSheet.kt | 2 +- .../com/nuvio/app/core/ui/NuvioPlatformInsets.kt | 10 ++++++++++ .../com/nuvio/app/core/ui/NuvioPosterActionSheet.kt | 2 +- .../com/nuvio/app/features/catalog/CatalogScreen.kt | 4 ++-- .../app/features/collection/CollectionEditorScreen.kt | 6 +++--- .../app/features/collection/FolderDetailScreen.kt | 6 +++--- .../nuvio/app/features/details/MetaDetailsScreen.kt | 4 ++-- .../details/components/EpisodeWatchedActionSheet.kt | 4 ++-- .../features/details/components/TrailerPlayerPopup.kt | 4 ++-- .../nuvio/app/features/search/SearchDiscoverContent.kt | 4 ++-- .../com/nuvio/app/features/streams/StreamsScreen.kt | 6 +++--- 12 files changed, 32 insertions(+), 22 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioComponents.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioComponents.kt index 5bd03582..53830e66 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioComponents.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioComponents.kt @@ -87,7 +87,7 @@ fun NuvioScreen( start = horizontalPadding, top = topPadding ?: 10.dp + statusBarTop + nuvioPlatformExtraTopPadding, end = horizontalPadding, - bottom = 18.dp + nuvioPlatformExtraBottomPadding, + bottom = nuvioSafeBottomPadding(18.dp), ), verticalArrangement = Arrangement.spacedBy(12.dp), content = content, diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioContinueWatchingActionSheet.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioContinueWatchingActionSheet.kt index 1cf4db94..1d326687 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioContinueWatchingActionSheet.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioContinueWatchingActionSheet.kt @@ -64,7 +64,7 @@ fun NuvioContinueWatchingActionSheet( Column( modifier = Modifier .fillMaxWidth() - .padding(bottom = 16.dp + nuvioPlatformExtraBottomPadding), + .padding(bottom = nuvioSafeBottomPadding(16.dp)), ) { ContinueWatchingSheetHeader(item = item) NuvioBottomSheetDivider() diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPlatformInsets.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPlatformInsets.kt index 945063a0..b6ea9a37 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPlatformInsets.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPlatformInsets.kt @@ -1,11 +1,21 @@ package com.nuvio.app.core.ui import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.runtime.Composable import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp internal expect val nuvioPlatformExtraTopPadding: Dp internal expect val nuvioPlatformExtraBottomPadding: Dp internal expect val nuvioBottomNavigationExtraVerticalPadding: Dp @Composable internal expect fun nuvioBottomNavigationBarInsets(): WindowInsets + +@Composable +internal fun nuvioSafeBottomPadding(extra: Dp = 0.dp): Dp { + val navigationBarBottom = nuvioBottomNavigationBarInsets() + .asPaddingValues() + .calculateBottomPadding() + return navigationBarBottom.coerceAtLeast(nuvioPlatformExtraBottomPadding) + extra +} diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPosterActionSheet.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPosterActionSheet.kt index d3ee69d3..8a1081eb 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPosterActionSheet.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/core/ui/NuvioPosterActionSheet.kt @@ -66,7 +66,7 @@ fun NuvioPosterActionSheet( Column( modifier = Modifier .fillMaxWidth() - .padding(bottom = 16.dp + nuvioPlatformExtraBottomPadding), + .padding(bottom = nuvioSafeBottomPadding(16.dp)), ) { PosterSheetHeader(item = item) NuvioBottomSheetDivider() diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/catalog/CatalogScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/catalog/CatalogScreen.kt index 55c4faaa..ec60a08d 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/catalog/CatalogScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/catalog/CatalogScreen.kt @@ -49,7 +49,7 @@ import com.nuvio.app.core.format.formatReleaseDateForDisplay import com.nuvio.app.core.ui.NuvioBackButton import com.nuvio.app.core.ui.rememberPosterCardStyleUiState import com.nuvio.app.core.ui.posterCardClickable -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.features.home.MetaPreview import com.nuvio.app.features.home.PosterShape import com.nuvio.app.features.home.stableKey @@ -144,7 +144,7 @@ fun CatalogScreen( start = 16.dp, top = with(androidx.compose.ui.platform.LocalDensity.current) { headerHeightPx.toDp() } + 12.dp, end = 16.dp, - bottom = nuvioPlatformExtraBottomPadding + 28.dp, + bottom = nuvioSafeBottomPadding(28.dp), ), horizontalArrangement = Arrangement.spacedBy(12.dp), verticalArrangement = Arrangement.spacedBy(18.dp), diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/CollectionEditorScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/CollectionEditorScreen.kt index 2abb6708..8f50790c 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/CollectionEditorScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/CollectionEditorScreen.kt @@ -61,7 +61,7 @@ import com.nuvio.app.core.ui.NuvioScreen import com.nuvio.app.core.ui.NuvioScreenHeader import com.nuvio.app.core.ui.NuvioSectionLabel import com.nuvio.app.core.ui.NuvioSurfaceCard -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.core.ui.PlatformBackHandler import com.nuvio.app.features.home.PosterShape import sh.calvin.reorderable.ReorderableCollectionItemScope @@ -75,7 +75,7 @@ fun CollectionEditorScreen( onBack: () -> Unit, ) { val state by CollectionEditorRepository.uiState.collectAsState() - val bottomInset = nuvioPlatformExtraBottomPadding + val bottomInset = nuvioSafeBottomPadding() LaunchedEffect(collectionId) { CollectionEditorRepository.initialize(collectionId) @@ -504,7 +504,7 @@ private fun FolderEditorPage( onBack: () -> Unit, ) { val folder = state.editingFolder ?: return - val bottomInset = nuvioPlatformExtraBottomPadding + val bottomInset = nuvioSafeBottomPadding() PlatformBackHandler(enabled = true) { onBack() diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/FolderDetailScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/FolderDetailScreen.kt index 8dae326f..fd065aef 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/FolderDetailScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/collection/FolderDetailScreen.kt @@ -53,7 +53,7 @@ import coil3.compose.AsyncImage import com.nuvio.app.core.ui.NuvioPosterCard import com.nuvio.app.core.ui.NuvioPosterShape import com.nuvio.app.core.ui.NuvioScreenHeader -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.features.home.HomeCatalogSection import com.nuvio.app.features.home.MetaPreview import com.nuvio.app.features.home.PosterShape @@ -260,7 +260,7 @@ private fun TabbedGridContent( contentPadding = PaddingValues( start = 16.dp, end = 16.dp, - bottom = 18.dp + nuvioPlatformExtraBottomPadding, + bottom = nuvioSafeBottomPadding(18.dp), ), horizontalArrangement = Arrangement.spacedBy(10.dp), verticalArrangement = Arrangement.spacedBy(14.dp), @@ -312,7 +312,7 @@ private fun RowsContent( LazyColumn( modifier = modifier.fillMaxSize(), contentPadding = PaddingValues( - bottom = 18.dp + nuvioPlatformExtraBottomPadding, + bottom = nuvioSafeBottomPadding(18.dp), ), verticalArrangement = Arrangement.spacedBy(16.dp), ) { diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt index eae92a8d..6398649a 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/MetaDetailsScreen.kt @@ -61,7 +61,7 @@ import com.nuvio.app.core.network.NetworkCondition import com.nuvio.app.core.network.NetworkStatusRepository import com.nuvio.app.core.ui.NuvioBackButton import com.nuvio.app.core.ui.TraktListPickerDialog -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.features.details.components.DetailActionButtons import com.nuvio.app.features.details.components.CommentDetailSheet import com.nuvio.app.features.details.components.DetailAdditionalInfoSection @@ -692,7 +692,7 @@ fun MetaDetailsScreen( animatedVisibilityScope = animatedVisibilityScope, ) - Spacer(modifier = Modifier.height(32.dp + nuvioPlatformExtraBottomPadding)) + Spacer(modifier = Modifier.height(nuvioSafeBottomPadding(32.dp))) } } diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/EpisodeWatchedActionSheet.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/EpisodeWatchedActionSheet.kt index 5b52a708..5a66d7e5 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/EpisodeWatchedActionSheet.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/EpisodeWatchedActionSheet.kt @@ -28,8 +28,8 @@ import com.nuvio.app.core.ui.NuvioBottomSheetActionRow import com.nuvio.app.core.ui.NuvioBottomSheetDivider import com.nuvio.app.core.ui.NuvioModalBottomSheet import com.nuvio.app.core.ui.dismissNuvioBottomSheet +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.features.details.MetaVideo -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @@ -62,7 +62,7 @@ fun EpisodeWatchedActionSheet( Column( modifier = Modifier .fillMaxWidth() - .padding(bottom = 16.dp + nuvioPlatformExtraBottomPadding), + .padding(bottom = nuvioSafeBottomPadding(16.dp)), ) { EpisodeActionSheetHeader( episode = episode, diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/TrailerPlayerPopup.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/TrailerPlayerPopup.kt index 837db0bc..33142d68 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/TrailerPlayerPopup.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/details/components/TrailerPlayerPopup.kt @@ -34,7 +34,7 @@ import androidx.compose.ui.draw.clip import com.nuvio.app.core.ui.NuvioBottomSheetDivider import com.nuvio.app.core.ui.NuvioModalBottomSheet import com.nuvio.app.core.ui.dismissNuvioBottomSheet -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.features.player.PlatformPlayerSurface import com.nuvio.app.features.player.PlayerResizeMode import com.nuvio.app.features.trailer.TrailerPlaybackSource @@ -87,7 +87,7 @@ fun TrailerPlayerPopup( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp) - .padding(bottom = 14.dp + nuvioPlatformExtraBottomPadding), + .padding(bottom = nuvioSafeBottomPadding(14.dp)), verticalArrangement = Arrangement.spacedBy(12.dp), ) { Row( diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchDiscoverContent.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchDiscoverContent.kt index 4e94528e..0b338ab5 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchDiscoverContent.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/search/SearchDiscoverContent.kt @@ -55,7 +55,7 @@ import com.nuvio.app.core.ui.NuvioBottomSheetActionRow import com.nuvio.app.core.ui.NuvioBottomSheetDivider import com.nuvio.app.core.ui.NuvioModalBottomSheet import com.nuvio.app.core.ui.dismissNuvioBottomSheet -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.core.ui.rememberPosterCardStyleUiState import com.nuvio.app.core.ui.posterCardClickable import com.nuvio.app.features.home.MetaPreview @@ -292,7 +292,7 @@ private fun DiscoverOptionsSheet( Column( modifier = Modifier .fillMaxWidth() - .padding(bottom = 16.dp + nuvioPlatformExtraBottomPadding), + .padding(bottom = nuvioSafeBottomPadding(16.dp)), ) { Text( text = title, diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/streams/StreamsScreen.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/streams/StreamsScreen.kt index 3e9ce53a..18202efa 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/streams/StreamsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/streams/StreamsScreen.kt @@ -82,7 +82,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.rememberModalBottomSheetState import coil3.compose.AsyncImage -import com.nuvio.app.core.ui.nuvioPlatformExtraBottomPadding +import com.nuvio.app.core.ui.nuvioSafeBottomPadding import com.nuvio.app.features.watchprogress.WatchProgressRepository import kotlinx.coroutines.launch import kotlin.math.round @@ -762,7 +762,7 @@ internal fun StreamList( } } item { - Spacer(modifier = Modifier.height(nuvioPlatformExtraBottomPadding + 80.dp)) + Spacer(modifier = Modifier.height(nuvioSafeBottomPadding(80.dp))) } } } @@ -1002,7 +1002,7 @@ private fun StreamActionsSheet( Column( modifier = Modifier .fillMaxWidth() - .padding(bottom = 16.dp + nuvioPlatformExtraBottomPadding), + .padding(bottom = nuvioSafeBottomPadding(16.dp)), ) { Column( modifier = Modifier