package com.craigvg.lichun_android.ui.theme import android.app.Activity import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Typography import androidx.compose.material3.lightColorScheme import androidx.compose.material3.darkColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.SideEffect import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalView import androidx.core.view.WindowCompat private val LightColorScheme = lightColorScheme( primary = AppColors.primary, onPrimary = AppColors.primaryText, primaryContainer = AppColors.primary.copy(alpha = 0.12f), onPrimaryContainer = AppColors.primaryText, secondary = AppColors.secondary, onSecondary = AppColors.primaryText, secondaryContainer = AppColors.secondary.copy(alpha = 0.12f), onSecondaryContainer = AppColors.primaryText, tertiary = AppColors.accent, onTertiary = AppColors.primaryText, tertiaryContainer = AppColors.accent.copy(alpha = 0.12f), onTertiaryContainer = AppColors.primaryText, background = AppColors.background, onBackground = AppColors.primaryText, surface = AppColors.surfaceElevated, onSurface = AppColors.primaryText, surfaceVariant = AppColors.surfaceSubtle, onSurfaceVariant = AppColors.secondaryText, error = AppColors.error, onError = AppColors.primaryText, outline = AppColors.disabledText, outlineVariant = AppColors.disabledText.copy(alpha = 0.5f) ) private val DarkColorScheme = darkColorScheme( primary = AppColors.primary, onPrimary = AppColors.primaryTextDark, primaryContainer = AppColors.primary.copy(alpha = 0.24f), onPrimaryContainer = AppColors.primaryTextDark, secondary = AppColors.secondary, onSecondary = AppColors.primaryTextDark, secondaryContainer = AppColors.secondary.copy(alpha = 0.24f), onSecondaryContainer = AppColors.primaryTextDark, tertiary = AppColors.accent, onTertiary = AppColors.primaryTextDark, tertiaryContainer = AppColors.accent.copy(alpha = 0.24f), onTertiaryContainer = AppColors.primaryTextDark, background = AppColors.backgroundDark, onBackground = AppColors.primaryTextDark, surface = AppColors.surfaceElevatedDark, onSurface = AppColors.primaryTextDark, surfaceVariant = AppColors.surfaceElevatedDark, onSurfaceVariant = AppColors.secondaryTextDark, error = AppColors.error, onError = AppColors.primaryTextDark, outline = AppColors.secondaryTextDark, outlineVariant = AppColors.secondaryTextDark.copy(alpha = 0.5f) ) @Composable fun BaoLifeTheme( darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit ) { val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme val view = LocalView.current if (!view.isInEditMode) { SideEffect { (view.context as? Activity)?.window?.let { window -> window.statusBarColor = if (darkTheme) { AppColors.backgroundDark.toArgb() } else { AppColors.background.toArgb() } WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme } } } val typography = Typography( titleLarge = AppTypography.title, titleMedium = AppTypography.title2, headlineSmall = AppTypography.headline, bodyLarge = AppTypography.bodyBold, bodyMedium = AppTypography.body, labelLarge = AppTypography.captionBold, labelMedium = AppTypography.caption ) MaterialTheme( colorScheme = colorScheme, typography = typography, content = content ) }