Loading packages/SystemUI/compose/features/src/com/android/systemui/ambientcue/ui/compose/ActionList.kt +17 −4 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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) { Loading Loading @@ -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 Loading @@ -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) Loading Loading @@ -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() } } Loading packages/SystemUI/compose/features/src/com/android/systemui/ambientcue/ui/compose/AmbientCueContainer.kt +3 −1 Original line number Diff line number Diff line Loading @@ -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, Loading packages/SystemUI/compose/features/src/com/android/systemui/ambientcue/ui/compose/ShortPill.kt +3 −3 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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) Loading @@ -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. Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/ambientcue/ui/compose/ActionList.kt +17 −4 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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) { Loading Loading @@ -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 Loading @@ -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) Loading Loading @@ -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() } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/ambientcue/ui/compose/AmbientCueContainer.kt +3 −1 Original line number Diff line number Diff line Loading @@ -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, Loading
packages/SystemUI/compose/features/src/com/android/systemui/ambientcue/ui/compose/ShortPill.kt +3 −3 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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) Loading @@ -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. Loading