diff options
2 files changed, 51 insertions, 27 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt index 43d51c37aa36..92f03d792554 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContainer.kt @@ -45,7 +45,7 @@ import com.android.systemui.Flags.glanceableHubBackGesture import com.android.systemui.communal.shared.model.CommunalBackgroundType import com.android.systemui.communal.shared.model.CommunalScenes import com.android.systemui.communal.shared.model.CommunalTransitionKeys -import com.android.systemui.communal.ui.compose.Dimensions.SlideOffsetY +import com.android.systemui.communal.ui.compose.Dimensions.Companion.SlideOffsetY import com.android.systemui.communal.ui.compose.extensions.allowGestures import com.android.systemui.communal.ui.viewmodel.CommunalViewModel import com.android.systemui.communal.util.CommunalColors diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt index f6535ec0b710..b4a4412c9fc2 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt @@ -16,6 +16,8 @@ package com.android.systemui.communal.ui.compose +import android.content.Context +import android.content.res.Configuration import android.graphics.drawable.Icon import android.os.Bundle import android.util.SizeF @@ -113,6 +115,7 @@ import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.layout.positionInWindow +import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag @@ -126,6 +129,7 @@ import androidx.compose.ui.semantics.onClick import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.LayoutDirection @@ -379,6 +383,10 @@ fun CommunalHub( } } +val hubDimensions: Dimensions + @Composable + get() = Dimensions(LocalContext.current, LocalConfiguration.current, LocalDensity.current) + @Composable private fun DisclaimerBottomSheetContent(onButtonClicked: () -> Unit) { val colors = LocalAndroidColorScheme.current @@ -494,7 +502,7 @@ private fun BoxScope.CommunalHubLazyGrid( // for android drag events. Box(Modifier.fillMaxSize().dragAndDropTarget(dragAndDropTargetState)) {} } else { - gridModifier = gridModifier.height(Dimensions.GridHeight) + gridModifier = gridModifier.height(hubDimensions.GridHeight) } LazyHorizontalGrid( @@ -572,7 +580,7 @@ private fun EmptyStateCta( ) { val colors = LocalAndroidColorScheme.current Card( - modifier = Modifier.height(Dimensions.GridHeight).padding(contentPadding), + modifier = Modifier.height(hubDimensions.GridHeight).padding(contentPadding), colors = CardDefaults.cardColors(containerColor = Color.Transparent), border = BorderStroke(3.dp, colors.secondary), shape = RoundedCornerShape(size = 80.dp) @@ -1241,7 +1249,7 @@ private fun gridContentPadding(isEditMode: Boolean, toolbarSize: IntSize?): Padd return PaddingValues( start = Dimensions.ItemSpacing, end = Dimensions.ItemSpacing, - top = Dimensions.GridTopSpacing, + top = hubDimensions.GridTopSpacing, ) } val context = LocalContext.current @@ -1250,7 +1258,8 @@ private fun gridContentPadding(isEditMode: Boolean, toolbarSize: IntSize?): Padd val screenHeight = with(density) { windowMetrics.bounds.height().toDp() } val toolbarHeight = with(density) { Dimensions.ToolbarPaddingTop + toolbarSize.height.toDp() } val verticalPadding = - ((screenHeight - toolbarHeight - Dimensions.GridHeight + Dimensions.GridTopSpacing) / 2) + ((screenHeight - toolbarHeight - hubDimensions.GridHeight + hubDimensions.GridTopSpacing) / + 2) .coerceAtLeast(Dimensions.Spacing) return PaddingValues( start = Dimensions.ToolbarPaddingHorizontal, @@ -1306,29 +1315,44 @@ data class ContentPaddingInPx(val start: Float, val top: Float) { fun toOffset(): Offset = Offset(start, top) } -object Dimensions { - val CardHeightFull = 530.dp - val GridTopSpacing = 114.dp +class Dimensions(val context: Context, val config: Configuration, val density: Density) { + val GridTopSpacing: Dp + get() { + if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { + return 114.dp + } else { + val windowMetrics = + WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(context) + val screenHeight = with(density) { windowMetrics.bounds.height().toDp() } + + return (screenHeight - CardHeightFull) / 2 + } + } + val GridHeight = CardHeightFull + GridTopSpacing - val ItemSpacing = 50.dp - val CardHeightHalf = (CardHeightFull - ItemSpacing) / 2 - val CardHeightThird = (CardHeightFull - (2 * ItemSpacing)) / 3 - val CardWidth = 360.dp - val CardOutlineWidth = 3.dp - val Spacing = ItemSpacing / 2 - - // The sizing/padding of the toolbar in glanceable hub edit mode - val ToolbarPaddingTop = 27.dp - val ToolbarPaddingHorizontal = ItemSpacing - val ToolbarButtonPaddingHorizontal = 24.dp - val ToolbarButtonPaddingVertical = 16.dp - val ButtonPadding = - PaddingValues( - vertical = ToolbarButtonPaddingVertical, - horizontal = ToolbarButtonPaddingHorizontal, - ) - val IconSize = 40.dp - val SlideOffsetY = 30.dp + + companion object { + val CardHeightFull = 530.dp + val ItemSpacing = 50.dp + val CardHeightHalf = (CardHeightFull - ItemSpacing) / 2 + val CardHeightThird = (CardHeightFull - (2 * ItemSpacing)) / 3 + val CardWidth = 360.dp + val CardOutlineWidth = 3.dp + val Spacing = ItemSpacing / 2 + + // The sizing/padding of the toolbar in glanceable hub edit mode + val ToolbarPaddingTop = 27.dp + val ToolbarPaddingHorizontal = ItemSpacing + val ToolbarButtonPaddingHorizontal = 24.dp + val ToolbarButtonPaddingVertical = 16.dp + val ButtonPadding = + PaddingValues( + vertical = ToolbarButtonPaddingVertical, + horizontal = ToolbarButtonPaddingHorizontal, + ) + val IconSize = 40.dp + val SlideOffsetY = 30.dp + } } private object Colors { |