diff options
| author | 2023-05-19 16:07:46 +0000 | |
|---|---|---|
| committer | 2023-05-19 16:07:46 +0000 | |
| commit | 137c193dfc1cd11ba6e8e5f29b330b74b7fd8448 (patch) | |
| tree | 4e554bd66333df521e73bd9498c88aaba4a1a016 | |
| parent | be1503601dab692255ac42131bd1be9180619f8a (diff) | |
| parent | e8963ae8e5404a009a3e6d98b6e5f825b0fccd81 (diff) | |
Merge "Define the Compose MaterialTheme for SystemUI" into udc-dev
6 files changed, 98 insertions, 45 deletions
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/PlatformButtons.kt b/packages/SystemUI/compose/core/src/com/android/compose/PlatformButtons.kt index d1ee18adaf6e..25269dc0d7d8 100644 --- a/packages/SystemUI/compose/core/src/com/android/compose/PlatformButtons.kt +++ b/packages/SystemUI/compose/core/src/com/android/compose/PlatformButtons.kt @@ -85,7 +85,7 @@ private val ButtonPaddings = PaddingValues(horizontal = 16.dp, vertical = 8.dp) @Composable private fun filledButtonColors(): ButtonColors { - val colors = LocalAndroidColorScheme.current + val colors = LocalAndroidColorScheme.current.deprecated return ButtonDefaults.buttonColors( containerColor = colors.colorAccentPrimary, contentColor = colors.textColorOnAccent, @@ -94,7 +94,7 @@ private fun filledButtonColors(): ButtonColors { @Composable private fun outlineButtonColors(): ButtonColors { - val colors = LocalAndroidColorScheme.current + val colors = LocalAndroidColorScheme.current.deprecated return ButtonDefaults.outlinedButtonColors( contentColor = colors.textColorPrimary, ) @@ -102,7 +102,7 @@ private fun outlineButtonColors(): ButtonColors { @Composable private fun outlineButtonBorder(): BorderStroke { - val colors = LocalAndroidColorScheme.current + val colors = LocalAndroidColorScheme.current.deprecated return BorderStroke( width = 1.dp, color = colors.colorAccentPrimaryVariant, diff --git a/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt b/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt index 4f1657faddee..1d6f813cfbdf 100644 --- a/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt +++ b/packages/SystemUI/compose/core/src/com/android/compose/theme/AndroidColorScheme.kt @@ -37,33 +37,83 @@ val LocalAndroidColorScheme = * Important: Use M3 colors from MaterialTheme.colorScheme whenever possible instead. In the future, * most of the colors in this class will be removed in favor of their M3 counterpart. */ -class AndroidColorScheme internal constructor(context: Context) { - val colorPrimary = getColor(context, R.attr.colorPrimary) - val colorPrimaryDark = getColor(context, R.attr.colorPrimaryDark) - val colorAccent = getColor(context, R.attr.colorAccent) - val colorAccentPrimary = getColor(context, R.attr.colorAccentPrimary) - val colorAccentSecondary = getColor(context, R.attr.colorAccentSecondary) - val colorAccentTertiary = getColor(context, R.attr.colorAccentTertiary) - val colorAccentPrimaryVariant = getColor(context, R.attr.colorAccentPrimaryVariant) - val colorAccentSecondaryVariant = getColor(context, R.attr.colorAccentSecondaryVariant) - val colorAccentTertiaryVariant = getColor(context, R.attr.colorAccentTertiaryVariant) - val colorSurface = getColor(context, R.attr.colorSurface) - val colorSurfaceHighlight = getColor(context, R.attr.colorSurfaceHighlight) - val colorSurfaceVariant = getColor(context, R.attr.colorSurfaceVariant) - val colorSurfaceHeader = getColor(context, R.attr.colorSurfaceHeader) - val colorError = getColor(context, R.attr.colorError) - val colorBackground = getColor(context, R.attr.colorBackground) - val colorBackgroundFloating = getColor(context, R.attr.colorBackgroundFloating) - val panelColorBackground = getColor(context, R.attr.panelColorBackground) - val textColorPrimary = getColor(context, R.attr.textColorPrimary) - val textColorSecondary = getColor(context, R.attr.textColorSecondary) - val textColorTertiary = getColor(context, R.attr.textColorTertiary) - val textColorPrimaryInverse = getColor(context, R.attr.textColorPrimaryInverse) - val textColorSecondaryInverse = getColor(context, R.attr.textColorSecondaryInverse) - val textColorTertiaryInverse = getColor(context, R.attr.textColorTertiaryInverse) - val textColorOnAccent = getColor(context, R.attr.textColorOnAccent) - val colorForeground = getColor(context, R.attr.colorForeground) - val colorForegroundInverse = getColor(context, R.attr.colorForegroundInverse) +class AndroidColorScheme(context: Context) { + val onSecondaryFixedVariant = getColor(context, R.attr.materialColorOnSecondaryFixedVariant) + val onTertiaryFixedVariant = getColor(context, R.attr.materialColorOnTertiaryFixedVariant) + val surfaceContainerLowest = getColor(context, R.attr.materialColorSurfaceContainerLowest) + val onPrimaryFixedVariant = getColor(context, R.attr.materialColorOnPrimaryFixedVariant) + val onSecondaryContainer = getColor(context, R.attr.materialColorOnSecondaryContainer) + val onTertiaryContainer = getColor(context, R.attr.materialColorOnTertiaryContainer) + val surfaceContainerLow = getColor(context, R.attr.materialColorSurfaceContainerLow) + val onPrimaryContainer = getColor(context, R.attr.materialColorOnPrimaryContainer) + val secondaryFixedDim = getColor(context, R.attr.materialColorSecondaryFixedDim) + val onErrorContainer = getColor(context, R.attr.materialColorOnErrorContainer) + val onSecondaryFixed = getColor(context, R.attr.materialColorOnSecondaryFixed) + val onSurfaceInverse = getColor(context, R.attr.materialColorOnSurfaceInverse) + val tertiaryFixedDim = getColor(context, R.attr.materialColorTertiaryFixedDim) + val onTertiaryFixed = getColor(context, R.attr.materialColorOnTertiaryFixed) + val primaryFixedDim = getColor(context, R.attr.materialColorPrimaryFixedDim) + val secondaryContainer = getColor(context, R.attr.materialColorSecondaryContainer) + val errorContainer = getColor(context, R.attr.materialColorErrorContainer) + val onPrimaryFixed = getColor(context, R.attr.materialColorOnPrimaryFixed) + val primaryInverse = getColor(context, R.attr.materialColorPrimaryInverse) + val secondaryFixed = getColor(context, R.attr.materialColorSecondaryFixed) + val surfaceInverse = getColor(context, R.attr.materialColorSurfaceInverse) + val surfaceVariant = getColor(context, R.attr.materialColorSurfaceVariant) + val tertiaryContainer = getColor(context, R.attr.materialColorTertiaryContainer) + val tertiaryFixed = getColor(context, R.attr.materialColorTertiaryFixed) + val primaryContainer = getColor(context, R.attr.materialColorPrimaryContainer) + val onBackground = getColor(context, R.attr.materialColorOnBackground) + val primaryFixed = getColor(context, R.attr.materialColorPrimaryFixed) + val onSecondary = getColor(context, R.attr.materialColorOnSecondary) + val onTertiary = getColor(context, R.attr.materialColorOnTertiary) + val surfaceDim = getColor(context, R.attr.materialColorSurfaceDim) + val surfaceBright = getColor(context, R.attr.materialColorSurfaceBright) + val onError = getColor(context, R.attr.materialColorOnError) + val surface = getColor(context, R.attr.materialColorSurface) + val surfaceContainerHigh = getColor(context, R.attr.materialColorSurfaceContainerHigh) + val surfaceContainerHighest = getColor(context, R.attr.materialColorSurfaceContainerHighest) + val onSurfaceVariant = getColor(context, R.attr.materialColorOnSurfaceVariant) + val outline = getColor(context, R.attr.materialColorOutline) + val outlineVariant = getColor(context, R.attr.materialColorOutlineVariant) + val onPrimary = getColor(context, R.attr.materialColorOnPrimary) + val onSurface = getColor(context, R.attr.materialColorOnSurface) + val surfaceContainer = getColor(context, R.attr.materialColorSurfaceContainer) + val primary = getColor(context, R.attr.materialColorPrimary) + val secondary = getColor(context, R.attr.materialColorSecondary) + val tertiary = getColor(context, R.attr.materialColorTertiary) + + @Deprecated("Use the new android tokens: go/sysui-colors") + val deprecated = DeprecatedValues(context) + + class DeprecatedValues(context: Context) { + val colorPrimary = getColor(context, R.attr.colorPrimary) + val colorPrimaryDark = getColor(context, R.attr.colorPrimaryDark) + val colorAccent = getColor(context, R.attr.colorAccent) + val colorAccentPrimary = getColor(context, R.attr.colorAccentPrimary) + val colorAccentSecondary = getColor(context, R.attr.colorAccentSecondary) + val colorAccentTertiary = getColor(context, R.attr.colorAccentTertiary) + val colorAccentPrimaryVariant = getColor(context, R.attr.colorAccentPrimaryVariant) + val colorAccentSecondaryVariant = getColor(context, R.attr.colorAccentSecondaryVariant) + val colorAccentTertiaryVariant = getColor(context, R.attr.colorAccentTertiaryVariant) + val colorSurface = getColor(context, R.attr.colorSurface) + val colorSurfaceHighlight = getColor(context, R.attr.colorSurfaceHighlight) + val colorSurfaceVariant = getColor(context, R.attr.colorSurfaceVariant) + val colorSurfaceHeader = getColor(context, R.attr.colorSurfaceHeader) + val colorError = getColor(context, R.attr.colorError) + val colorBackground = getColor(context, R.attr.colorBackground) + val colorBackgroundFloating = getColor(context, R.attr.colorBackgroundFloating) + val panelColorBackground = getColor(context, R.attr.panelColorBackground) + val textColorPrimary = getColor(context, R.attr.textColorPrimary) + val textColorSecondary = getColor(context, R.attr.textColorSecondary) + val textColorTertiary = getColor(context, R.attr.textColorTertiary) + val textColorPrimaryInverse = getColor(context, R.attr.textColorPrimaryInverse) + val textColorSecondaryInverse = getColor(context, R.attr.textColorSecondaryInverse) + val textColorTertiaryInverse = getColor(context, R.attr.textColorTertiaryInverse) + val textColorOnAccent = getColor(context, R.attr.textColorOnAccent) + val colorForeground = getColor(context, R.attr.colorForeground) + val colorForegroundInverse = getColor(context, R.attr.colorForegroundInverse) + } companion object { fun getColor(context: Context, attr: Int): Color { diff --git a/packages/SystemUI/compose/core/tests/src/com/android/compose/theme/SystemUIThemeTest.kt b/packages/SystemUI/compose/core/tests/src/com/android/compose/theme/SystemUIThemeTest.kt index 9bc68564de90..fe340174d56b 100644 --- a/packages/SystemUI/compose/core/tests/src/com/android/compose/theme/SystemUIThemeTest.kt +++ b/packages/SystemUI/compose/core/tests/src/com/android/compose/theme/SystemUIThemeTest.kt @@ -40,7 +40,9 @@ class SystemUIThemeTest { @Test fun testAndroidColorsAreAvailableInsideTheme() { composeRule.setContent { - PlatformTheme { Text("foo", color = LocalAndroidColorScheme.current.colorAccent) } + PlatformTheme { + Text("foo", color = LocalAndroidColorScheme.current.deprecated.colorAccent) + } } composeRule.onNodeWithText("foo").assertIsDisplayed() @@ -50,7 +52,7 @@ class SystemUIThemeTest { fun testAccessingAndroidColorsWithoutThemeThrows() { assertThrows(IllegalStateException::class.java) { composeRule.setContent { - Text("foo", color = LocalAndroidColorScheme.current.colorAccent) + Text("foo", color = LocalAndroidColorScheme.current.deprecated.colorAccent) } } } diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreen.kt b/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreen.kt index a74e56b6e2f2..f88fc21addff 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreen.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreen.kt @@ -91,7 +91,7 @@ fun PeopleScreen( // Make sure to use the Android colors and not the default Material3 colors to have the exact // same colors as the View implementation. - val androidColors = LocalAndroidColorScheme.current + val androidColors = LocalAndroidColorScheme.current.deprecated Surface( color = androidColors.colorBackground, contentColor = androidColors.textColorPrimary, @@ -170,7 +170,7 @@ private fun LazyListScope.ConversationList( stringResource(headerTextResource), Modifier.padding(start = 16.dp), style = MaterialTheme.typography.labelLarge, - color = LocalAndroidColorScheme.current.colorAccentPrimaryVariant, + color = LocalAndroidColorScheme.current.deprecated.colorAccentPrimaryVariant, ) Spacer(Modifier.height(10.dp)) @@ -180,7 +180,7 @@ private fun LazyListScope.ConversationList( if (index > 0) { item { Divider( - color = LocalAndroidColorScheme.current.colorBackground, + color = LocalAndroidColorScheme.current.deprecated.colorBackground, thickness = 2.dp, ) } @@ -204,7 +204,7 @@ private fun Tile( withTopCornerRadius: Boolean, withBottomCornerRadius: Boolean, ) { - val androidColors = LocalAndroidColorScheme.current + val androidColors = LocalAndroidColorScheme.current.deprecated val cornerRadius = dimensionResource(R.dimen.people_space_widget_radius) val topCornerRadius = if (withTopCornerRadius) cornerRadius else 0.dp val bottomCornerRadius = if (withBottomCornerRadius) cornerRadius else 0.dp diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreenEmpty.kt b/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreenEmpty.kt index 0484ff475cdf..1e6f4a2f5b23 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreenEmpty.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/people/ui/compose/PeopleScreenEmpty.kt @@ -76,8 +76,8 @@ internal fun PeopleScreenEmpty( Modifier.fillMaxWidth().defaultMinSize(minHeight = 56.dp), colors = ButtonDefaults.buttonColors( - containerColor = androidColors.colorAccentPrimary, - contentColor = androidColors.textColorOnAccent, + containerColor = androidColors.deprecated.colorAccentPrimary, + contentColor = androidColors.deprecated.textColorOnAccent, ) ) { Text(stringResource(R.string.got_it)) @@ -90,8 +90,8 @@ private fun ExampleTile() { val androidColors = LocalAndroidColorScheme.current Surface( shape = RoundedCornerShape(28.dp), - color = androidColors.colorSurface, - contentColor = androidColors.textColorPrimary, + color = androidColors.deprecated.colorSurface, + contentColor = androidColors.deprecated.textColorPrimary, ) { Row( Modifier.padding(vertical = 20.dp, horizontal = 16.dp), diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt index 349f5c333116..75bf2813a321 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/footer/ui/compose/FooterActions.kt @@ -122,7 +122,7 @@ fun FooterActions( } val backgroundColor = colorAttr(R.attr.underSurfaceColor) - val contentColor = LocalAndroidColorScheme.current.textColorPrimary + val contentColor = LocalAndroidColorScheme.current.deprecated.textColorPrimary val backgroundTopRadius = dimensionResource(R.dimen.qs_corner_radius) val backgroundModifier = remember( @@ -287,7 +287,7 @@ private fun NumberButton( number.toString(), modifier = Modifier.align(Alignment.Center), style = MaterialTheme.typography.bodyLarge, - color = LocalAndroidColorScheme.current.textColorPrimary, + color = LocalAndroidColorScheme.current.deprecated.textColorPrimary, // TODO(b/242040009): This should only use a standard text style instead and // should not override the text size. fontSize = 18.sp, @@ -305,7 +305,7 @@ private fun NumberButton( @Composable private fun NewChangesDot(modifier: Modifier = Modifier) { val contentDescription = stringResource(R.string.fgs_dot_content_description) - val color = LocalAndroidColorScheme.current.colorAccentTertiary + val color = LocalAndroidColorScheme.current.deprecated.colorAccentTertiary Canvas(modifier.size(12.dp).semantics { this.contentDescription = contentDescription }) { drawCircle(color) @@ -324,8 +324,9 @@ private fun TextButton( Expandable( shape = CircleShape, color = colorAttr(R.attr.underSurfaceColor), - contentColor = LocalAndroidColorScheme.current.textColorSecondary, - borderStroke = BorderStroke(1.dp, LocalAndroidColorScheme.current.colorBackground), + contentColor = LocalAndroidColorScheme.current.deprecated.textColorSecondary, + borderStroke = + BorderStroke(1.dp, LocalAndroidColorScheme.current.deprecated.colorBackground), modifier = modifier.padding(horizontal = 4.dp), onClick = onClick, ) { |