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

Commit e76ebafd authored by Tianfan Zhang's avatar Tianfan Zhang
Browse files

Align 3btn smart scrim to UX design.

Bug: 435604222
Test: atest ShortPillScreenshotTest
Flag: EXEMPT bugfix
Change-Id: Ifa7d167230ef8131dbc9c8ad71f167274fcd06d8
parent ab9787d7
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ import androidx.compose.ui.graphics.drawscope.scale
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.onSizeChanged
import androidx.compose.ui.layout.positionInWindow
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.painterResource
@@ -98,8 +99,10 @@ fun ActionList(
    padding: PaddingValues = PaddingValues(0.dp),
    horizontalAlignment: Alignment.Horizontal = Alignment.CenterHorizontally,
    portrait: Boolean = true,
    pillOffset: Float = 0f,
    pillCenter: Offset = Offset.Unspecified,
    pillWidth: Float = 0f,
    rotation: Int = 0,
    inTaskBarOr3ButtonMode: Boolean = false,
) {
    val density = LocalDensity.current
    val minOverscrollDelta = (-8).dp
@@ -127,6 +130,7 @@ fun ActionList(
    var containerHeightPx by remember { mutableIntStateOf(0) }
    var radius by remember { mutableFloatStateOf(0f) }
    var wasEverExpanded by remember { mutableStateOf(false) }
    var actionListCenterPositionX by remember { mutableFloatStateOf(0f) }

    LaunchedEffect(expanded) {
        if (expanded) {
@@ -293,6 +297,8 @@ fun ActionList(
                )
                .onGloballyPositioned { layoutCoordinates ->
                    containerHeightPx = layoutCoordinates.size.height
                    actionListCenterPositionX =
                        layoutCoordinates.positionInWindow().x + layoutCoordinates.size.width / 2
                    anchoredDraggableState.updateAnchors(
                        DraggableAnchors {
                            Start at 0f // Hidden
@@ -301,7 +307,12 @@ fun ActionList(
                    )
                }
                .drawBehind {
                    val sidePaddingPx = with(density) { scrimHorizontalPadding.toPx() }
                    val sidePaddingPx =
                        if (inTaskBarOr3ButtonMode && portrait) {
                            pillCenter.x - actionListCenterPositionX
                        } else {
                            with(density) { scrimHorizontalPadding.toPx() }
                        }
                    if (!(radius > 0)) return@drawBehind

                    val minScaleY = minGradientHeightPx / (radius * 2f)
@@ -407,12 +418,14 @@ fun ActionList(
                                if (rotation == ROTATION_90) {
                                    translationY =
                                        (1f - translation) *
                                            (pillOffset - chipsTotalHeightPx + appxColumnY)
                                            (pillCenter.y - pillWidth - chipsTotalHeightPx +
                                                appxColumnY)
                                    translationX = (1f - translation) * chipWidthPx.toFloat()
                                } else if (rotation == ROTATION_270) {
                                    translationY =
                                        (1f - translation) *
                                            (pillOffset - chipsTotalHeightPx + appxColumnY)
                                            (pillCenter.y - pillWidth - chipsTotalHeightPx +
                                                appxColumnY)
                                    translationX = (translation - 1f) * chipWidthPx.toFloat()
                                }
                            }
+3 −1
Original line number Diff line number Diff line
@@ -175,8 +175,10 @@ private fun TaskBarAnd3ButtonAmbientCue(
                }
            },
        portrait = portrait,
        pillOffset = pillCenter.y - pillSize.width,
        pillCenter = pillCenter,
        pillWidth = pillSize.width,
        rotation = rotation,
        inTaskBarOr3ButtonMode = true,
    )
    ShortPill(
        actions = actions,
+3 −3
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ fun ShortPill(
) {
    val outlineColor = if (isSystemInDarkTheme()) Color.White else Color.Black
    val backgroundColor = if (isSystemInDarkTheme()) Color.Black else Color.White
    val scrimColor = MaterialTheme.colorScheme.primary
    val scrimColor = MaterialTheme.colorScheme.primaryFixedDim
    val minSize = 48.dp
    val closeButtonSize = 28.dp
    // (shortPillBoxWidth, shortPillBoxLength) is the smallest size to fully cover recent app area.
@@ -129,7 +129,7 @@ fun ShortPill(
                        0f at 0
                        0.2f at 500
                        0.2f at 1500
                        0f at 2000
                        0.4f at 2000
                    }
                } else {
                    tween(500)
@@ -137,7 +137,7 @@ fun ShortPill(
            },
            label = "smartScrimAlphaBoost",
        ) {
            if (it) 0f else 0f
            if (it) 0.4f else 0f
        }

    // State variables to store the measured size and position of the main pill.