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

Commit 3e2e9de6 authored by Darrell Shi's avatar Darrell Shi
Browse files

Update specs for the resizable widget frame

This change removes the padding between the widget and the outline. It
also updates the stroke width and corner radius of the outline.

Test: atest ResizeableItemFrameScreenshotTest
Test: visual; see recordings in bug
Bug: 419357983
Flag: com.android.systemui.hub_edit_mode_transition
Change-Id: Ifd7a9dbc4b5ccb0b0b68bbc57ac30e28873c74cd
parent 3a12e4eb
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1387,6 +1387,9 @@ private fun CommunalContent(
@Composable
fun HighlightedItem(modifier: Modifier = Modifier, alpha: Float = 1.0f) {
    val brush = SolidColor(MaterialTheme.colorScheme.primary)
    val cornerRadius =
        if (hubEditModeTransition()) dimensionResource(system_app_widget_background_radius)
        else 37.adjustedDp
    Box(
        modifier =
            // drawBehind lets us draw outside the bounds of the widgets so that we don't need to
@@ -1400,7 +1403,7 @@ fun HighlightedItem(modifier: Modifier = Modifier, alpha: Float = 1.0f) {
                    topLeft = Offset(-padding, -padding),
                    size =
                        Size(width = size.width + padding * 2, height = size.height + padding * 2),
                    cornerRadius = CornerRadius(37.adjustedDp.toPx()),
                    cornerRadius = CornerRadius(cornerRadius.toPx()),
                    style = Stroke(width = 3.adjustedDp.toPx()),
                )
            }
@@ -2118,7 +2121,7 @@ class Dimensions(val context: Context, val config: Configuration) {
            get() = 360.adjustedDp

        val WidgetOutlinePadding
            get() = 8.adjustedDp
            get() = if (hubEditModeTransition()) 0.dp else 8.adjustedDp

        val Spacing
            get() = ItemSpacing / 2
+16 −5
Original line number Diff line number Diff line
@@ -48,11 +48,14 @@ import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.drawscope.Stroke
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.dimensionResource
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.util.fastIsFinite
import androidx.compose.ui.zIndex
import com.android.compose.modifiers.thenIf
import com.android.internal.R.dimen.system_app_widget_background_radius
import com.android.systemui.Flags.hubEditModeTransition
import com.android.systemui.communal.ui.viewmodel.DragHandle
import com.android.systemui.communal.ui.viewmodel.ResizeInfo
import com.android.systemui.communal.ui.viewmodel.ResizeableItemFrameViewModel
@@ -120,6 +123,7 @@ private fun UpdateGridLayoutInfo(
private fun BoxScope.DragHandle(
    handle: DragHandle,
    dragState: AnchoredDraggableState<Int>,
    radius: Dp,
    outlinePadding: Dp,
    brush: Brush,
    alpha: () -> Float,
@@ -141,7 +145,7 @@ private fun BoxScope.DragHandle(
            if (dragState.anchors.size > 1) {
                drawCircle(
                    brush = brush,
                    radius = outlinePadding.toPx(),
                    radius = radius.toPx(),
                    center = Offset(size.width / 2, size.height / 2),
                    alpha = alpha(),
                )
@@ -183,10 +187,13 @@ fun ResizableItemFrame(
    verticalArrangement: Arrangement.Vertical,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    outlinePadding: Dp = 8.dp,
    dragHandleRadius: Dp = 8.dp,
    outlinePadding: Dp = if (hubEditModeTransition()) 0.dp else 8.dp,
    outlineColor: Color = MaterialTheme.colorScheme.primary,
    cornerRadius: Dp = 37.dp,
    strokeWidth: Dp = 3.dp,
    cornerRadius: Dp =
        if (hubEditModeTransition()) dimensionResource(system_app_widget_background_radius)
        else 37.dp,
    strokeWidth: Dp = if (hubEditModeTransition()) 4.dp else 3.dp,
    minHeightPx: Int = 0,
    maxHeightPx: Int = Int.MAX_VALUE,
    resizeMultiple: Int = 1,
@@ -197,7 +204,9 @@ fun ResizableItemFrame(
) {
    val brush = SolidColor(outlineColor)
    val onResizeUpdated by rememberUpdatedState(onResize)
    val dragHandleHeight = verticalArrangement.spacing - outlinePadding * 2
    val dragHandleHeight =
        if (hubEditModeTransition()) dragHandleRadius * 2
        else verticalArrangement.spacing - outlinePadding * 2
    val isDragging by
        remember(viewModel) {
            derivedStateOf {
@@ -217,6 +226,7 @@ fun ResizableItemFrame(
            DragHandle(
                handle = DragHandle.TOP,
                dragState = viewModel.topDragState,
                radius = dragHandleRadius,
                outlinePadding = outlinePadding,
                brush = brush,
                alpha = alpha,
@@ -226,6 +236,7 @@ fun ResizableItemFrame(
            DragHandle(
                handle = DragHandle.BOTTOM,
                dragState = viewModel.bottomDragState,
                radius = dragHandleRadius,
                outlinePadding = outlinePadding,
                brush = brush,
                alpha = alpha,