diff --git a/app/src/main/java/com/javernaut/whatthecodec/presentation/audio/AudioPage.kt b/app/src/main/java/com/javernaut/whatthecodec/presentation/audio/AudioPage.kt index b68b144f..dc922752 100644 --- a/app/src/main/java/com/javernaut/whatthecodec/presentation/audio/AudioPage.kt +++ b/app/src/main/java/com/javernaut/whatthecodec/presentation/audio/AudioPage.kt @@ -2,6 +2,7 @@ package com.javernaut.whatthecodec.presentation.audio import android.content.res.Resources import androidx.annotation.StringRes +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.javernaut.whatthecodec.R @@ -18,9 +19,10 @@ import io.github.javernaut.mediafile.displayable.toDisplayable @Composable fun AudioPage( streams: List, + contentPadding: PaddingValues, modifier: Modifier = Modifier ) { - SimplePage(streams, modifier) { item, itemModifier -> + SimplePage(streams, contentPadding, modifier) { item, itemModifier -> AudioCardContent(item, itemModifier) } } @@ -33,7 +35,7 @@ private fun AudioCardContent( val streamFeatures = getFilteredStreamFeatures( defaultValueResId = R.array.settings_content_audio_entryValues, preferenceKey = PreferencesKeys.AUDIO, - allValues = AudioFeature.values().toList() + allValues = AudioFeature.entries ) StreamFeaturesGrid( diff --git a/app/src/main/java/com/javernaut/whatthecodec/presentation/root/ui/MainScreen.kt b/app/src/main/java/com/javernaut/whatthecodec/presentation/root/ui/MainScreen.kt index 97474330..47cbabae 100644 --- a/app/src/main/java/com/javernaut/whatthecodec/presentation/root/ui/MainScreen.kt +++ b/app/src/main/java/com/javernaut/whatthecodec/presentation/root/ui/MainScreen.kt @@ -147,8 +147,8 @@ private fun MainScreenContent( val pageModifier = Modifier.fillMaxSize() when (tabsToShow[page]) { AvailableTab.VIDEO -> VideoPage(screenState.videoPage!!, contentPadding, pageModifier) - AvailableTab.AUDIO -> AudioPage(screenState.audioPage!!, pageModifier) - AvailableTab.SUBTITLES -> SubtitlePage(screenState.subtitlesPage!!, pageModifier) + AvailableTab.AUDIO -> AudioPage(screenState.audioPage!!, contentPadding, pageModifier) + AvailableTab.SUBTITLES -> SubtitlePage(screenState.subtitlesPage!!, contentPadding, pageModifier) } } } diff --git a/app/src/main/java/com/javernaut/whatthecodec/presentation/stream/StreamCard.kt b/app/src/main/java/com/javernaut/whatthecodec/presentation/stream/StreamCard.kt index 63ebe538..fe722977 100644 --- a/app/src/main/java/com/javernaut/whatthecodec/presentation/stream/StreamCard.kt +++ b/app/src/main/java/com/javernaut/whatthecodec/presentation/stream/StreamCard.kt @@ -4,11 +4,14 @@ import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.calculateEndPadding +import androidx.compose.foundation.layout.calculateStartPadding import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -66,19 +69,18 @@ fun StreamCard( @Composable fun SimplePage( streams: List, + contentPadding: PaddingValues, modifier: Modifier = Modifier, cardContent: @Composable (T, Modifier) -> Unit ) { - val commonPaddingValues = PaddingValues(8.dp) - val commonItemModifier = Modifier.padding(commonPaddingValues) LazyColumn( modifier = modifier, - contentPadding = commonPaddingValues + contentPadding = contentPadding + PaddingValues(16.dp), + verticalArrangement = spacedBy(16.dp) ) { itemsIndexed(streams) { _, item: T -> StreamCard( title = makeCardTitle(basicStreamInfo = item.basicInfo), - modifier = commonItemModifier, ) { cardContent(item, it) } @@ -170,3 +172,15 @@ private fun StreamCardTopRow( ) } } + +operator fun PaddingValues.plus(other: PaddingValues) = PaddingValues( + start = calculateStartPadding(LayoutDirection.Ltr) + + other.calculateStartPadding(LayoutDirection.Ltr), + + top = calculateTopPadding() + other.calculateTopPadding(), + + end = calculateEndPadding(LayoutDirection.Ltr) + + other.calculateEndPadding(LayoutDirection.Ltr), + + bottom = calculateBottomPadding() + other.calculateBottomPadding(), +) diff --git a/app/src/main/java/com/javernaut/whatthecodec/presentation/subtitle/SubtitlePage.kt b/app/src/main/java/com/javernaut/whatthecodec/presentation/subtitle/SubtitlePage.kt index 123596fe..27c754c5 100644 --- a/app/src/main/java/com/javernaut/whatthecodec/presentation/subtitle/SubtitlePage.kt +++ b/app/src/main/java/com/javernaut/whatthecodec/presentation/subtitle/SubtitlePage.kt @@ -2,6 +2,7 @@ package com.javernaut.whatthecodec.presentation.subtitle import android.content.res.Resources import androidx.annotation.StringRes +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.javernaut.whatthecodec.R @@ -17,9 +18,10 @@ import io.github.javernaut.mediafile.displayable.getDisplayableDisposition @Composable fun SubtitlePage( streams: List, + contentPadding: PaddingValues, modifier: Modifier = Modifier ) { - SimplePage(streams, modifier) { item, itemModifier -> + SimplePage(streams, contentPadding, modifier) { item, itemModifier -> SubtitleCardContent(item, itemModifier) } } @@ -32,7 +34,7 @@ private fun SubtitleCardContent( val streamFeatures = getFilteredStreamFeatures( defaultValueResId = R.array.settings_content_subtitles_entryValues, preferenceKey = PreferencesKeys.SUBTITLES, - allValues = SubtitleFeature.values().toList() + allValues = SubtitleFeature.entries ) StreamFeaturesGrid(