Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e71ab06 authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "[Spa] Update color of Spinners based on new UX" into main

parents e2445de7 b4c82d2f
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -33,10 +33,6 @@ data class SettingsColorScheme(
    val secondaryText: Color = Color.Unspecified,
    val primaryContainer: Color = Color.Unspecified,
    val onPrimaryContainer: Color = Color.Unspecified,
    val spinnerHeaderContainer: Color = Color.Unspecified,
    val onSpinnerHeaderContainer: Color = Color.Unspecified,
    val spinnerItemContainer: Color = Color.Unspecified,
    val onSpinnerItemContainer: Color = Color.Unspecified,
)

internal val LocalColorScheme = staticCompositionLocalOf { SettingsColorScheme() }
@@ -76,10 +72,6 @@ internal fun dynamicLightColorScheme(context: Context): SettingsColorScheme {
        secondaryText = tonalPalette.neutralVariant30,
        primaryContainer = tonalPalette.primary90,
        onPrimaryContainer = tonalPalette.neutral10,
        spinnerHeaderContainer = tonalPalette.primary90,
        onSpinnerHeaderContainer = tonalPalette.neutral10,
        spinnerItemContainer = tonalPalette.secondary90,
        onSpinnerItemContainer = tonalPalette.neutralVariant30,
    )
}

@@ -103,10 +95,6 @@ internal fun dynamicDarkColorScheme(context: Context): SettingsColorScheme {
        secondaryText = tonalPalette.neutralVariant80,
        primaryContainer = tonalPalette.secondary90,
        onPrimaryContainer = tonalPalette.neutral10,
        spinnerHeaderContainer = tonalPalette.primary90,
        onSpinnerHeaderContainer = tonalPalette.neutral10,
        spinnerItemContainer = tonalPalette.secondary90,
        onSpinnerItemContainer = tonalPalette.neutralVariant30,
    )
}

@@ -121,10 +109,6 @@ internal fun darkColorScheme(): SettingsColorScheme {
        secondaryText = tonalPalette.neutralVariant80,
        primaryContainer = tonalPalette.secondary90,
        onPrimaryContainer = tonalPalette.neutral10,
        spinnerHeaderContainer = tonalPalette.primary90,
        onSpinnerHeaderContainer = tonalPalette.neutral10,
        spinnerItemContainer = tonalPalette.secondary90,
        onSpinnerItemContainer = tonalPalette.neutralVariant30,
    )
}

@@ -139,9 +123,5 @@ internal fun lightColorScheme(): SettingsColorScheme {
        secondaryText = tonalPalette.neutralVariant30,
        primaryContainer = tonalPalette.primary90,
        onPrimaryContainer = tonalPalette.neutral10,
        spinnerHeaderContainer = tonalPalette.primary90,
        onSpinnerHeaderContainer = tonalPalette.neutral10,
        spinnerItemContainer = tonalPalette.secondary90,
        onSpinnerItemContainer = tonalPalette.neutralVariant30,
    )
}
+6 −5
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
@@ -74,8 +75,8 @@ fun Spinner(options: List<SpinnerOption>, selectedId: Int?, setId: (id: Int) ->
            modifier = Modifier.semantics { role = Role.DropdownList },
            onClick = { expanded = true },
            colors = ButtonDefaults.buttonColors(
                containerColor = SettingsTheme.colorScheme.spinnerHeaderContainer,
                contentColor = SettingsTheme.colorScheme.onSpinnerHeaderContainer,
                containerColor = MaterialTheme.colorScheme.primaryContainer,
                contentColor = MaterialTheme.colorScheme.onPrimaryContainer,
            ),
            contentPadding = contentPadding,
        ) {
@@ -85,7 +86,7 @@ fun Spinner(options: List<SpinnerOption>, selectedId: Int?, setId: (id: Int) ->
        DropdownMenu(
            expanded = expanded,
            onDismissRequest = { expanded = false },
            modifier = Modifier.background(SettingsTheme.colorScheme.spinnerItemContainer),
            modifier = Modifier.background(MaterialTheme.colorScheme.secondaryContainer),
        ) {
            for (option in options) {
                DropdownMenuItem(
@@ -93,7 +94,7 @@ fun Spinner(options: List<SpinnerOption>, selectedId: Int?, setId: (id: Int) ->
                        SpinnerText(
                            option = option,
                            modifier = Modifier.padding(end = 24.dp),
                            color = SettingsTheme.colorScheme.onSpinnerItemContainer,
                            color = MaterialTheme.colorScheme.onSecondaryContainer,
                        )
                    },
                    onClick = {
@@ -138,7 +139,7 @@ private fun SpinnerText(
@Composable
private fun SpinnerPreview() {
    SettingsTheme {
        var selectedId by rememberSaveable { mutableStateOf(1) }
        var selectedId by rememberSaveable { mutableIntStateOf(1) }
        Spinner(
            options = (1..3).map { SpinnerOption(id = it, text = "Option $it") },
            selectedId = selectedId,
+0 −12
Original line number Diff line number Diff line
@@ -37,15 +37,11 @@ class SettingsColorsTest {
        assertThat(ls.categoryTitle).isNotEqualTo(ls.background)
        assertThat(ls.secondaryText).isNotEqualTo(ls.background)
        assertThat(ls.primaryContainer).isNotEqualTo(ls.onPrimaryContainer)
        assertThat(ls.spinnerHeaderContainer).isNotEqualTo(ls.onSpinnerHeaderContainer)
        assertThat(ls.spinnerItemContainer).isNotEqualTo(ls.onSpinnerItemContainer)

        val ds = dynamicDarkColorScheme(context)
        assertThat(ds.categoryTitle).isNotEqualTo(ds.background)
        assertThat(ds.secondaryText).isNotEqualTo(ds.background)
        assertThat(ds.primaryContainer).isNotEqualTo(ds.onPrimaryContainer)
        assertThat(ds.spinnerHeaderContainer).isNotEqualTo(ds.onSpinnerHeaderContainer)
        assertThat(ds.spinnerItemContainer).isNotEqualTo(ds.onSpinnerItemContainer)
    }

    @Test
@@ -58,10 +54,6 @@ class SettingsColorsTest {
        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))
        assertThat(ls.spinnerHeaderContainer).isEqualTo(Color(red = 234, green = 221, blue = 255))
        assertThat(ls.onSpinnerHeaderContainer).isEqualTo(Color(red = 28, green = 27, blue = 31))
        assertThat(ls.spinnerItemContainer).isEqualTo(Color(red = 232, green = 222, blue = 248))
        assertThat(ls.onSpinnerItemContainer).isEqualTo(Color(red = 73, green = 69, blue = 79))

        val ds = darkColorScheme()
        assertThat(ds.background).isEqualTo(Color(red = 28, green = 27, blue = 31))
@@ -71,9 +63,5 @@ class SettingsColorsTest {
        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))
        assertThat(ds.spinnerHeaderContainer).isEqualTo(Color(red = 234, green = 221, blue = 255))
        assertThat(ds.onSpinnerHeaderContainer).isEqualTo(Color(red = 28, green = 27, blue = 31))
        assertThat(ds.spinnerItemContainer).isEqualTo(Color(red = 232, green = 222, blue = 248))
        assertThat(ds.onSpinnerItemContainer).isEqualTo(Color(red = 73, green = 69, blue = 79))
    }
}