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

Commit 19e3bb12 authored by Shirley Qian's avatar Shirley Qian Committed by Android (Google) Code Review
Browse files

Merge "Set the font weight when enabling bold text." into main

parents 00ab9e2c 54950fd4
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -33,14 +33,19 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalHapticFeedback
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.android.compose.ui.graphics.painter.rememberDrawablePainter
@@ -51,6 +56,12 @@ import com.android.systemui.res.R
@Composable
fun Chip(action: ActionViewModel, modifier: Modifier = Modifier) {
    val backgroundColor = if (isSystemInDarkTheme()) Color.Black else Color.White
    val config = LocalConfiguration.current
    val isBoldTextEnabled by remember { derivedStateOf { config.fontWeightAdjustment > 0 } }
    val chipTextStyle =
        MaterialTheme.typography.labelLarge.copy(
            fontWeight = if (isBoldTextEnabled) FontWeight.Bold else FontWeight.Medium
        )

    val haptics = LocalHapticFeedback.current
    Row(
@@ -94,7 +105,7 @@ fun Chip(action: ActionViewModel, modifier: Modifier = Modifier) {
            val hasAttribution = action.attribution != null
            Text(
                action.label,
                style = MaterialTheme.typography.labelLarge,
                style = chipTextStyle,
                color = MaterialTheme.colorScheme.onSurface,
                maxLines = if (hasAttribution) 1 else 2,
                overflow = TextOverflow.Ellipsis,
@@ -102,7 +113,7 @@ fun Chip(action: ActionViewModel, modifier: Modifier = Modifier) {
            if (hasAttribution) {
                Text(
                    action.attribution!!,
                    style = MaterialTheme.typography.labelLarge,
                    style = chipTextStyle,
                    color = MaterialTheme.colorScheme.onSurfaceVariant,
                    maxLines = 1,
                    modifier = Modifier.alpha(0.8f),
+12 −3
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@@ -61,8 +62,10 @@ import androidx.compose.ui.graphics.drawscope.scale
import androidx.compose.ui.graphics.drawscope.translate
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.IntSize
@@ -141,6 +144,12 @@ fun NavBarPill(
            animationSpec = tween(250, delayMillis = 200),
            label = "expansion",
        )
    val config = LocalConfiguration.current
    val isBoldTextEnabled by remember { derivedStateOf { config.fontWeightAdjustment > 0 } }
    val actionTextStyle =
        MaterialTheme.typography.labelMedium.copy(
            fontWeight = if (isBoldTextEnabled) FontWeight.Bold else FontWeight.Medium
        )

    Box(
        modifier =
@@ -262,7 +271,7 @@ fun NavBarPill(
                                    ) {
                                        Text(
                                            text = action.label,
                                            style = MaterialTheme.typography.labelMedium,
                                            style = actionTextStyle,
                                            maxLines = 1,
                                            overflow = TextOverflow.Ellipsis,
                                            color = MaterialTheme.colorScheme.onSurface,
@@ -271,7 +280,7 @@ fun NavBarPill(
                                        if (action.icon.repeatCount > 0) {
                                            Text(
                                                text = "+${action.icon.repeatCount}",
                                                style = MaterialTheme.typography.labelMedium,
                                                style = actionTextStyle,
                                                color = MaterialTheme.colorScheme.onSurfaceVariant,
                                                modifier = Modifier.padding(end = 3.dp),
                                            )
@@ -279,7 +288,7 @@ fun NavBarPill(
                                    } else if (action.icon.repeatCount == 0) {
                                        Text(
                                            text = action.label,
                                            style = MaterialTheme.typography.labelMedium,
                                            style = actionTextStyle,
                                            maxLines = 1,
                                            overflow = TextOverflow.Ellipsis,
                                            color = MaterialTheme.colorScheme.onSurface,
+31 −40
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import androidx.compose.material3.IconButtonColors
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@@ -60,8 +61,10 @@ import androidx.compose.ui.graphics.drawscope.translate
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInParent
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
@@ -133,6 +136,13 @@ fun ShortPill(
    var pillContentSize by remember { mutableStateOf(IntSize.Zero) }
    var pillContentPosition by remember { mutableStateOf(Offset.Zero) }

    val config = LocalConfiguration.current
    val isBoldTextEnabled by remember { derivedStateOf { config.fontWeightAdjustment > 0 } }
    val actionTextStyle =
        MaterialTheme.typography.labelMedium.copy(
            fontWeight = if (isBoldTextEnabled) FontWeight.Bold else FontWeight.Medium
        )

    Box(
        modifier =
            modifier.drawBehind {
@@ -172,8 +182,7 @@ fun ShortPill(
            }
        val fadeOutModifier = Modifier.graphicsLayer { alpha = expansionAlpha }
        val pillModifier =
            Modifier
                .clip(RoundedCornerShape(16.dp))
            Modifier.clip(RoundedCornerShape(16.dp))
                .background(backgroundColor)
                .animatedActionBorder(strokeWidth = 1.dp, cornerRadius = 16.dp, visible = visible)
                .widthIn(0.dp, minSize * 2)
@@ -196,9 +205,8 @@ fun ShortPill(
                        Arrangement.spacedBy(-4.dp, Alignment.CenterHorizontally),
                    verticalAlignment = Alignment.CenterVertically,
                    modifier =
                        pillModifier
                            .defaultMinSize(minWidth = minSize)
                            .onGloballyPositioned { coordinates ->
                        pillModifier.defaultMinSize(minWidth = minSize).onGloballyPositioned {
                            coordinates ->
                            pillContentSize = coordinates.size
                            pillContentPosition = coordinates.positionInParent()
                        },
@@ -209,7 +217,7 @@ fun ShortPill(
                            Text(
                                text = action.label,
                                color = outlineColor,
                                style = MaterialTheme.typography.labelMedium,
                                style = actionTextStyle,
                                overflow = TextOverflow.Ellipsis,
                                maxLines = 1,
                                modifier = Modifier.padding(horizontal = 8.dp),
@@ -218,10 +226,7 @@ fun ShortPill(
                    }
                }

                CloseButton(
                    onCloseClick = onCloseClick,
                    modifier = Modifier.size(closeButtonSize),
                )
                CloseButton(onCloseClick = onCloseClick, modifier = Modifier.size(closeButtonSize))
            }
        } else { // Vertical
            Column(
@@ -232,25 +237,18 @@ fun ShortPill(
                Spacer(modifier = Modifier.size(closeButtonSize))

                Column(
                    verticalArrangement =
                        Arrangement.spacedBy(-4.dp, Alignment.CenterVertically),
                    verticalArrangement = Arrangement.spacedBy(-4.dp, Alignment.CenterVertically),
                    modifier =
                        pillModifier
                            .defaultMinSize(minHeight = minSize)
                            .onGloballyPositioned { coordinates ->
                        pillModifier.defaultMinSize(minHeight = minSize).onGloballyPositioned {
                            coordinates ->
                            pillContentSize = coordinates.size
                            pillContentPosition = coordinates.positionInParent()
                        },
                ) {
                    filteredActions.take(3).fastForEach { action ->
                        Icon(action, backgroundColor)
                    }
                    filteredActions.take(3).fastForEach { action -> Icon(action, backgroundColor) }
                }

                CloseButton(
                    onCloseClick = onCloseClick,
                    modifier = Modifier.size(closeButtonSize),
                )
                CloseButton(onCloseClick = onCloseClick, modifier = Modifier.size(closeButtonSize))
            }
        }

@@ -258,19 +256,16 @@ fun ShortPill(
        if (expansionAlpha < 1f && pillContentSize != IntSize.Zero) {
            with(LocalDensity.current) {
                val offsetX =
                    pillContentPosition.x.toDp() +
                        (pillContentSize.width.toDp() / 2) -
                    pillContentPosition.x.toDp() + (pillContentSize.width.toDp() / 2) -
                        (closeButtonSize / 2)
                val offsetY =
                    pillContentPosition.y.toDp() +
                        (pillContentSize.height.toDp() / 2) -
                    pillContentPosition.y.toDp() + (pillContentSize.height.toDp() / 2) -
                        (closeButtonSize / 2)

                CloseButton(
                    onCloseClick = onCloseClick,
                    modifier =
                        Modifier
                            .offset(x = offsetX, y = offsetY)
                        Modifier.offset(x = offsetX, y = offsetY)
                            .size(closeButtonSize)
                            .graphicsLayer { alpha = 1f - expansionAlpha } // Fade IN
                            .then(scaleAnimationModifier),
@@ -281,10 +276,7 @@ fun ShortPill(
}

@Composable
private fun CloseButton(
    onCloseClick: () -> Unit,
    modifier: Modifier = Modifier,
) {
private fun CloseButton(onCloseClick: () -> Unit, modifier: Modifier = Modifier) {

    PlatformIconButton(
        modifier =
@@ -317,8 +309,7 @@ private fun Icon(action: ActionViewModel, backgroundColor: Color, modifier: Modi
                    if (action.actionType == ActionType.MR) {
                        Modifier.size(20.dp)
                    } else {
                        Modifier
                            .size(19.25.dp)
                        Modifier.size(19.25.dp)
                            .border(
                                width = 0.75.dp,
                                color = MaterialTheme.colorScheme.outline,