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

Commit f186a905 authored by Tianfan Zhang's avatar Tianfan Zhang Committed by Android (Google) Code Review
Browse files

Merge "Align 3btn smart scrim to UX design." into main

parents 27a4ad2a e76ebafd
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.