diff options
| -rw-r--r-- | packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt | 15 |
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), ) } |