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

Commit 7b030980 authored by Yuchen Sun's avatar Yuchen Sun Committed by Android (Google) Code Review
Browse files

Merge "[Expressive design] Update SPA Appbar." into main

parents a8fade70 6c3f7a1d
Loading
Loading
Loading
Loading
+2 −3
Original line number Original line Diff line number Diff line
@@ -33,9 +33,8 @@ object SettingsDimension {
    val spinnerHorizontalPadding = paddingExtraLarge
    val spinnerHorizontalPadding = paddingExtraLarge
    val spinnerVerticalPadding = paddingLarge
    val spinnerVerticalPadding = paddingLarge


    val actionIconWidth = 32.dp
    val actionIconSize = 40.dp
    val actionIconHeight = 40.dp
    val actionIconPadding = 8.dp
    val actionIconPadding = 4.dp


    val itemIconSize = 24.dp
    val itemIconSize = 24.dp
    val itemIconContainerSizeSmall = 40.dp
    val itemIconContainerSizeSmall = 40.dp
+16 −21
Original line number Original line Diff line number Diff line
@@ -57,14 +57,13 @@ private fun BackAction(contentDescription: String, onClick: () -> Unit) {
        onClick = onClick,
        onClick = onClick,
        modifier =
        modifier =
            if (isSpaExpressiveEnabled)
            if (isSpaExpressiveEnabled)
            Modifier
                Modifier.padding(
                .padding(
                        start = SettingsDimension.paddingExtraSmall5,
                    start = SettingsDimension.paddingLarge,
                        end = SettingsDimension.paddingSmall,
                        end = SettingsDimension.paddingSmall,
                        top = SettingsDimension.paddingExtraSmall,
                        top = SettingsDimension.paddingExtraSmall,
                        bottom = SettingsDimension.paddingExtraSmall,
                        bottom = SettingsDimension.paddingExtraSmall,
                    )
                    )
                .size(SettingsDimension.actionIconWidth, SettingsDimension.actionIconHeight)
                    .size(SettingsDimension.actionIconSize)
                    .clip(SettingsShape.CornerExtraLarge)
                    .clip(SettingsShape.CornerExtraLarge)
            else Modifier,
            else Modifier,
    ) {
    ) {
@@ -73,11 +72,7 @@ private fun BackAction(contentDescription: String, onClick: () -> Unit) {
            contentDescription = contentDescription,
            contentDescription = contentDescription,
            modifier =
            modifier =
                if (isSpaExpressiveEnabled)
                if (isSpaExpressiveEnabled)
                Modifier
                    Modifier.size(SettingsDimension.actionIconSize)
                    .size(
                        SettingsDimension.actionIconWidth,
                        SettingsDimension.actionIconHeight,
                    )
                        .clip(SettingsShape.CornerExtraLarge)
                        .clip(SettingsShape.CornerExtraLarge)
                        .background(MaterialTheme.colorScheme.surfaceContainerHighest)
                        .background(MaterialTheme.colorScheme.surfaceContainerHighest)
                        .padding(SettingsDimension.actionIconPadding)
                        .padding(SettingsDimension.actionIconPadding)
+34 −16
Original line number Original line Diff line number Diff line
@@ -142,7 +142,8 @@ private fun Title(title: String, maxLines: Int = Int.MAX_VALUE) {
    Text(
    Text(
        text = title,
        text = title,
        modifier =
        modifier =
            Modifier.padding(
            Modifier
                .padding(
                    start =
                    start =
                    if (isSpaExpressiveEnabled) SettingsDimension.paddingExtraSmall
                    if (isSpaExpressiveEnabled) SettingsDimension.paddingExtraSmall
                    else SettingsDimension.itemPaddingAround,
                    else SettingsDimension.itemPaddingAround,
@@ -156,6 +157,15 @@ private fun Title(title: String, maxLines: Int = Int.MAX_VALUE) {


@Composable
@Composable
private fun topAppBarColors() =
private fun topAppBarColors() =
    if (isSpaExpressiveEnabled)
        TopAppBarColors(
            containerColor = MaterialTheme.colorScheme.surfaceContainer,
            scrolledContainerColor = MaterialTheme.colorScheme.surfaceContainer,
            navigationIconContentColor = MaterialTheme.colorScheme.onSurface,
            titleContentColor = MaterialTheme.colorScheme.onSurface,
            actionIconContentColor = MaterialTheme.colorScheme.primary,
        )
    else
        TopAppBarColors(
        TopAppBarColors(
            containerColor = MaterialTheme.colorScheme.settingsBackground,
            containerColor = MaterialTheme.colorScheme.settingsBackground,
            scrolledContainerColor = MaterialTheme.colorScheme.surfaceVariant,
            scrolledContainerColor = MaterialTheme.colorScheme.surfaceVariant,
@@ -257,14 +267,16 @@ private fun SingleRowTopAppBar(
    // Compose a Surface with a TopAppBarLayout content.
    // Compose a Surface with a TopAppBarLayout content.
    Box(
    Box(
        modifier =
        modifier =
            Modifier.drawBehind { drawRect(color = colors.scrolledContainerColor) }
            Modifier
                .drawBehind { drawRect(color = colors.scrolledContainerColor) }
                .semantics { isTraversalGroup = true }
                .semantics { isTraversalGroup = true }
                .pointerInput(Unit) {}
                .pointerInput(Unit) {}
    ) {
    ) {
        val height = LocalDensity.current.run { ContainerHeight.toPx() }
        val height = LocalDensity.current.run { ContainerHeight.toPx() }
        TopAppBarLayout(
        TopAppBarLayout(
            modifier =
            modifier =
                Modifier.windowInsetsPadding(windowInsets)
                Modifier
                    .windowInsetsPadding(windowInsets)
                    // clip after padding so we don't show the title over the inset area
                    // clip after padding so we don't show the title over the inset area
                    .clipToBounds(),
                    .clipToBounds(),
            heightPx = height,
            heightPx = height,
@@ -387,7 +399,8 @@ private fun TwoRowsTopAppBar(
        Column {
        Column {
            TopAppBarLayout(
            TopAppBarLayout(
                modifier =
                modifier =
                    Modifier.windowInsetsPadding(windowInsets)
                    Modifier
                        .windowInsetsPadding(windowInsets)
                        // clip after padding so we don't show the title over the inset area
                        // clip after padding so we don't show the title over the inset area
                        .clipToBounds(),
                        .clipToBounds(),
                heightPx = pinnedHeightPx,
                heightPx = pinnedHeightPx,
@@ -495,14 +508,17 @@ private fun TopAppBarLayout(
) {
) {
    Layout(
    Layout(
        {
        {
            Box(Modifier.layoutId("navigationIcon").padding(start = TopAppBarHorizontalPadding)) {
            Box(Modifier
                .layoutId("navigationIcon")
                .padding(start = TopAppBarHorizontalPadding)) {
                CompositionLocalProvider(
                CompositionLocalProvider(
                    LocalContentColor provides navigationIconContentColor,
                    LocalContentColor provides navigationIconContentColor,
                    content = navigationIcon,
                    content = navigationIcon,
                )
                )
            }
            }
            Box(
            Box(
                Modifier.layoutId("title")
                Modifier
                    .layoutId("title")
                    .padding(horizontal = TopAppBarHorizontalPadding)
                    .padding(horizontal = TopAppBarHorizontalPadding)
                    .then(if (hideTitleSemantics) Modifier.clearAndSetSemantics {} else Modifier)
                    .then(if (hideTitleSemantics) Modifier.clearAndSetSemantics {} else Modifier)
                    .graphicsLayer { alpha = titleAlpha() }
                    .graphicsLayer { alpha = titleAlpha() }
@@ -521,7 +537,9 @@ private fun TopAppBarLayout(
                    )
                    )
                }
                }
            }
            }
            Box(Modifier.layoutId("actionIcons").padding(end = TopAppBarHorizontalPadding)) {
            Box(Modifier
                .layoutId("actionIcons")
                .padding(end = TopAppBarHorizontalPadding)) {
                CompositionLocalProvider(
                CompositionLocalProvider(
                    LocalContentColor provides actionIconContentColor,
                    LocalContentColor provides actionIconContentColor,
                    content = actions,
                    content = actions,