summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsColors.kt122
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt9
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/button/ActionButtons.kt6
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt2
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBar.kt3
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsTab.kt8
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Category.kt2
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/CopyableBody.kt3
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt1
-rw-r--r--packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/framework/theme/SettingsColorsTest.kt65
10 files changed, 11 insertions, 210 deletions
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsColors.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsColors.kt
deleted file mode 100644
index 0db01e88c608..000000000000
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsColors.kt
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settingslib.spa.framework.theme
-
-import android.content.Context
-import android.os.Build
-import androidx.annotation.VisibleForTesting
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.staticCompositionLocalOf
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.platform.LocalContext
-
-data class SettingsColorScheme(
- val categoryTitle: Color = Color.Unspecified,
- val surface: Color = Color.Unspecified,
- val surfaceHeader: Color = Color.Unspecified,
- val secondaryText: Color = Color.Unspecified,
- val primaryContainer: Color = Color.Unspecified,
- val onPrimaryContainer: Color = Color.Unspecified,
-)
-
-internal val LocalColorScheme = staticCompositionLocalOf { SettingsColorScheme() }
-
-@Composable
-internal fun settingsColorScheme(isDarkTheme: Boolean): SettingsColorScheme {
- val context = LocalContext.current
- return remember(isDarkTheme) {
- when {
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
- if (isDarkTheme) dynamicDarkColorScheme(context)
- else dynamicLightColorScheme(context)
- }
- isDarkTheme -> darkColorScheme()
- else -> lightColorScheme()
- }
- }
-}
-
-/**
- * Creates a light dynamic color scheme.
- *
- * Use this function to create a color scheme based off the system wallpaper. If the developer
- * changes the wallpaper this color scheme will change accordingly. This dynamic scheme is a
- * light theme variant.
- *
- * @param context The context required to get system resource data.
- */
-@VisibleForTesting
-internal fun dynamicLightColorScheme(context: Context): SettingsColorScheme {
- val tonalPalette = dynamicTonalPalette(context)
- return SettingsColorScheme(
- categoryTitle = tonalPalette.primary40,
- surface = tonalPalette.neutral99,
- surfaceHeader = tonalPalette.neutral90,
- secondaryText = tonalPalette.neutralVariant30,
- primaryContainer = tonalPalette.primary90,
- onPrimaryContainer = tonalPalette.neutral10,
- )
-}
-
-/**
- * Creates a dark dynamic color scheme.
- *
- * Use this function to create a color scheme based off the system wallpaper. If the developer
- * changes the wallpaper this color scheme will change accordingly. This dynamic scheme is a dark
- * theme variant.
- *
- * @param context The context required to get system resource data.
- */
-@VisibleForTesting
-internal fun dynamicDarkColorScheme(context: Context): SettingsColorScheme {
- val tonalPalette = dynamicTonalPalette(context)
- return SettingsColorScheme(
- categoryTitle = tonalPalette.primary90,
- surface = tonalPalette.neutral20,
- surfaceHeader = tonalPalette.neutral30,
- secondaryText = tonalPalette.neutralVariant80,
- primaryContainer = tonalPalette.secondary90,
- onPrimaryContainer = tonalPalette.neutral10,
- )
-}
-
-@VisibleForTesting
-internal fun darkColorScheme(): SettingsColorScheme {
- val tonalPalette = tonalPalette()
- return SettingsColorScheme(
- categoryTitle = tonalPalette.primary90,
- surface = tonalPalette.neutral20,
- surfaceHeader = tonalPalette.neutral30,
- secondaryText = tonalPalette.neutralVariant80,
- primaryContainer = tonalPalette.secondary90,
- onPrimaryContainer = tonalPalette.neutral10,
- )
-}
-
-@VisibleForTesting
-internal fun lightColorScheme(): SettingsColorScheme {
- val tonalPalette = tonalPalette()
- return SettingsColorScheme(
- categoryTitle = tonalPalette.primary40,
- surface = tonalPalette.neutral99,
- surfaceHeader = tonalPalette.neutral90,
- secondaryText = tonalPalette.neutralVariant30,
- primaryContainer = tonalPalette.primary90,
- onPrimaryContainer = tonalPalette.neutral10,
- )
-}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt
index d14b96020a06..d9f82e8c6986 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsTheme.kt
@@ -21,7 +21,6 @@ import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
-import androidx.compose.runtime.ReadOnlyComposable
/**
* The Material 3 Theme for Settings.
@@ -35,17 +34,9 @@ fun SettingsTheme(content: @Composable () -> Unit) {
typography = rememberSettingsTypography(),
) {
CompositionLocalProvider(
- LocalColorScheme provides settingsColorScheme(isDarkTheme),
LocalContentColor provides MaterialTheme.colorScheme.onSurface,
) {
content()
}
}
}
-
-object SettingsTheme {
- val colorScheme: SettingsColorScheme
- @Composable
- @ReadOnlyComposable
- get() = LocalColorScheme.current
-}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/button/ActionButtons.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/button/ActionButtons.kt
index 979cf3bddae6..70d353da496c 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/button/ActionButtons.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/button/ActionButtons.kt
@@ -88,9 +88,9 @@ private fun RowScope.ActionButton(actionButton: ActionButton) {
interactionSource = remember(actionButton) { MutableInteractionSource() },
shape = RectangleShape,
colors = ButtonDefaults.filledTonalButtonColors(
- containerColor = SettingsTheme.colorScheme.surface,
- contentColor = SettingsTheme.colorScheme.categoryTitle,
- disabledContainerColor = SettingsTheme.colorScheme.surface,
+ containerColor = MaterialTheme.colorScheme.surface,
+ contentColor = MaterialTheme.colorScheme.primary,
+ disabledContainerColor = MaterialTheme.colorScheme.surface,
),
contentPadding = PaddingValues(horizontal = 4.dp, vertical = 20.dp),
) {
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt
index d08d97eb89db..0546719eb8cd 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt
@@ -83,7 +83,7 @@ fun SettingsCardContent(
Card(
shape = CornerExtraSmall,
colors = CardDefaults.cardColors(
- containerColor = containerColor.takeOrElse { SettingsTheme.colorScheme.surface },
+ containerColor = containerColor.takeOrElse { MaterialTheme.colorScheme.surface },
),
modifier = Modifier
.fillMaxWidth()
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBar.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBar.kt
index 706bd0a5d099..36cd136602f3 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBar.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/CustomizedAppBar.kt
@@ -74,7 +74,6 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.Velocity
import androidx.compose.ui.unit.dp
import com.android.settingslib.spa.framework.theme.SettingsDimension
-import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.framework.theme.settingsBackground
import kotlin.math.abs
import kotlin.math.max
@@ -142,7 +141,7 @@ private fun Title(title: String, maxLines: Int = Int.MAX_VALUE) {
@Composable
private fun topAppBarColors() = TopAppBarColors(
containerColor = MaterialTheme.colorScheme.settingsBackground,
- scrolledContainerColor = SettingsTheme.colorScheme.surfaceHeader,
+ scrolledContainerColor = MaterialTheme.colorScheme.surfaceVariant,
navigationIconContentColor = MaterialTheme.colorScheme.onSurface,
titleContentColor = MaterialTheme.colorScheme.onSurface,
actionIconContentColor = MaterialTheme.colorScheme.onSurfaceVariant,
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsTab.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsTab.kt
index 6f2c38caa3bc..60814bf8cc25 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsTab.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsTab.kt
@@ -51,8 +51,8 @@ internal fun SettingsTab(
.clip(SettingsShape.CornerMedium)
.background(
color = lerp(
- start = SettingsTheme.colorScheme.primaryContainer,
- stop = SettingsTheme.colorScheme.surface,
+ start = MaterialTheme.colorScheme.primaryContainer,
+ stop = MaterialTheme.colorScheme.surface,
fraction = colorFraction,
),
),
@@ -61,8 +61,8 @@ internal fun SettingsTab(
text = title,
style = MaterialTheme.typography.labelLarge,
color = lerp(
- start = SettingsTheme.colorScheme.onPrimaryContainer,
- stop = SettingsTheme.colorScheme.secondaryText,
+ start = MaterialTheme.colorScheme.onPrimaryContainer,
+ stop = MaterialTheme.colorScheme.onSurface,
fraction = colorFraction,
),
)
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Category.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Category.kt
index 6aac5bf3839a..48cd145da124 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Category.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Category.kt
@@ -46,7 +46,7 @@ fun CategoryTitle(title: String) {
end = SettingsDimension.itemPaddingEnd,
bottom = 8.dp,
),
- color = SettingsTheme.colorScheme.categoryTitle,
+ color = MaterialTheme.colorScheme.primary,
style = MaterialTheme.typography.labelMedium,
)
}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/CopyableBody.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/CopyableBody.kt
index 930d0a1872ab..99b2524f0f9e 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/CopyableBody.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/CopyableBody.kt
@@ -37,7 +37,6 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.unit.DpOffset
import com.android.settingslib.spa.framework.theme.SettingsDimension
-import com.android.settingslib.spa.framework.theme.SettingsTheme
@Composable
fun CopyableBody(body: String) {
@@ -78,7 +77,7 @@ private fun DropdownMenuTitle(text: String) {
top = SettingsDimension.itemPaddingAround,
bottom = SettingsDimension.buttonPaddingVertical,
),
- color = SettingsTheme.colorScheme.categoryTitle,
+ color = MaterialTheme.colorScheme.primary,
style = MaterialTheme.typography.labelMedium,
)
}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt
index d423d9fe5897..6e5f32ebe545 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt
@@ -47,7 +47,6 @@ fun SettingsTitle(
modifier = Modifier
.padding(vertical = SettingsDimension.paddingTiny)
.contentDescription(contentDescription),
- color = MaterialTheme.colorScheme.onSurface,
style = MaterialTheme.typography.titleMedium.withWeight(useMediumWeight),
)
}
diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/framework/theme/SettingsColorsTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/framework/theme/SettingsColorsTest.kt
deleted file mode 100644
index f3f89e07814f..000000000000
--- a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/framework/theme/SettingsColorsTest.kt
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settingslib.spa.framework.theme
-
-import android.content.Context
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.google.common.truth.Truth.assertThat
-import org.junit.Test
-import org.junit.runner.RunWith
-import androidx.compose.ui.graphics.Color
-
-@RunWith(AndroidJUnit4::class)
-class SettingsColorsTest {
- private val context: Context = ApplicationProvider.getApplicationContext()
-
- @Test
- fun testDynamicTheme() {
- // The dynamic color could be different in different device, just check basic restrictions:
- // 1. text color is different with surface color
- // 2. primary / spinner color is different with its on-item color
- val ls = dynamicLightColorScheme(context)
- assertThat(ls.categoryTitle).isNotEqualTo(ls.surface)
- assertThat(ls.secondaryText).isNotEqualTo(ls.surface)
- assertThat(ls.primaryContainer).isNotEqualTo(ls.onPrimaryContainer)
-
- val ds = dynamicDarkColorScheme(context)
- assertThat(ds.categoryTitle).isNotEqualTo(ds.surface)
- assertThat(ds.secondaryText).isNotEqualTo(ds.surface)
- assertThat(ds.primaryContainer).isNotEqualTo(ds.onPrimaryContainer)
- }
-
- @Test
- fun testStaticTheme() {
- val ls = lightColorScheme()
- assertThat(ls.categoryTitle).isEqualTo(Color(red = 103, green = 80, blue = 164))
- assertThat(ls.surface).isEqualTo(Color(red = 255, green = 251, blue = 254))
- assertThat(ls.surfaceHeader).isEqualTo(Color(red = 230, green = 225, blue = 229))
- assertThat(ls.secondaryText).isEqualTo(Color(red = 73, green = 69, blue = 79))
- assertThat(ls.primaryContainer).isEqualTo(Color(red = 234, green = 221, blue = 255))
- assertThat(ls.onPrimaryContainer).isEqualTo(Color(red = 28, green = 27, blue = 31))
-
- val ds = darkColorScheme()
- assertThat(ds.categoryTitle).isEqualTo(Color(red = 234, green = 221, blue = 255))
- assertThat(ds.surface).isEqualTo(Color(red = 49, green = 48, blue = 51))
- assertThat(ds.surfaceHeader).isEqualTo(Color(red = 72, green = 70, blue = 73))
- assertThat(ds.secondaryText).isEqualTo(Color(red = 202, green = 196, blue = 208))
- assertThat(ds.primaryContainer).isEqualTo(Color(red = 232, green = 222, blue = 248))
- assertThat(ds.onPrimaryContainer).isEqualTo(Color(red = 28, green = 27, blue = 31))
- }
-}