[multi-shade] Remove shade content padding when the shade is collapsed.

Having non-zero padding around the shade content when the shade is
collapsed actually protrudes into the display and swallows clicks on the
user switcher chip in the status bar near the top of the display.

This CL fixes that by calculating the padding dynamically such that it's
never bigger than 12dp or the height of shade, whichever is smaller.

Bug: 274159734
Test: manually verified that I can click on the user switcher chip in
the status bar when the shade is collapsed. I even used a stylus for
increased accuracy. I also verified that the shade can be expanded and
collapsed normally both from outside of it and inside of it.

Change-Id: I5fab6d9ab6f0e1d771866fcb0330a6c44846d89b
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/multishade/ui/composable/Shade.kt b/packages/SystemUI/compose/features/src/com/android/systemui/multishade/ui/composable/Shade.kt
index 98ef57f9..cfcc2fb 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/multishade/ui/composable/Shade.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/multishade/ui/composable/Shade.kt
@@ -22,7 +22,6 @@
 import androidx.compose.foundation.interaction.InteractionSource
 import androidx.compose.foundation.interaction.MutableInteractionSource
 import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.width
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material3.Surface
@@ -41,6 +40,7 @@
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
 import com.android.compose.modifiers.height
+import com.android.compose.modifiers.padding
 import com.android.compose.swipeable.FixedThreshold
 import com.android.compose.swipeable.SwipeableState
 import com.android.compose.swipeable.ThresholdConfig
@@ -48,6 +48,7 @@
 import com.android.compose.swipeable.swipeable
 import com.android.systemui.multishade.shared.model.ProxiedInputModel
 import com.android.systemui.multishade.ui.viewmodel.ShadeViewModel
+import kotlin.math.min
 import kotlin.math.roundToInt
 import kotlinx.coroutines.launch
 
@@ -145,13 +146,31 @@
     modifier: Modifier = Modifier,
     content: @Composable () -> Unit = {},
 ) {
+    /**
+     * Returns a function that takes in [Density] and returns the current padding around the shade
+     * content.
+     */
+    fun padding(
+        shadeHeightPx: () -> Float,
+    ): Density.() -> Int {
+        return {
+            min(
+                12.dp.toPx().roundToInt(),
+                shadeHeightPx().roundToInt(),
+            )
+        }
+    }
+
     Surface(
         shape = RoundedCornerShape(32.dp),
         modifier =
             modifier
-                .padding(12.dp)
                 .fillMaxWidth()
                 .height { shadeHeightPx().roundToInt() }
+                .padding(
+                    horizontal = padding(shadeHeightPx),
+                    vertical = padding(shadeHeightPx),
+                )
                 .graphicsLayer {
                     // Applies the vertical over-stretching of the shade content that may happen if
                     // the user keep dragging down when the shade is already fully-expanded.