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

Commit 54950fd4 authored by shirleyqian's avatar shirleyqian
Browse files

Set the font weight when enabling bold text.

Bug: 424719984
Test: local
Flag: com.android.systemui.enable_underlay
Change-Id: I59dfebdce05eedf64387ab6477319a59f7647300
parent 5b091750
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,