Skip to content

Commit

Permalink
Proper content padding for Audio and Subtitle page
Browse files Browse the repository at this point in the history
  • Loading branch information
Javernaut committed Apr 1, 2024
1 parent 55b58a4 commit 65e9288
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -18,9 +19,10 @@ import io.github.javernaut.mediafile.displayable.toDisplayable
@Composable
fun AudioPage(
streams: List<AudioStream>,
contentPadding: PaddingValues,
modifier: Modifier = Modifier
) {
SimplePage(streams, modifier) { item, itemModifier ->
SimplePage(streams, contentPadding, modifier) { item, itemModifier ->
AudioCardContent(item, itemModifier)
}
}
Expand All @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -66,19 +69,18 @@ fun StreamCard(
@Composable
fun <T : MediaStream> SimplePage(
streams: List<T>,
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)
}
Expand Down Expand Up @@ -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(),
)
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -17,9 +18,10 @@ import io.github.javernaut.mediafile.displayable.getDisplayableDisposition
@Composable
fun SubtitlePage(
streams: List<SubtitleStream>,
contentPadding: PaddingValues,
modifier: Modifier = Modifier
) {
SimplePage(streams, modifier) { item, itemModifier ->
SimplePage(streams, contentPadding, modifier) { item, itemModifier ->
SubtitleCardContent(item, itemModifier)
}
}
Expand All @@ -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(
Expand Down

0 comments on commit 65e9288

Please sign in to comment.