summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt15
1 files changed, 12 insertions, 3 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt
index 630497998c3e..f9f91d27218c 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt
@@ -420,17 +420,26 @@ private fun SceneScope.QuickSettingsScene(
.navigationBarsPadding()
.padding(horizontal = shadeHorizontalPadding),
)
+
+ // The minimum possible value for the top of the notification stack. In other words: how
+ // high is the notification stack allowed to get when the scene is at rest. It may still be
+ // translated farther upwards by a transition animation but, at rest, the top edge of its
+ // bounds must be limited to be at or below this value.
+ //
+ // A 1 pixel is added to compensate for any kind of rounding errors to make sure 100% that
+ // the notification stack is entirely "below" the entire screen.
+ val minNotificationStackTop = screenHeight.roundToInt() + 1
NotificationScrollingStack(
shadeSession = shadeSession,
stackScrollView = notificationStackScrollView,
viewModel = notificationsPlaceholderViewModel,
- maxScrimTop = { screenHeight },
+ maxScrimTop = { minNotificationStackTop.toFloat() },
shouldPunchHoleBehindScrim = shouldPunchHoleBehindScrim,
shouldIncludeHeadsUpSpace = false,
shadeMode = ShadeMode.Single,
modifier =
Modifier.fillMaxWidth()
- .offset { IntOffset(x = 0, y = screenHeight.roundToInt()) }
+ .offset { IntOffset(x = 0, y = minNotificationStackTop) }
.padding(horizontal = shadeHorizontalPadding),
)
NotificationStackCutoffGuideline(
@@ -439,7 +448,7 @@ private fun SceneScope.QuickSettingsScene(
modifier =
Modifier.align(Alignment.BottomCenter)
.navigationBarsPadding()
- .offset { IntOffset(x = 0, y = screenHeight.roundToInt()) }
+ .offset { IntOffset(x = 0, y = minNotificationStackTop) }
.padding(horizontal = shadeHorizontalPadding),
)
}