Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt +15 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.lifecycle.compose.collectAsStateWithLifecycle Loading @@ -45,6 +47,7 @@ import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Companion.Collaps import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Expanding import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQQS import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQS import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes object QuickSettings { Loading Loading @@ -73,10 +76,21 @@ object QuickSettings { val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") object MediaOffset { val InQQS = 0.dp // Brightness + padding val InQS = 92.dp val Default = 0.dp @Composable fun inQqs(isMediaInRow: Boolean): Dp { return if (isMediaInRow) { // Tiles are laid out in a center of a container, that has this // margin on the bottom. This compensates this margin, so that the Media // Carousel can be properly centered -dimensionResource(id = R.dimen.qqs_layout_padding_bottom) / 2 } else { 0.dp } } } } } Loading packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt +6 −3 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ import com.android.compose.animation.scene.NestedScrollBehavior import com.android.compose.animation.scene.SceneScope import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult import com.android.compose.animation.scene.animateSceneDpAsState import com.android.compose.animation.scene.animateContentDpAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding Loading Loading @@ -100,7 +100,6 @@ import com.android.systemui.qs.footer.ui.compose.FooterActionsWithAnimatedVisibi import com.android.systemui.qs.ui.composable.BrightnessMirror import com.android.systemui.qs.ui.composable.QuickSettings import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaLandscapeTopOffset import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaOffset.InQQS import com.android.systemui.res.R import com.android.systemui.scene.session.ui.composable.SaveableSession import com.android.systemui.scene.shared.model.Scenes Loading Loading @@ -291,7 +290,11 @@ private fun SceneScope.SingleShade( // Media is visible and we are in landscape on a small height screen val mediaInRow = isMediaVisible && isLandscape() val mediaOffset by animateSceneDpAsState(value = InQQS, key = MediaLandscapeTopOffset, canOverflow = false) animateContentDpAsState( value = QuickSettings.SharedValues.MediaOffset.inQqs(mediaInRow), key = MediaLandscapeTopOffset, canOverflow = false, ) val navBarHeight = WindowInsets.systemBars.asPaddingValues().calculateBottomPadding() Loading packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt +22 −13 Original line number Diff line number Diff line Loading @@ -90,14 +90,23 @@ class SingleShadeMeasurePolicy( y = insetsTop + shadeHeaderPlaceable.height, ) if (mediaPlaceable != null) if (isMediaInRow) { mediaPlaceable?.placeRelative( // mediaPlaceable height ranges from 0 to qsHeight. We want it to be centered // vertically when it's smaller than the QS val mediaCenteringOffset = (quickSettingsPlaceable.height - mediaPlaceable.height) / 2 mediaPlaceable.placeRelative( x = insetsLeft + constraintsWithCutout.maxWidth / 2, y = mediaOffset() + insetsTop + shadeHeaderPlaceable.height, y = insetsTop + shadeHeaderPlaceable.height + mediaCenteringOffset + mediaOffset(), zIndex = mediaZIndex(), ) } else { mediaPlaceable?.placeRelative( mediaPlaceable.placeRelative( x = insetsLeft, y = insetsTop + shadeHeaderPlaceable.height + quickSettingsPlaceable.height, zIndex = mediaZIndex(), Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt +15 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.lifecycle.compose.collectAsStateWithLifecycle Loading @@ -45,6 +47,7 @@ import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Companion.Collaps import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Expanding import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQQS import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQS import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes object QuickSettings { Loading Loading @@ -73,10 +76,21 @@ object QuickSettings { val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") object MediaOffset { val InQQS = 0.dp // Brightness + padding val InQS = 92.dp val Default = 0.dp @Composable fun inQqs(isMediaInRow: Boolean): Dp { return if (isMediaInRow) { // Tiles are laid out in a center of a container, that has this // margin on the bottom. This compensates this margin, so that the Media // Carousel can be properly centered -dimensionResource(id = R.dimen.qqs_layout_padding_bottom) / 2 } else { 0.dp } } } } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt +6 −3 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ import com.android.compose.animation.scene.NestedScrollBehavior import com.android.compose.animation.scene.SceneScope import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult import com.android.compose.animation.scene.animateSceneDpAsState import com.android.compose.animation.scene.animateContentDpAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding Loading Loading @@ -100,7 +100,6 @@ import com.android.systemui.qs.footer.ui.compose.FooterActionsWithAnimatedVisibi import com.android.systemui.qs.ui.composable.BrightnessMirror import com.android.systemui.qs.ui.composable.QuickSettings import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaLandscapeTopOffset import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaOffset.InQQS import com.android.systemui.res.R import com.android.systemui.scene.session.ui.composable.SaveableSession import com.android.systemui.scene.shared.model.Scenes Loading Loading @@ -291,7 +290,11 @@ private fun SceneScope.SingleShade( // Media is visible and we are in landscape on a small height screen val mediaInRow = isMediaVisible && isLandscape() val mediaOffset by animateSceneDpAsState(value = InQQS, key = MediaLandscapeTopOffset, canOverflow = false) animateContentDpAsState( value = QuickSettings.SharedValues.MediaOffset.inQqs(mediaInRow), key = MediaLandscapeTopOffset, canOverflow = false, ) val navBarHeight = WindowInsets.systemBars.asPaddingValues().calculateBottomPadding() Loading
packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt +22 −13 Original line number Diff line number Diff line Loading @@ -90,14 +90,23 @@ class SingleShadeMeasurePolicy( y = insetsTop + shadeHeaderPlaceable.height, ) if (mediaPlaceable != null) if (isMediaInRow) { mediaPlaceable?.placeRelative( // mediaPlaceable height ranges from 0 to qsHeight. We want it to be centered // vertically when it's smaller than the QS val mediaCenteringOffset = (quickSettingsPlaceable.height - mediaPlaceable.height) / 2 mediaPlaceable.placeRelative( x = insetsLeft + constraintsWithCutout.maxWidth / 2, y = mediaOffset() + insetsTop + shadeHeaderPlaceable.height, y = insetsTop + shadeHeaderPlaceable.height + mediaCenteringOffset + mediaOffset(), zIndex = mediaZIndex(), ) } else { mediaPlaceable?.placeRelative( mediaPlaceable.placeRelative( x = insetsLeft, y = insetsTop + shadeHeaderPlaceable.height + quickSettingsPlaceable.height, zIndex = mediaZIndex(), Loading