Add Jellyfin blue Material Theme
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
package org.jellyfin.androidtv.ui.shared.theme
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
||||
// seed color: Jellyfin blue #00A4DC
|
||||
|
||||
val primaryLight = Color(0xFF1C6585)
|
||||
val onPrimaryLight = Color(0xFFFFFFFF)
|
||||
val primaryContainerLight = Color(0xFFC3E7FF)
|
||||
val onPrimaryContainerLight = Color(0xFF001E2C)
|
||||
val secondaryLight = Color(0xFF4E616D)
|
||||
val onSecondaryLight = Color(0xFFFFFFFF)
|
||||
val secondaryContainerLight = Color(0xFFD1E5F4)
|
||||
val onSecondaryContainerLight = Color(0xFF0A1E28)
|
||||
val tertiaryLight = Color(0xFF605A7D)
|
||||
val onTertiaryLight = Color(0xFFFFFFFF)
|
||||
val tertiaryContainerLight = Color(0xFFE6DEFF)
|
||||
val onTertiaryContainerLight = Color(0xFF1D1736)
|
||||
val errorLight = Color(0xFFBA1A1A)
|
||||
val onErrorLight = Color(0xFFFFFFFF)
|
||||
val errorContainerLight = Color(0xFFFFDAD6)
|
||||
val onErrorContainerLight = Color(0xFF410002)
|
||||
val backgroundLight = Color(0xFFF6FAFE)
|
||||
val onBackgroundLight = Color(0xFF181C1F)
|
||||
val surfaceLight = Color(0xFFF6FAFE)
|
||||
val onSurfaceLight = Color(0xFF181C1F)
|
||||
val surfaceVariantLight = Color(0xFFDCE3E9)
|
||||
val onSurfaceVariantLight = Color(0xFF41484D)
|
||||
val scrimLight = Color(0xFF000000)
|
||||
val inverseSurfaceLight = Color(0xFF2C3134)
|
||||
val inverseOnSurfaceLight = Color(0xFFEDF1F5)
|
||||
val inversePrimaryLight = Color(0xFF8FCEF3)
|
||||
|
||||
val primaryLightMediumContrast = Color(0xFF004863)
|
||||
val onPrimaryLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val primaryContainerLightMediumContrast = Color(0xFF397B9D)
|
||||
val onPrimaryContainerLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val secondaryLightMediumContrast = Color(0xFF334551)
|
||||
val onSecondaryLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val secondaryContainerLightMediumContrast = Color(0xFF647784)
|
||||
val onSecondaryContainerLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val tertiaryLightMediumContrast = Color(0xFF443E5F)
|
||||
val onTertiaryLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val tertiaryContainerLightMediumContrast = Color(0xFF777094)
|
||||
val onTertiaryContainerLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val errorLightMediumContrast = Color(0xFF8C0009)
|
||||
val onErrorLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val errorContainerLightMediumContrast = Color(0xFFDA342E)
|
||||
val onErrorContainerLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val backgroundLightMediumContrast = Color(0xFFF6FAFE)
|
||||
val onBackgroundLightMediumContrast = Color(0xFF181C1F)
|
||||
val surfaceLightMediumContrast = Color(0xFFF6FAFE)
|
||||
val onSurfaceLightMediumContrast = Color(0xFF181C1F)
|
||||
val surfaceVariantLightMediumContrast = Color(0xFFDCE3E9)
|
||||
val onSurfaceVariantLightMediumContrast = Color(0xFF3D4449)
|
||||
val scrimLightMediumContrast = Color(0xFF000000)
|
||||
val inverseSurfaceLightMediumContrast = Color(0xFF2C3134)
|
||||
val inverseOnSurfaceLightMediumContrast = Color(0xFFEDF1F5)
|
||||
val inversePrimaryLightMediumContrast = Color(0xFF8FCEF3)
|
||||
|
||||
val primaryLightHighContrast = Color(0xFF002535)
|
||||
val onPrimaryLightHighContrast = Color(0xFFFFFFFF)
|
||||
val primaryContainerLightHighContrast = Color(0xFF004863)
|
||||
val onPrimaryContainerLightHighContrast = Color(0xFFFFFFFF)
|
||||
val secondaryLightHighContrast = Color(0xFF11242F)
|
||||
val onSecondaryLightHighContrast = Color(0xFFFFFFFF)
|
||||
val secondaryContainerLightHighContrast = Color(0xFF334551)
|
||||
val onSecondaryContainerLightHighContrast = Color(0xFFFFFFFF)
|
||||
val tertiaryLightHighContrast = Color(0xFF231E3D)
|
||||
val onTertiaryLightHighContrast = Color(0xFFFFFFFF)
|
||||
val tertiaryContainerLightHighContrast = Color(0xFF443E5F)
|
||||
val onTertiaryContainerLightHighContrast = Color(0xFFFFFFFF)
|
||||
val errorLightHighContrast = Color(0xFF4E0002)
|
||||
val onErrorLightHighContrast = Color(0xFFFFFFFF)
|
||||
val errorContainerLightHighContrast = Color(0xFF8C0009)
|
||||
val onErrorContainerLightHighContrast = Color(0xFFFFFFFF)
|
||||
val backgroundLightHighContrast = Color(0xFFF6FAFE)
|
||||
val onBackgroundLightHighContrast = Color(0xFF181C1F)
|
||||
val surfaceLightHighContrast = Color(0xFFF6FAFE)
|
||||
val onSurfaceLightHighContrast = Color(0xFF000000)
|
||||
val surfaceVariantLightHighContrast = Color(0xFFDCE3E9)
|
||||
val onSurfaceVariantLightHighContrast = Color(0xFF1E2529)
|
||||
val scrimLightHighContrast = Color(0xFF000000)
|
||||
val inverseSurfaceLightHighContrast = Color(0xFF2C3134)
|
||||
val inverseOnSurfaceLightHighContrast = Color(0xFFFFFFFF)
|
||||
val inversePrimaryLightHighContrast = Color(0xFFD9EFFF)
|
||||
|
||||
val primaryDark = Color(0xFF8FCEF3)
|
||||
val onPrimaryDark = Color(0xFF003549)
|
||||
val primaryContainerDark = Color(0xFF004C69)
|
||||
val onPrimaryContainerDark = Color(0xFFC3E7FF)
|
||||
val secondaryDark = Color(0xFFB5C9D7)
|
||||
val onSecondaryDark = Color(0xFF20333E)
|
||||
val secondaryContainerDark = Color(0xFF364955)
|
||||
val onSecondaryContainerDark = Color(0xFFD1E5F4)
|
||||
val tertiaryDark = Color(0xFFCAC1EA)
|
||||
val onTertiaryDark = Color(0xFF322C4C)
|
||||
val tertiaryContainerDark = Color(0xFF484264)
|
||||
val onTertiaryContainerDark = Color(0xFFE6DEFF)
|
||||
val errorDark = Color(0xFFFFB4AB)
|
||||
val onErrorDark = Color(0xFF690005)
|
||||
val errorContainerDark = Color(0xFF93000A)
|
||||
val onErrorContainerDark = Color(0xFFFFDAD6)
|
||||
val backgroundDark = Color(0xFF0F1417)
|
||||
val onBackgroundDark = Color(0xFFDFE3E7)
|
||||
val surfaceDark = Color(0xFF0F1417)
|
||||
val onSurfaceDark = Color(0xFFDFE3E7)
|
||||
val surfaceVariantDark = Color(0xFF41484D)
|
||||
val onSurfaceVariantDark = Color(0xFFC0C7CD)
|
||||
val scrimDark = Color(0xFF000000)
|
||||
val inverseSurfaceDark = Color(0xFFDFE3E7)
|
||||
val inverseOnSurfaceDark = Color(0xFF2C3134)
|
||||
val inversePrimaryDark = Color(0xFF1C6585)
|
||||
|
||||
val primaryDarkMediumContrast = Color(0xFF94D3F8)
|
||||
val onPrimaryDarkMediumContrast = Color(0xFF001925)
|
||||
val primaryContainerDarkMediumContrast = Color(0xFF5898BB)
|
||||
val onPrimaryContainerDarkMediumContrast = Color(0xFF000000)
|
||||
val secondaryDarkMediumContrast = Color(0xFFBACEDC)
|
||||
val onSecondaryDarkMediumContrast = Color(0xFF041822)
|
||||
val secondaryContainerDarkMediumContrast = Color(0xFF8093A0)
|
||||
val onSecondaryContainerDarkMediumContrast = Color(0xFF000000)
|
||||
val tertiaryDarkMediumContrast = Color(0xFFCEC5EE)
|
||||
val onTertiaryDarkMediumContrast = Color(0xFF171130)
|
||||
val tertiaryContainerDarkMediumContrast = Color(0xFF938CB1)
|
||||
val onTertiaryContainerDarkMediumContrast = Color(0xFF000000)
|
||||
val errorDarkMediumContrast = Color(0xFFFFBAB1)
|
||||
val onErrorDarkMediumContrast = Color(0xFF370001)
|
||||
val errorContainerDarkMediumContrast = Color(0xFFFF5449)
|
||||
val onErrorContainerDarkMediumContrast = Color(0xFF000000)
|
||||
val backgroundDarkMediumContrast = Color(0xFF0F1417)
|
||||
val onBackgroundDarkMediumContrast = Color(0xFFDFE3E7)
|
||||
val surfaceDarkMediumContrast = Color(0xFF0F1417)
|
||||
val onSurfaceDarkMediumContrast = Color(0xFFF8FBFF)
|
||||
val surfaceVariantDarkMediumContrast = Color(0xFF41484D)
|
||||
val onSurfaceVariantDarkMediumContrast = Color(0xFFC5CCD2)
|
||||
val scrimDarkMediumContrast = Color(0xFF000000)
|
||||
val inverseSurfaceDarkMediumContrast = Color(0xFFDFE3E7)
|
||||
val inverseOnSurfaceDarkMediumContrast = Color(0xFF262B2E)
|
||||
val inversePrimaryDarkMediumContrast = Color(0xFF004E6A)
|
||||
|
||||
val primaryDarkHighContrast = Color(0xFFF8FBFF)
|
||||
val onPrimaryDarkHighContrast = Color(0xFF000000)
|
||||
val primaryContainerDarkHighContrast = Color(0xFF94D3F8)
|
||||
val onPrimaryContainerDarkHighContrast = Color(0xFF000000)
|
||||
val secondaryDarkHighContrast = Color(0xFFF8FBFF)
|
||||
val onSecondaryDarkHighContrast = Color(0xFF000000)
|
||||
val secondaryContainerDarkHighContrast = Color(0xFFBACEDC)
|
||||
val onSecondaryContainerDarkHighContrast = Color(0xFF000000)
|
||||
val tertiaryDarkHighContrast = Color(0xFFFEF9FF)
|
||||
val onTertiaryDarkHighContrast = Color(0xFF000000)
|
||||
val tertiaryContainerDarkHighContrast = Color(0xFFCEC5EE)
|
||||
val onTertiaryContainerDarkHighContrast = Color(0xFF000000)
|
||||
val errorDarkHighContrast = Color(0xFFFFF9F9)
|
||||
val onErrorDarkHighContrast = Color(0xFF000000)
|
||||
val errorContainerDarkHighContrast = Color(0xFFFFBAB1)
|
||||
val onErrorContainerDarkHighContrast = Color(0xFF000000)
|
||||
val backgroundDarkHighContrast = Color(0xFF0F1417)
|
||||
val onBackgroundDarkHighContrast = Color(0xFFDFE3E7)
|
||||
val surfaceDarkHighContrast = Color(0xFF0F1417)
|
||||
val onSurfaceDarkHighContrast = Color(0xFFFFFFFF)
|
||||
val surfaceVariantDarkHighContrast = Color(0xFF41484D)
|
||||
val onSurfaceVariantDarkHighContrast = Color(0xFFF8FBFF)
|
||||
val scrimDarkHighContrast = Color(0xFF000000)
|
||||
val inverseSurfaceDarkHighContrast = Color(0xFFDFE3E7)
|
||||
val inverseOnSurfaceDarkHighContrast = Color(0xFF000000)
|
||||
val inversePrimaryDarkHighContrast = Color(0xFF002E40)
|
||||
|
||||
val customColorLight = Color(0xFF3A608F)
|
||||
val onCustomColorLight = Color(0xFFFFFFFF)
|
||||
val customColorContainerLight = Color(0xFFD3E3FF)
|
||||
val onCustomColorContainerLight = Color(0xFF001C39)
|
||||
|
||||
val customColorLightMediumContrast = Color(0xFF1B4472)
|
||||
val onCustomColorLightMediumContrast = Color(0xFFFFFFFF)
|
||||
val customColorContainerLightMediumContrast = Color(0xFF5276A7)
|
||||
val onCustomColorContainerLightMediumContrast = Color(0xFFFFFFFF)
|
||||
|
||||
val customColorLightHighContrast = Color(0xFF002344)
|
||||
val onCustomColorLightHighContrast = Color(0xFFFFFFFF)
|
||||
val customColorContainerLightHighContrast = Color(0xFF1B4472)
|
||||
val onCustomColorContainerLightHighContrast = Color(0xFFFFFFFF)
|
||||
|
||||
val customColorDark = Color(0xFFA4C9FE)
|
||||
val onCustomColorDark = Color(0xFF00315D)
|
||||
val customColorContainerDark = Color(0xFF204876)
|
||||
val onCustomColorContainerDark = Color(0xFFD3E3FF)
|
||||
|
||||
val customColorDarkMediumContrast = Color(0xFFABCDFF)
|
||||
val onCustomColorDarkMediumContrast = Color(0xFF001730)
|
||||
val customColorContainerDarkMediumContrast = Color(0xFF6E93C5)
|
||||
val onCustomColorContainerDarkMediumContrast = Color(0xFF000000)
|
||||
|
||||
val customColorDarkHighContrast = Color(0xFFFBFAFF)
|
||||
val onCustomColorDarkHighContrast = Color(0xFF000000)
|
||||
val customColorContainerDarkHighContrast = Color(0xFFABCDFF)
|
||||
val onCustomColorContainerDarkHighContrast = Color(0xFF000000)
|
||||
@@ -0,0 +1,282 @@
|
||||
package org.jellyfin.androidtv.ui.shared.theme
|
||||
|
||||
import android.app.Activity
|
||||
import androidx.tv.material3.MaterialTheme
|
||||
import androidx.tv.material3.lightColorScheme
|
||||
import androidx.tv.material3.darkColorScheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.SideEffect
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.core.view.WindowCompat
|
||||
|
||||
@Immutable
|
||||
data class ExtendedColorScheme(
|
||||
val customColor: ColorFamily,
|
||||
)
|
||||
|
||||
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,
|
||||
scrim = scrimLight,
|
||||
inverseSurface = inverseSurfaceLight,
|
||||
inverseOnSurface = inverseOnSurfaceLight,
|
||||
inversePrimary = inversePrimaryLight
|
||||
)
|
||||
|
||||
private val darkScheme = darkColorScheme(
|
||||
primary = primaryDark,
|
||||
onPrimary = onPrimaryDark,
|
||||
primaryContainer = primaryContainerDark,
|
||||
onPrimaryContainer = onPrimaryContainerDark,
|
||||
secondary = secondaryDark,
|
||||
onSecondary = onSecondaryDark,
|
||||
secondaryContainer = secondaryContainerDark,
|
||||
onSecondaryContainer = onSecondaryContainerDark,
|
||||
tertiary = tertiaryDark,
|
||||
onTertiary = onTertiaryDark,
|
||||
tertiaryContainer = tertiaryContainerDark,
|
||||
onTertiaryContainer = onTertiaryContainerDark,
|
||||
error = errorDark,
|
||||
onError = onErrorDark,
|
||||
errorContainer = errorContainerDark,
|
||||
onErrorContainer = onErrorContainerDark,
|
||||
background = backgroundDark,
|
||||
onBackground = onBackgroundDark,
|
||||
surface = surfaceDark,
|
||||
onSurface = onSurfaceDark,
|
||||
surfaceVariant = surfaceVariantDark,
|
||||
onSurfaceVariant = onSurfaceVariantDark,
|
||||
scrim = scrimDark,
|
||||
inverseSurface = inverseSurfaceDark,
|
||||
inverseOnSurface = inverseOnSurfaceDark,
|
||||
inversePrimary = inversePrimaryDark
|
||||
)
|
||||
|
||||
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,
|
||||
scrim = scrimLightMediumContrast,
|
||||
inverseSurface = inverseSurfaceLightMediumContrast,
|
||||
inverseOnSurface = inverseOnSurfaceLightMediumContrast,
|
||||
inversePrimary = inversePrimaryLightMediumContrast
|
||||
)
|
||||
|
||||
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,
|
||||
scrim = scrimLightHighContrast,
|
||||
inverseSurface = inverseSurfaceLightHighContrast,
|
||||
inverseOnSurface = inverseOnSurfaceLightHighContrast,
|
||||
inversePrimary = inversePrimaryLightHighContrast
|
||||
)
|
||||
|
||||
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,
|
||||
scrim = scrimDarkMediumContrast,
|
||||
inverseSurface = inverseSurfaceDarkMediumContrast,
|
||||
inverseOnSurface = inverseOnSurfaceDarkMediumContrast,
|
||||
inversePrimary = inversePrimaryDarkMediumContrast
|
||||
)
|
||||
|
||||
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,
|
||||
scrim = scrimDarkHighContrast,
|
||||
inverseSurface = inverseSurfaceDarkHighContrast,
|
||||
inverseOnSurface = inverseOnSurfaceDarkHighContrast,
|
||||
inversePrimary = inversePrimaryDarkHighContrast
|
||||
)
|
||||
|
||||
val extendedLight = ExtendedColorScheme(
|
||||
customColor = ColorFamily(
|
||||
customColorLight,
|
||||
onCustomColorLight,
|
||||
customColorContainerLight,
|
||||
onCustomColorContainerLight,
|
||||
),
|
||||
)
|
||||
|
||||
val extendedDark = ExtendedColorScheme(
|
||||
customColor = ColorFamily(
|
||||
customColorDark,
|
||||
onCustomColorDark,
|
||||
customColorContainerDark,
|
||||
onCustomColorContainerDark,
|
||||
),
|
||||
)
|
||||
|
||||
val extendedLightMediumContrast = ExtendedColorScheme(
|
||||
customColor = ColorFamily(
|
||||
customColorLightMediumContrast,
|
||||
onCustomColorLightMediumContrast,
|
||||
customColorContainerLightMediumContrast,
|
||||
onCustomColorContainerLightMediumContrast,
|
||||
),
|
||||
)
|
||||
|
||||
val extendedLightHighContrast = ExtendedColorScheme(
|
||||
customColor = ColorFamily(
|
||||
customColorLightHighContrast,
|
||||
onCustomColorLightHighContrast,
|
||||
customColorContainerLightHighContrast,
|
||||
onCustomColorContainerLightHighContrast,
|
||||
),
|
||||
)
|
||||
|
||||
val extendedDarkMediumContrast = ExtendedColorScheme(
|
||||
customColor = ColorFamily(
|
||||
customColorDarkMediumContrast,
|
||||
onCustomColorDarkMediumContrast,
|
||||
customColorContainerDarkMediumContrast,
|
||||
onCustomColorContainerDarkMediumContrast,
|
||||
),
|
||||
)
|
||||
|
||||
val extendedDarkHighContrast = ExtendedColorScheme(
|
||||
customColor = ColorFamily(
|
||||
customColorDarkHighContrast,
|
||||
onCustomColorDarkHighContrast,
|
||||
customColorContainerDarkHighContrast,
|
||||
onCustomColorContainerDarkHighContrast,
|
||||
),
|
||||
)
|
||||
|
||||
@Immutable
|
||||
data class ColorFamily(
|
||||
val color: Color,
|
||||
val onColor: Color,
|
||||
val colorContainer: Color,
|
||||
val onColorContainer: Color
|
||||
)
|
||||
|
||||
val unspecified_scheme = ColorFamily(
|
||||
Color.Unspecified, Color.Unspecified, Color.Unspecified, Color.Unspecified
|
||||
)
|
||||
|
||||
@Composable
|
||||
fun JellyfinMaterialTheme(
|
||||
darkTheme: Boolean = true,
|
||||
content: @Composable() () -> Unit
|
||||
) {
|
||||
val colorScheme = when {
|
||||
darkTheme -> darkScheme
|
||||
else -> lightScheme
|
||||
}
|
||||
val view = LocalView.current
|
||||
if (!view.isInEditMode) {
|
||||
SideEffect {
|
||||
val window = (view.context as Activity).window
|
||||
window.statusBarColor = colorScheme.primary.toArgb()
|
||||
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme
|
||||
}
|
||||
}
|
||||
|
||||
MaterialTheme(
|
||||
colorScheme = colorScheme,
|
||||
content = content
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user