From b90632063c955a95e0f8566d2157783684fb96f7 Mon Sep 17 00:00:00 2001 From: Barnabas Balogh Date: Wed, 1 Apr 2026 16:51:24 +0200 Subject: [PATCH] feat: add Settings tab to TV home screen and update color scheme --- .../hu/bbara/purefin/tv/home/TvHomeScreen.kt | 10 +- .../bbara/purefin/tv/home/ui/TvHomeModels.kt | 3 +- .../bbara/purefin/tv/home/ui/TvHomeTopBar.kt | 63 ++--- .../java/hu/bbara/purefin/ui/theme/Color.kt | 236 ++---------------- .../java/hu/bbara/purefin/ui/theme/Theme.kt | 214 +--------------- 5 files changed, 54 insertions(+), 472 deletions(-) diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt index c72a4e8c..b3c5b0bb 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/home/TvHomeScreen.kt @@ -7,6 +7,7 @@ import androidx.compose.material.icons.outlined.Collections import androidx.compose.material.icons.outlined.Home import androidx.compose.material.icons.outlined.Movie import androidx.compose.material.icons.outlined.Search +import androidx.compose.material.icons.outlined.Settings import androidx.compose.material.icons.outlined.Tv import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable @@ -43,6 +44,13 @@ fun TvHomeScreen( val tabs = remember(libraries) { buildList { + add( + TvHomeTabItem( + destination = TvHomeTabDestination.SETTINGS, + label = "Settings", + icon = Icons.Outlined.Settings, + ) + ) add( TvHomeTabItem( destination = TvHomeTabDestination.SEARCH, @@ -100,6 +108,7 @@ fun TvHomeScreen( } ) { innerPadding -> when (selectedTab?.destination) { + TvHomeTabDestination.SETTINGS, TvHomeTabDestination.LIBRARY -> { TvLibraryContent( libraryItems = selectedLibraryItems, @@ -108,7 +117,6 @@ fun TvHomeScreen( modifier = Modifier.padding(innerPadding) ) } - TvHomeTabDestination.SEARCH, TvHomeTabDestination.HOME, null -> { diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeModels.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeModels.kt index 3eb90383..ce1f8cb9 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeModels.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeModels.kt @@ -13,7 +13,8 @@ data class TvHomeNavItem( enum class TvHomeTabDestination { SEARCH, HOME, - LIBRARY + LIBRARY, + SETTINGS } data class TvHomeTabItem( diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeTopBar.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeTopBar.kt index 6b3a8d5b..2b19a556 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeTopBar.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/tv/home/ui/TvHomeTopBar.kt @@ -1,12 +1,7 @@ package hu.bbara.purefin.tv.home.ui -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -17,7 +12,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import androidx.compose.ui.zIndex @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -30,45 +24,28 @@ fun TvHomeTopBar( val scheme = MaterialTheme.colorScheme val safeSelectedTabIndex = selectedTabIndex.coerceIn(0, tabs.lastIndex.coerceAtLeast(0)) - Box( - modifier = modifier - .fillMaxWidth() - .background(scheme.background.copy(alpha = 0.95f)) - .zIndex(1f) + PrimaryScrollableTabRow( + selectedTabIndex = safeSelectedTabIndex, + containerColor = scheme.surface, + contentColor = scheme.onSurface, ) { - Row( - modifier = Modifier - .statusBarsPadding() - .padding(horizontal = 16.dp, vertical = 16.dp) - .fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(16.dp), - ) { - PrimaryScrollableTabRow( - selectedTabIndex = safeSelectedTabIndex, - modifier = Modifier.weight(1f), - containerColor = scheme.surface, - contentColor = scheme.onSurface - ) { - tabs.forEachIndexed { index, tab -> - Tab( - selected = index == safeSelectedTabIndex, - onClick = { onTabSelected(index, tab) }, - text = { - Row( - horizontalArrangement = Arrangement.spacedBy(6.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Icon( - imageVector = tab.icon, - contentDescription = null - ) - Text(text = tab.label) - } - } - ) + tabs.forEachIndexed { index, tab -> + Tab( + selected = index == safeSelectedTabIndex, + onClick = { onTabSelected(index, tab) }, + text = { + Row( + horizontalArrangement = Arrangement.spacedBy(6.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + imageVector = tab.icon, + contentDescription = null + ) + Text(text = tab.label) + } } - } + ) } } } diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Color.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Color.kt index 2c5c8b87..705a0855 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Color.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Color.kt @@ -5,218 +5,24 @@ import androidx.compose.ui.graphics.Color private fun hslColor(hue: Float, saturation: Float, lightness: Float): Color = Color.hsl(hue = hue, saturation = saturation / 100f, lightness = lightness / 100f) -val primaryLight = hslColor(26.9f, 61.4f, 33.5f) -val onPrimaryLight = hslColor(0f, 0f, 100f) -val primaryContainerLight = hslColor(23.8f, 100f, 88.6f) -val onPrimaryContainerLight = hslColor(28.2f, 81.7f, 23.5f) -val secondaryLight = hslColor(25f, 25.8f, 36.5f) -val onSecondaryLight = hslColor(0f, 0f, 100f) -val secondaryContainerLight = hslColor(23.8f, 100f, 88.6f) -val onSecondaryContainerLight = hslColor(24.5f, 31.9f, 27.1f) -val tertiaryLight = hslColor(64.1f, 29.3f, 29.4f) -val onTertiaryLight = hslColor(0f, 0f, 100f) -val tertiaryContainerLight = hslColor(62.1f, 52.8f, 79.2f) -val onTertiaryContainerLight = hslColor(64.4f, 39.0f, 20.6f) -val errorLight = hslColor(0f, 75.5f, 41.6f) -val onErrorLight = hslColor(0f, 0f, 100f) -val errorContainerLight = hslColor(5.9f, 100f, 92.0f) -val onErrorContainerLight = hslColor(355.9f, 100f, 28.8f) -val backgroundLight = hslColor(18f, 100f, 98.0f) -val onBackgroundLight = hslColor(23.1f, 23.6f, 10.8f) -val surfaceLight = hslColor(18f, 100f, 98.0f) -val onSurfaceLight = hslColor(23.1f, 23.6f, 10.8f) -val surfaceVariantLight = hslColor(23.6f, 57.9f, 88.8f) -val onSurfaceVariantLight = hslColor(23.5f, 16.3f, 27.6f) -val outlineLight = hslColor(23.1f, 10.9f, 46.7f) -val outlineVariantLight = hslColor(23.2f, 27.4f, 77.8f) -val scrimLight = hslColor(0f, 0f, 0f) -val inverseSurfaceLight = hslColor(24f, 15.5f, 19.0f) -val inverseOnSurfaceLight = hslColor(23.1f, 92.9f, 94.5f) -val inversePrimaryLight = hslColor(25.2f, 100f, 75.7f) -val surfaceDimLight = hslColor(21.6f, 34.2f, 85.7f) -val surfaceBrightLight = hslColor(18f, 100f, 98.0f) -val surfaceContainerLowestLight = hslColor(0f, 0f, 100f) -val surfaceContainerLowLight = hslColor(21.8f, 100f, 95.7f) -val surfaceContainerLight = hslColor(23.1f, 76.5f, 93.3f) -val surfaceContainerHighLight = hslColor(21.6f, 55.6f, 91.2f) -val surfaceContainerHighestLight = hslColor(20.8f, 46.4f, 89.0f) - -val primaryLightMediumContrast = hslColor(29.0f, 100f, 17.1f) -val onPrimaryLightMediumContrast = hslColor(0f, 0f, 100f) -val primaryContainerLightMediumContrast = hslColor(26.4f, 54.2f, 39.4f) -val onPrimaryContainerLightMediumContrast = hslColor(0f, 0f, 100f) -val secondaryLightMediumContrast = hslColor(24.9f, 39.0f, 20.6f) -val onSecondaryLightMediumContrast = hslColor(0f, 0f, 100f) -val secondaryContainerLightMediumContrast = hslColor(24f, 23.1f, 42.4f) -val onSecondaryContainerLightMediumContrast = hslColor(0f, 0f, 100f) -val tertiaryLightMediumContrast = hslColor(64.5f, 54.1f, 14.5f) -val onTertiaryLightMediumContrast = hslColor(0f, 0f, 100f) -val tertiaryContainerLightMediumContrast = hslColor(63.9f, 25.8f, 34.9f) -val onTertiaryContainerLightMediumContrast = hslColor(0f, 0f, 100f) -val errorLightMediumContrast = hslColor(356.9f, 100f, 22.7f) -val onErrorLightMediumContrast = hslColor(0f, 0f, 100f) -val errorContainerLightMediumContrast = hslColor(1.8f, 68.3f, 48.2f) -val onErrorContainerLightMediumContrast = hslColor(0f, 0f, 100f) -val backgroundLightMediumContrast = hslColor(18f, 100f, 98.0f) -val onBackgroundLightMediumContrast = hslColor(23.1f, 23.6f, 10.8f) -val surfaceLightMediumContrast = hslColor(18f, 100f, 98.0f) -val onSurfaceLightMediumContrast = hslColor(25f, 35.3f, 6.7f) -val surfaceVariantLightMediumContrast = hslColor(23.6f, 57.9f, 88.8f) -val onSurfaceVariantLightMediumContrast = hslColor(25.7f, 19.6f, 21.0f) -val outlineLightMediumContrast = hslColor(25f, 14.6f, 32.2f) -val outlineVariantLightMediumContrast = hslColor(23.1f, 11.9f, 42.7f) -val scrimLightMediumContrast = hslColor(0f, 0f, 0f) -val inverseSurfaceLightMediumContrast = hslColor(24f, 15.5f, 19.0f) -val inverseOnSurfaceLightMediumContrast = hslColor(23.1f, 92.9f, 94.5f) -val inversePrimaryLightMediumContrast = hslColor(25.2f, 100f, 75.7f) -val surfaceDimLightMediumContrast = hslColor(22.5f, 21.4f, 78.0f) -val surfaceBrightLightMediumContrast = hslColor(18f, 100f, 98.0f) -val surfaceContainerLowestLightMediumContrast = hslColor(0f, 0f, 100f) -val surfaceContainerLowLightMediumContrast = hslColor(21.8f, 100f, 95.7f) -val surfaceContainerLightMediumContrast = hslColor(21.6f, 55.6f, 91.2f) -val surfaceContainerHighLightMediumContrast = hslColor(21.6f, 37.3f, 86.9f) -val surfaceContainerHighestLightMediumContrast = hslColor(22.5f, 26.7f, 82.4f) - -val primaryLightHighContrast = hslColor(27.9f, 100f, 14.3f) -val onPrimaryLightHighContrast = hslColor(0f, 0f, 100f) -val primaryContainerLightHighContrast = hslColor(28.5f, 79.2f, 24.5f) -val onPrimaryContainerLightHighContrast = hslColor(0f, 0f, 100f) -val secondaryLightHighContrast = hslColor(25.3f, 45.2f, 16.5f) -val onSecondaryLightHighContrast = hslColor(0f, 0f, 100f) -val secondaryContainerLightHighContrast = hslColor(25.9f, 31.0f, 27.8f) -val onSecondaryContainerLightHighContrast = hslColor(0f, 0f, 100f) -val tertiaryLightHighContrast = hslColor(63.1f, 73.6f, 10.4f) -val onTertiaryLightHighContrast = hslColor(0f, 0f, 100f) -val tertiaryContainerLightHighContrast = hslColor(64.3f, 38.2f, 21.6f) -val onTertiaryContainerLightHighContrast = hslColor(0f, 0f, 100f) -val errorLightHighContrast = hslColor(357.5f, 100f, 18.8f) -val onErrorLightHighContrast = hslColor(0f, 0f, 100f) -val errorContainerLightHighContrast = hslColor(356.1f, 100f, 29.8f) -val onErrorContainerLightHighContrast = hslColor(0f, 0f, 100f) -val backgroundLightHighContrast = hslColor(18f, 100f, 98.0f) -val onBackgroundLightHighContrast = hslColor(23.1f, 23.6f, 10.8f) -val surfaceLightHighContrast = hslColor(18f, 100f, 98.0f) -val onSurfaceLightHighContrast = hslColor(0f, 0f, 0f) -val surfaceVariantLightHighContrast = hslColor(23.6f, 57.9f, 88.8f) -val onSurfaceVariantLightHighContrast = hslColor(0f, 0f, 0f) -val outlineLightHighContrast = hslColor(24f, 22.7f, 17.3f) -val outlineVariantLightHighContrast = hslColor(21.8f, 15.1f, 28.6f) -val scrimLightHighContrast = hslColor(0f, 0f, 0f) -val inverseSurfaceLightHighContrast = hslColor(24f, 15.5f, 19.0f) -val inverseOnSurfaceLightHighContrast = hslColor(0f, 0f, 100f) -val inversePrimaryLightHighContrast = hslColor(25.2f, 100f, 75.7f) -val surfaceDimLightHighContrast = hslColor(22.5f, 17.1f, 72.5f) -val surfaceBrightLightHighContrast = hslColor(18f, 100f, 98.0f) -val surfaceContainerLowestLightHighContrast = hslColor(0f, 0f, 100f) -val surfaceContainerLowLightHighContrast = hslColor(23.1f, 92.9f, 94.5f) -val surfaceContainerLightHighContrast = hslColor(20.8f, 46.4f, 89.0f) -val surfaceContainerHighLightHighContrast = hslColor(21.6f, 29.4f, 83.3f) -val surfaceContainerHighestLightHighContrast = hslColor(22.5f, 21.4f, 78.0f) - -val primaryDark = hslColor(25.2f, 100f, 75.7f) -val onPrimaryDark = hslColor(28.1f, 100f, 15.5f) -val primaryContainerDark = hslColor(28.2f, 81.7f, 23.5f) -val onPrimaryContainerDark = hslColor(23.8f, 100f, 88.6f) -val secondaryDark = hslColor(23.6f, 53.0f, 77.5f) -val onSecondaryDark = hslColor(24.6f, 41.9f, 18.2f) -val secondaryContainerDark = hslColor(24.5f, 31.9f, 27.1f) -val onSecondaryContainerDark = hslColor(23.8f, 100f, 88.6f) -val tertiaryDark = hslColor(63.3f, 33.7f, 68.6f) -val onTertiaryDark = hslColor(64.5f, 64.5f, 12.2f) -val tertiaryContainerDark = hslColor(64.4f, 39.0f, 20.6f) -val onTertiaryContainerDark = hslColor(62.1f, 52.8f, 79.2f) -val errorDark = hslColor(6.4f, 100f, 83.5f) -val onErrorDark = hslColor(357.1f, 100f, 20.6f) -val errorContainerDark = hslColor(355.9f, 100f, 28.8f) -val onErrorContainerDark = hslColor(5.9f, 100f, 92.0f) -val backgroundDark = hslColor(25f, 31.6f, 7.5f) -val onBackgroundDark = hslColor(20.8f, 46.4f, 89.0f) -val surfaceDark = hslColor(25f, 31.6f, 7.5f) -val onSurfaceDark = hslColor(20.8f, 46.4f, 89.0f) -val surfaceVariantDark = hslColor(23.5f, 16.3f, 27.6f) -val onSurfaceVariantDark = hslColor(23.2f, 27.4f, 77.8f) -val outlineDark = hslColor(21.4f, 12.7f, 56.9f) -val outlineVariantDark = hslColor(23.5f, 16.3f, 27.6f) -val scrimDark = hslColor(0f, 0f, 0f) -val inverseSurfaceDark = hslColor(20.8f, 46.4f, 89.0f) -val inverseOnSurfaceDark = hslColor(24f, 15.5f, 19.0f) -val inversePrimaryDark = hslColor(26.9f, 61.4f, 33.5f) -val surfaceDimDark = hslColor(25f, 31.6f, 7.5f) -val surfaceBrightDark = hslColor(22.5f, 14.0f, 22.4f) -val surfaceContainerLowestDark = hslColor(25f, 42.9f, 5.5f) -val surfaceContainerLowDark = hslColor(23.1f, 23.6f, 10.8f) -val surfaceContainerDark = hslColor(25.7f, 22.6f, 12.2f) -val surfaceContainerHighDark = hslColor(24f, 18.1f, 16.3f) -val surfaceContainerHighestDark = hslColor(24f, 14.3f, 20.6f) - -val primaryDarkMediumContrast = hslColor(24.2f, 100f, 85.9f) -val onPrimaryDarkMediumContrast = hslColor(26.7f, 100f, 12.4f) -val primaryContainerDarkMediumContrast = hslColor(25.7f, 50.6f, 53.9f) -val onPrimaryContainerDarkMediumContrast = hslColor(0f, 0f, 0f) -val secondaryDarkMediumContrast = hslColor(23.8f, 88.7f, 86.1f) -val onSecondaryDarkMediumContrast = hslColor(25.9f, 52.1f, 13.9f) -val secondaryContainerDarkMediumContrast = hslColor(24f, 24.7f, 56.3f) -val onSecondaryContainerDarkMediumContrast = hslColor(0f, 0f, 0f) -val tertiaryDarkMediumContrast = hslColor(63.3f, 47.0f, 77.1f) -val onTertiaryDarkMediumContrast = hslColor(64.9f, 86.0f, 8.4f) -val tertiaryContainerDarkMediumContrast = hslColor(63.7f, 19.8f, 48.4f) -val onTertiaryContainerDarkMediumContrast = hslColor(0f, 0f, 0f) -val errorDarkMediumContrast = hslColor(7.1f, 100f, 90f) -val onErrorDarkMediumContrast = hslColor(357.9f, 100f, 16.5f) -val errorContainerDarkMediumContrast = hslColor(3.6f, 100f, 64.3f) -val onErrorContainerDarkMediumContrast = hslColor(0f, 0f, 0f) -val backgroundDarkMediumContrast = hslColor(25f, 31.6f, 7.5f) -val onBackgroundDarkMediumContrast = hslColor(20.8f, 46.4f, 89.0f) -val surfaceDarkMediumContrast = hslColor(25f, 31.6f, 7.5f) -val onSurfaceDarkMediumContrast = hslColor(0f, 0f, 100f) -val surfaceVariantDarkMediumContrast = hslColor(23.5f, 16.3f, 27.6f) -val onSurfaceVariantDarkMediumContrast = hslColor(21.8f, 47.8f, 86.5f) -val outlineDarkMediumContrast = hslColor(22f, 19.5f, 69.8f) -val outlineVariantDarkMediumContrast = hslColor(23.6f, 12.6f, 56.5f) -val scrimDarkMediumContrast = hslColor(0f, 0f, 0f) -val inverseSurfaceDarkMediumContrast = hslColor(20.8f, 46.4f, 89.0f) -val inverseOnSurfaceDarkMediumContrast = hslColor(24f, 18.1f, 16.3f) -val inversePrimaryDarkMediumContrast = hslColor(27.9f, 80.5f, 24.1f) -val surfaceDimDarkMediumContrast = hslColor(25f, 31.6f, 7.5f) -val surfaceBrightDarkMediumContrast = hslColor(21.2f, 12.4f, 26.9f) -val surfaceContainerLowestDarkMediumContrast = hslColor(20f, 60f, 2.9f) -val surfaceContainerLowDarkMediumContrast = hslColor(25.7f, 24.1f, 11.4f) -val surfaceContainerDarkMediumContrast = hslColor(24f, 19.0f, 15.5f) -val surfaceContainerHighDarkMediumContrast = hslColor(24f, 14.9f, 19.8f) -val surfaceContainerHighestDarkMediumContrast = hslColor(24.7f, 13.8f, 24.1f) - -val primaryDarkHighContrast = hslColor(20.7f, 100f, 94.3f) -val onPrimaryDarkHighContrast = hslColor(0f, 0f, 0f) -val primaryContainerDarkHighContrast = hslColor(25.5f, 98.5f, 73.7f) -val onPrimaryContainerDarkHighContrast = hslColor(18.3f, 100f, 4.5f) -val secondaryDarkHighContrast = hslColor(20.7f, 100f, 94.3f) -val onSecondaryDarkHighContrast = hslColor(0f, 0f, 0f) -val secondaryContainerDarkHighContrast = hslColor(23.6f, 49.6f, 75.9f) -val onSecondaryContainerDarkHighContrast = hslColor(18.3f, 100f, 4.5f) -val tertiaryDarkHighContrast = hslColor(63.2f, 72.2f, 84.5f) -val onTertiaryDarkHighContrast = hslColor(0f, 0f, 0f) -val tertiaryContainerDarkHighContrast = hslColor(63.4f, 31.7f, 67.3f) -val onTertiaryContainerDarkHighContrast = hslColor(65f, 100f, 2.4f) -val errorDarkHighContrast = hslColor(8.2f, 100f, 95.7f) -val onErrorDarkHighContrast = hslColor(0f, 0f, 0f) -val errorContainerDarkHighContrast = hslColor(6.6f, 100f, 82.2f) -val onErrorContainerDarkHighContrast = hslColor(358.2f, 100f, 6.7f) -val backgroundDarkHighContrast = hslColor(25f, 31.6f, 7.5f) -val onBackgroundDarkHighContrast = hslColor(20.8f, 46.4f, 89.0f) -val surfaceDarkHighContrast = hslColor(25f, 31.6f, 7.5f) -val onSurfaceDarkHighContrast = hslColor(0f, 0f, 100f) -val surfaceVariantDarkHighContrast = hslColor(23.5f, 16.3f, 27.6f) -val onSurfaceVariantDarkHighContrast = hslColor(0f, 0f, 100f) -val outlineDarkHighContrast = hslColor(20.7f, 100f, 94.3f) -val outlineVariantDarkHighContrast = hslColor(23.2f, 25.6f, 76.3f) -val scrimDarkHighContrast = hslColor(0f, 0f, 0f) -val inverseSurfaceDarkHighContrast = hslColor(20.8f, 46.4f, 89.0f) -val inverseOnSurfaceDarkHighContrast = hslColor(0f, 0f, 0f) -val inversePrimaryDarkHighContrast = hslColor(27.9f, 80.5f, 24.1f) -val surfaceDimDarkHighContrast = hslColor(25f, 31.6f, 7.5f) -val surfaceBrightDarkHighContrast = hslColor(23.3f, 11.2f, 31.4f) -val surfaceContainerLowestDarkHighContrast = hslColor(0f, 0f, 0f) -val surfaceContainerLowDarkHighContrast = hslColor(25.7f, 22.6f, 12.2f) -val surfaceContainerDarkHighContrast = hslColor(24f, 15.5f, 19.0f) -val surfaceContainerHighDarkHighContrast = hslColor(22.5f, 13.6f, 23.1f) -val surfaceContainerHighestDarkHighContrast = hslColor(24.7f, 12.1f, 27.6f) +val primaryDark = hslColor(255f, 70f, 70f) +val onPrimaryDark = hslColor(255f, 60f, 12f) +val primaryContainerDark = hslColor(255f, 70f, 70f) +val onPrimaryContainerDark = hslColor(255f, 60f, 12f) +val secondaryDark = hslColor(255f, 40f, 40f) +val onSecondaryDark = hslColor(255f, 40f, 88f) +val secondaryContainerDark = hslColor(255f, 40f, 40f) +val onSecondaryContainerDark = hslColor(255f, 40f, 88f) +val tertiaryDark = hslColor(255f, 15f, 65f) +val onTertiaryDark = hslColor(255f, 15f, 12f) +val tertiaryContainerDark = hslColor(255f, 15f, 65.0f) +val onTertiaryContainerDark = hslColor(255f, 15f, 12f) +val errorDark = hslColor(7f, 100f, 84f) +val onErrorDark = hslColor(357f, 100f, 21f) +val errorContainerDark = hslColor(355f, 100f, 29f) +val onErrorContainerDark = hslColor(6f, 100f, 92f) +val backgroundDark = hslColor(255f, 60f, 8f) +val onBackgroundDark = hslColor(255f, 60f, 94f) +val surfaceDark = hslColor(255f, 40f, 12f) +val onSurfaceDark = hslColor(255f, 40f, 92f) +val surfaceContainerDark = hslColor(255f, 40f, 12f) \ No newline at end of file diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt index d99c74d4..743a907a 100644 --- a/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt +++ b/app-tv/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt @@ -5,50 +5,10 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme -import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext - -private val lightScheme = lightColorScheme( - primary = primaryLight, - onPrimary = onPrimaryLight, - primaryContainer = primaryContainerLight, - onPrimaryContainer = onPrimaryContainerLight, - secondary = secondaryLight, - onSecondary = onSecondaryLight, - secondaryContainer = secondaryContainerLight, - onSecondaryContainer = onSecondaryContainerLight, - tertiary = tertiaryLight, - onTertiary = onTertiaryLight, - tertiaryContainer = tertiaryContainerLight, - onTertiaryContainer = onTertiaryContainerLight, - error = errorLight, - onError = onErrorLight, - errorContainer = errorContainerLight, - onErrorContainer = onErrorContainerLight, - background = backgroundLight, - onBackground = onBackgroundLight, - surface = surfaceLight, - onSurface = onSurfaceLight, - surfaceVariant = surfaceVariantLight, - onSurfaceVariant = onSurfaceVariantLight, - outline = outlineLight, - outlineVariant = outlineVariantLight, - scrim = scrimLight, - inverseSurface = inverseSurfaceLight, - inverseOnSurface = inverseOnSurfaceLight, - inversePrimary = inversePrimaryLight, - surfaceDim = surfaceDimLight, - surfaceBright = surfaceBrightLight, - surfaceContainerLowest = surfaceContainerLowestLight, - surfaceContainerLow = surfaceContainerLowLight, - surfaceContainer = surfaceContainerLight, - surfaceContainerHigh = surfaceContainerHighLight, - surfaceContainerHighest = surfaceContainerHighestLight, -) - private val darkScheme = darkColorScheme( primary = primaryDark, onPrimary = onPrimaryDark, @@ -70,173 +30,7 @@ private val darkScheme = darkColorScheme( onBackground = onBackgroundDark, surface = surfaceDark, onSurface = onSurfaceDark, - surfaceVariant = surfaceVariantDark, - onSurfaceVariant = onSurfaceVariantDark, - outline = outlineDark, - outlineVariant = outlineVariantDark, - scrim = scrimDark, - inverseSurface = inverseSurfaceDark, - inverseOnSurface = inverseOnSurfaceDark, - inversePrimary = inversePrimaryDark, - surfaceDim = surfaceDimDark, - surfaceBright = surfaceBrightDark, - surfaceContainerLowest = surfaceContainerLowestDark, - surfaceContainerLow = surfaceContainerLowDark, - surfaceContainer = surfaceContainerDark, - surfaceContainerHigh = surfaceContainerHighDark, - surfaceContainerHighest = surfaceContainerHighestDark, -) - -private val mediumContrastLightColorScheme = lightColorScheme( - primary = primaryLightMediumContrast, - onPrimary = onPrimaryLightMediumContrast, - primaryContainer = primaryContainerLightMediumContrast, - onPrimaryContainer = onPrimaryContainerLightMediumContrast, - secondary = secondaryLightMediumContrast, - onSecondary = onSecondaryLightMediumContrast, - secondaryContainer = secondaryContainerLightMediumContrast, - onSecondaryContainer = onSecondaryContainerLightMediumContrast, - tertiary = tertiaryLightMediumContrast, - onTertiary = onTertiaryLightMediumContrast, - tertiaryContainer = tertiaryContainerLightMediumContrast, - onTertiaryContainer = onTertiaryContainerLightMediumContrast, - error = errorLightMediumContrast, - onError = onErrorLightMediumContrast, - errorContainer = errorContainerLightMediumContrast, - onErrorContainer = onErrorContainerLightMediumContrast, - background = backgroundLightMediumContrast, - onBackground = onBackgroundLightMediumContrast, - surface = surfaceLightMediumContrast, - onSurface = onSurfaceLightMediumContrast, - surfaceVariant = surfaceVariantLightMediumContrast, - onSurfaceVariant = onSurfaceVariantLightMediumContrast, - outline = outlineLightMediumContrast, - outlineVariant = outlineVariantLightMediumContrast, - scrim = scrimLightMediumContrast, - inverseSurface = inverseSurfaceLightMediumContrast, - inverseOnSurface = inverseOnSurfaceLightMediumContrast, - inversePrimary = inversePrimaryLightMediumContrast, - surfaceDim = surfaceDimLightMediumContrast, - surfaceBright = surfaceBrightLightMediumContrast, - surfaceContainerLowest = surfaceContainerLowestLightMediumContrast, - surfaceContainerLow = surfaceContainerLowLightMediumContrast, - surfaceContainer = surfaceContainerLightMediumContrast, - surfaceContainerHigh = surfaceContainerHighLightMediumContrast, - surfaceContainerHighest = surfaceContainerHighestLightMediumContrast, -) - -private val highContrastLightColorScheme = lightColorScheme( - primary = primaryLightHighContrast, - onPrimary = onPrimaryLightHighContrast, - primaryContainer = primaryContainerLightHighContrast, - onPrimaryContainer = onPrimaryContainerLightHighContrast, - secondary = secondaryLightHighContrast, - onSecondary = onSecondaryLightHighContrast, - secondaryContainer = secondaryContainerLightHighContrast, - onSecondaryContainer = onSecondaryContainerLightHighContrast, - tertiary = tertiaryLightHighContrast, - onTertiary = onTertiaryLightHighContrast, - tertiaryContainer = tertiaryContainerLightHighContrast, - onTertiaryContainer = onTertiaryContainerLightHighContrast, - error = errorLightHighContrast, - onError = onErrorLightHighContrast, - errorContainer = errorContainerLightHighContrast, - onErrorContainer = onErrorContainerLightHighContrast, - background = backgroundLightHighContrast, - onBackground = onBackgroundLightHighContrast, - surface = surfaceLightHighContrast, - onSurface = onSurfaceLightHighContrast, - surfaceVariant = surfaceVariantLightHighContrast, - onSurfaceVariant = onSurfaceVariantLightHighContrast, - outline = outlineLightHighContrast, - outlineVariant = outlineVariantLightHighContrast, - scrim = scrimLightHighContrast, - inverseSurface = inverseSurfaceLightHighContrast, - inverseOnSurface = inverseOnSurfaceLightHighContrast, - inversePrimary = inversePrimaryLightHighContrast, - surfaceDim = surfaceDimLightHighContrast, - surfaceBright = surfaceBrightLightHighContrast, - surfaceContainerLowest = surfaceContainerLowestLightHighContrast, - surfaceContainerLow = surfaceContainerLowLightHighContrast, - surfaceContainer = surfaceContainerLightHighContrast, - surfaceContainerHigh = surfaceContainerHighLightHighContrast, - surfaceContainerHighest = surfaceContainerHighestLightHighContrast, -) - -private val mediumContrastDarkColorScheme = darkColorScheme( - primary = primaryDarkMediumContrast, - onPrimary = onPrimaryDarkMediumContrast, - primaryContainer = primaryContainerDarkMediumContrast, - onPrimaryContainer = onPrimaryContainerDarkMediumContrast, - secondary = secondaryDarkMediumContrast, - onSecondary = onSecondaryDarkMediumContrast, - secondaryContainer = secondaryContainerDarkMediumContrast, - onSecondaryContainer = onSecondaryContainerDarkMediumContrast, - tertiary = tertiaryDarkMediumContrast, - onTertiary = onTertiaryDarkMediumContrast, - tertiaryContainer = tertiaryContainerDarkMediumContrast, - onTertiaryContainer = onTertiaryContainerDarkMediumContrast, - error = errorDarkMediumContrast, - onError = onErrorDarkMediumContrast, - errorContainer = errorContainerDarkMediumContrast, - onErrorContainer = onErrorContainerDarkMediumContrast, - background = backgroundDarkMediumContrast, - onBackground = onBackgroundDarkMediumContrast, - surface = surfaceDarkMediumContrast, - onSurface = onSurfaceDarkMediumContrast, - surfaceVariant = surfaceVariantDarkMediumContrast, - onSurfaceVariant = onSurfaceVariantDarkMediumContrast, - outline = outlineDarkMediumContrast, - outlineVariant = outlineVariantDarkMediumContrast, - scrim = scrimDarkMediumContrast, - inverseSurface = inverseSurfaceDarkMediumContrast, - inverseOnSurface = inverseOnSurfaceDarkMediumContrast, - inversePrimary = inversePrimaryDarkMediumContrast, - surfaceDim = surfaceDimDarkMediumContrast, - surfaceBright = surfaceBrightDarkMediumContrast, - surfaceContainerLowest = surfaceContainerLowestDarkMediumContrast, - surfaceContainerLow = surfaceContainerLowDarkMediumContrast, - surfaceContainer = surfaceContainerDarkMediumContrast, - surfaceContainerHigh = surfaceContainerHighDarkMediumContrast, - surfaceContainerHighest = surfaceContainerHighestDarkMediumContrast, -) - -private val highContrastDarkColorScheme = darkColorScheme( - primary = primaryDarkHighContrast, - onPrimary = onPrimaryDarkHighContrast, - primaryContainer = primaryContainerDarkHighContrast, - onPrimaryContainer = onPrimaryContainerDarkHighContrast, - secondary = secondaryDarkHighContrast, - onSecondary = onSecondaryDarkHighContrast, - secondaryContainer = secondaryContainerDarkHighContrast, - onSecondaryContainer = onSecondaryContainerDarkHighContrast, - tertiary = tertiaryDarkHighContrast, - onTertiary = onTertiaryDarkHighContrast, - tertiaryContainer = tertiaryContainerDarkHighContrast, - onTertiaryContainer = onTertiaryContainerDarkHighContrast, - error = errorDarkHighContrast, - onError = onErrorDarkHighContrast, - errorContainer = errorContainerDarkHighContrast, - onErrorContainer = onErrorContainerDarkHighContrast, - background = backgroundDarkHighContrast, - onBackground = onBackgroundDarkHighContrast, - surface = surfaceDarkHighContrast, - onSurface = onSurfaceDarkHighContrast, - surfaceVariant = surfaceVariantDarkHighContrast, - onSurfaceVariant = onSurfaceVariantDarkHighContrast, - outline = outlineDarkHighContrast, - outlineVariant = outlineVariantDarkHighContrast, - scrim = scrimDarkHighContrast, - inverseSurface = inverseSurfaceDarkHighContrast, - inverseOnSurface = inverseOnSurfaceDarkHighContrast, - inversePrimary = inversePrimaryDarkHighContrast, - surfaceDim = surfaceDimDarkHighContrast, - surfaceBright = surfaceBrightDarkHighContrast, - surfaceContainerLowest = surfaceContainerLowestDarkHighContrast, - surfaceContainerLow = surfaceContainerLowDarkHighContrast, - surfaceContainer = surfaceContainerDarkHighContrast, - surfaceContainerHigh = surfaceContainerHighDarkHighContrast, - surfaceContainerHighest = surfaceContainerHighestDarkHighContrast, + surfaceContainer = surfaceContainerDark ) @Immutable @@ -247,10 +41,6 @@ data class ColorFamily( val onColorContainer: Color ) -val unspecified_scheme = ColorFamily( - Color.Unspecified, Color.Unspecified, Color.Unspecified, Color.Unspecified -) - @Composable fun AppTheme( darkTheme: Boolean = isSystemInDarkTheme(), @@ -264,7 +54,7 @@ fun AppTheme( } darkTheme -> darkScheme - else -> lightScheme + else -> darkScheme } MaterialTheme(