implement DebugTheme and update system bar colors in MainActivity
This commit is contained in:
@@ -9,6 +9,7 @@ import eu.gaudian.translator.ui.theme.themes.CitrusSplashTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.CoffeeTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.CrimsonTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.CyberpunkTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.DebugTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.DefaultTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.ForestTheme
|
||||
import eu.gaudian.translator.ui.theme.themes.NordTheme
|
||||
@@ -113,6 +114,7 @@ val AllThemes = listOf(
|
||||
SpaceTheme,
|
||||
CyberpunkTheme,
|
||||
SynthwaveTheme,
|
||||
DebugTheme,
|
||||
|
||||
|
||||
)
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
@file:Suppress("HardCodedStringLiteral")
|
||||
|
||||
package eu.gaudian.translator.ui.theme.themes
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import eu.gaudian.translator.ui.theme.AppTheme
|
||||
import eu.gaudian.translator.ui.theme.ThemeColorSet
|
||||
|
||||
val DebugTheme = AppTheme(
|
||||
name = "Debug",
|
||||
lightColors = ThemeColorSet(
|
||||
// Primary: Bright Red
|
||||
primary = Color(0xFFFF0000),
|
||||
onPrimary = Color(0xFFFFFFFF),
|
||||
primaryContainer = Color(0xFFFFCCCC),
|
||||
onPrimaryContainer = Color(0xFF660000),
|
||||
|
||||
// Secondary: Bright Blue
|
||||
secondary = Color(0xFF0000FF),
|
||||
onSecondary = Color(0xFFFFFFFF),
|
||||
secondaryContainer = Color(0xFFCCCCFF),
|
||||
onSecondaryContainer = Color(0xFF000066),
|
||||
|
||||
// Tertiary: Bright Green
|
||||
tertiary = Color(0xFF00FF00),
|
||||
onTertiary = Color(0xFF000000),
|
||||
tertiaryContainer = Color(0xFFCCFFCC),
|
||||
onTertiaryContainer = Color(0xFF006600),
|
||||
|
||||
// Error: Standard Material Red
|
||||
error = Color(0xFFBA1A1A),
|
||||
onError = Color(0xFFFFFFFF),
|
||||
errorContainer = Color(0xFFFFDAD6),
|
||||
onErrorContainer = Color(0xFF410002),
|
||||
|
||||
// Background: Light Gray
|
||||
background = Color(0xFFF5F5F5),
|
||||
onBackground = Color(0xFF333333),
|
||||
|
||||
// Surface: White
|
||||
surface = Color(0xFFFFFFFF),
|
||||
onSurface = Color(0xFF333333),
|
||||
surfaceVariant = Color(0xFFE0E0E0),
|
||||
onSurfaceVariant = Color(0xFF666666),
|
||||
|
||||
// Outline
|
||||
outline = Color(0xFF999999),
|
||||
outlineVariant = Color(0xFFCCCCCC),
|
||||
|
||||
// Scrim
|
||||
scrim = Color(0xFF000000),
|
||||
|
||||
// Inverse colors
|
||||
inverseSurface = Color(0xFF333333),
|
||||
inverseOnSurface = Color(0xFFFFFFFF),
|
||||
inversePrimary = Color(0xFFFF6666),
|
||||
|
||||
// Surface containers
|
||||
surfaceDim = Color(0xFFE8E8E8),
|
||||
surfaceBright = Color(0xFFFFFFFF),
|
||||
surfaceContainerLowest = Color(0xFFFFFFFF),
|
||||
surfaceContainerLow = Color(0xFFEEEEEE),
|
||||
surfaceContainer = Color(0xFFF5F5F5),
|
||||
surfaceContainerHigh = Color(0xFFFAFAFA),
|
||||
surfaceContainerHighest = Color(0xFFFFFFFF)
|
||||
),
|
||||
darkColors = ThemeColorSet(
|
||||
// Primary: Bright Cyan
|
||||
primary = Color(0xFF00FFFF),
|
||||
onPrimary = Color(0xFF000000),
|
||||
primaryContainer = Color(0xFF66FFFF),
|
||||
onPrimaryContainer = Color(0xFF003333),
|
||||
|
||||
// Secondary: Bright Magenta
|
||||
secondary = Color(0xFFFF00FF),
|
||||
onSecondary = Color(0xFF000000),
|
||||
secondaryContainer = Color(0xFFFF66FF),
|
||||
onSecondaryContainer = Color(0xFF330033),
|
||||
|
||||
// Tertiary: Bright Yellow
|
||||
tertiary = Color(0xFFFFFF00),
|
||||
onTertiary = Color(0xFF000000),
|
||||
tertiaryContainer = Color(0xFFFFFF66),
|
||||
onTertiaryContainer = Color(0xFF333300),
|
||||
|
||||
// Error: Standard Material Red
|
||||
error = Color(0xFFFFB4AB),
|
||||
onError = Color(0xFF690005),
|
||||
errorContainer = Color(0xFF93000A),
|
||||
onErrorContainer = Color(0xFFFFDAD6),
|
||||
|
||||
// Background: Dark Gray
|
||||
background = Color(0xFF121212),
|
||||
onBackground = Color(0xFFE0E0E0),
|
||||
|
||||
// Surface: Dark Gray
|
||||
surface = Color(0xFF1E1E1E),
|
||||
onSurface = Color(0xFFE0E0E0),
|
||||
surfaceVariant = Color(0xFF2D2D2D),
|
||||
onSurfaceVariant = Color(0xFFB0B0B0),
|
||||
|
||||
// Outline
|
||||
outline = Color(0xFF555555),
|
||||
outlineVariant = Color(0xFF333333),
|
||||
|
||||
// Scrim
|
||||
scrim = Color(0xFF000000),
|
||||
|
||||
// Inverse colors
|
||||
inverseSurface = Color(0xFFE0E0E0),
|
||||
inverseOnSurface = Color(0xFF121212),
|
||||
inversePrimary = Color(0xFF006666),
|
||||
|
||||
// Surface containers
|
||||
surfaceDim = Color(0xFF121212),
|
||||
surfaceBright = Color(0xFF333333),
|
||||
surfaceContainerLowest = Color(0xFF0A0A0A),
|
||||
surfaceContainerLow = Color(0xFF181818),
|
||||
surfaceContainer = Color(0xFF1E1E1E),
|
||||
surfaceContainerHigh = Color(0xFF252525),
|
||||
surfaceContainerHighest = Color(0xFF2D2D2D)
|
||||
)
|
||||
)
|
||||
@@ -24,6 +24,7 @@ import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.material3.dynamicDarkColorScheme
|
||||
import androidx.compose.material3.dynamicLightColorScheme
|
||||
import androidx.compose.material3.surfaceColorAtElevation
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -35,12 +36,14 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.Font
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
@@ -56,6 +59,7 @@ import eu.gaudian.translator.MyApplication
|
||||
import eu.gaudian.translator.R
|
||||
import eu.gaudian.translator.ui.theme.AllFonts
|
||||
import eu.gaudian.translator.ui.theme.AllThemes
|
||||
import eu.gaudian.translator.ui.theme.ProvideSemanticColors
|
||||
import eu.gaudian.translator.ui.theme.buildColorScheme
|
||||
import eu.gaudian.translator.utils.Log
|
||||
import eu.gaudian.translator.utils.findActivity
|
||||
@@ -150,9 +154,6 @@ fun TranslatorApp(
|
||||
val activity = LocalContext.current.findActivity()
|
||||
val statusViewModel: StatusViewModel = hiltViewModel(activity)
|
||||
|
||||
|
||||
|
||||
|
||||
val navController = rememberNavController()
|
||||
val statusState by statusViewModel.status.collectAsStateWithLifecycle()
|
||||
val keyboardInsets = WindowInsets.ime
|
||||
@@ -357,9 +358,12 @@ private fun AppTheme(
|
||||
val window = (view.context as Activity).window
|
||||
val windowInsetsController = WindowInsetsControllerCompat(window, view)
|
||||
|
||||
//window.statusBarColor = android.graphics.Color.TRANSPARENT
|
||||
//window.navigationBarColor = android.graphics.Color.TRANSPARENT
|
||||
//TODO remove eventually
|
||||
// We must keep this for older Android version!!!
|
||||
@Suppress("DEPRECATION")
|
||||
window.statusBarColor = colorScheme.surface.toArgb()
|
||||
//Elevation must be the same as BottomNavigationBar
|
||||
@Suppress("DEPRECATION")
|
||||
window.navigationBarColor = colorScheme.surfaceColorAtElevation(8.dp).toArgb()
|
||||
|
||||
windowInsetsController.isAppearanceLightStatusBars = !useDarkTheme
|
||||
windowInsetsController.isAppearanceLightNavigationBars = !useDarkTheme
|
||||
@@ -400,7 +404,7 @@ private fun AppTheme(
|
||||
colorScheme = colorScheme,
|
||||
typography = dynamicTypography,
|
||||
) {
|
||||
eu.gaudian.translator.ui.theme.ProvideSemanticColors {
|
||||
ProvideSemanticColors {
|
||||
content()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user