Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt +12 −15 Original line number Diff line number Diff line Loading @@ -282,13 +282,15 @@ private fun ContentScope.QuickSettingsLayout( ), ) { if (isFullWidthShade()) { VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding) QuickSettingsOverlayHeader( viewModel = qsContainerViewModel.shadeHeaderViewModel, modifier = Modifier.element(QuickSettingsShade.Elements.Header), ) VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding) } else { VerticalSeparator(QuickSettingsShade.Dimensions.Padding) } val toolbarViewModel = Loading @@ -300,8 +302,7 @@ private fun ContentScope.QuickSettingsLayout( viewModel = toolbarViewModel, ) // TODO(b/428805936): Double check this padding. VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding) Column(modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState())) { Media( Loading @@ -313,7 +314,7 @@ private fun ContentScope.QuickSettingsLayout( ) if (qsContainerViewModel.showMedia) { VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.Padding) } Box( Loading @@ -332,11 +333,10 @@ private fun ContentScope.QuickSettingsLayout( ) } VerticalSeparator() if (volumeSliderViewModel != null) { val volumeSliderState by volumeSliderViewModel.slider.collectAsStateWithLifecycle() VerticalSeparator(QuickSettingsShade.Dimensions.Padding) Box( Modifier.systemGestureExclusionInShade( enabled = { layoutState.transitionState is TransitionState.Idle } Loading Loading @@ -381,29 +381,24 @@ private fun ContentScope.QuickSettingsLayout( } } } VerticalSeparator() } GridAnchor() // TODO(b/428805936): Double check this padding. VerticalSeparator(QuickSettingsShade.Dimensions.Padding) GridAnchor() TileGrid( viewModel = qsContainerViewModel.tileGridViewModel, modifier = Modifier.fillMaxWidth(), enableRevealEffect = TileRevealFlag.isEnabled, ) // TODO(b/428805936): Double check this padding. VerticalSeparator(QuickSettingsShade.Dimensions.Padding * 2) VerticalSeparator(QuickSettingsShade.Dimensions.Padding) } } } @Composable private fun VerticalSeparator(height: Dp = QuickSettingsShade.Dimensions.Padding) { private fun VerticalSeparator(height: Dp) { Spacer(Modifier.height(height = height)) } Loading @@ -415,6 +410,8 @@ object QuickSettingsShade { } object Dimensions { // This is used around the header and toolbar val ShortPadding = 8.dp val Padding = 16.dp val ToolbarHeight = 48.dp } Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/toolbar/SecurityInfo.kt +1 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.qs.panels.ui.compose.toolbar import androidx.compose.foundation.basicMarquee import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CornerSize Loading Loading @@ -66,7 +65,6 @@ fun SecurityInfo( rememberExpandableController(color = Color.Transparent, shape = CircleShape), modifier = modifier .padding(horizontal = 4.dp) .borderOnFocus(color = MaterialTheme.colorScheme.secondary, CornerSize(0)) .semantics { if (onClick != null) { Loading @@ -91,7 +89,7 @@ fun SecurityInfo( text = viewModel.text, maxLines = 1, style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.primary, color = MaterialTheme.colorScheme.onSurface, modifier = Modifier.basicMarquee(iterations = 1, initialDelayMillis = 1000), ) } Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/toolbar/Toolbar.kt +18 −7 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout import androidx.compose.animation.SharedTransitionScope import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.size Loading @@ -39,6 +40,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap import com.android.compose.animation.Expandable import com.android.compose.theme.LocalAndroidColorScheme import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.compose.modifiers.sysuiResTag Loading @@ -61,12 +63,7 @@ fun Toolbar(viewModel: ToolbarViewModel, modifier: Modifier = Modifier) { SharedTransitionLayout(modifier = Modifier.weight(1f)) { AnimatedContent( targetState = securityInfoCollapsed, contentAlignment = if (securityInfoCollapsed) { Alignment.CenterStart } else { Alignment.Center }, contentAlignment = Alignment.CenterStart, label = "Toolbar.CollapsedSecurityInfo", ) { securityInfoCollapsed -> if (securityInfoCollapsed) { Loading Loading @@ -105,6 +102,7 @@ private fun SharedTransitionScope.StandardToolbarLayout( model = viewModel.userSwitcherViewModel, Modifier.sysuiResTag("multi_user_switch").minimumInteractiveComponentSize(), iconColor = Color.Unspecified, useIconColorProtection = true, ) // Edit mode button Loading Loading @@ -145,6 +143,7 @@ private fun IconButton( model: FooterActionsButtonViewModel?, modifier: Modifier = Modifier, iconColor: Color = MaterialTheme.colorScheme.onSurface, useIconColorProtection: Boolean = false, ) { if (model == null) { return Loading @@ -156,10 +155,22 @@ private fun IconButton( modifier = modifier.borderOnFocus(MaterialTheme.colorScheme.secondary, CornerSize(percent = 50)), useModifierBasedImplementation = true, ) { val protectionColor = if (useIconColorProtection) { LocalAndroidColorScheme.current.surfaceEffect1 } else { Color.Transparent } Box( modifier = Modifier.size(36.dp).background(color = protectionColor, shape = CircleShape), contentAlignment = Alignment.Center, ) { ToolbarIcon(icon = model.icon, modifier = Modifier.size(24.dp), tint = iconColor) } } } // TODO(b/394738023): Use com.android.systemui.common.ui.compose.Icon instead. @Composable Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsShadeOverlay.kt +12 −15 Original line number Diff line number Diff line Loading @@ -282,13 +282,15 @@ private fun ContentScope.QuickSettingsLayout( ), ) { if (isFullWidthShade()) { VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding) QuickSettingsOverlayHeader( viewModel = qsContainerViewModel.shadeHeaderViewModel, modifier = Modifier.element(QuickSettingsShade.Elements.Header), ) VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding) } else { VerticalSeparator(QuickSettingsShade.Dimensions.Padding) } val toolbarViewModel = Loading @@ -300,8 +302,7 @@ private fun ContentScope.QuickSettingsLayout( viewModel = toolbarViewModel, ) // TODO(b/428805936): Double check this padding. VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.ShortPadding) Column(modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState())) { Media( Loading @@ -313,7 +314,7 @@ private fun ContentScope.QuickSettingsLayout( ) if (qsContainerViewModel.showMedia) { VerticalSeparator() VerticalSeparator(QuickSettingsShade.Dimensions.Padding) } Box( Loading @@ -332,11 +333,10 @@ private fun ContentScope.QuickSettingsLayout( ) } VerticalSeparator() if (volumeSliderViewModel != null) { val volumeSliderState by volumeSliderViewModel.slider.collectAsStateWithLifecycle() VerticalSeparator(QuickSettingsShade.Dimensions.Padding) Box( Modifier.systemGestureExclusionInShade( enabled = { layoutState.transitionState is TransitionState.Idle } Loading Loading @@ -381,29 +381,24 @@ private fun ContentScope.QuickSettingsLayout( } } } VerticalSeparator() } GridAnchor() // TODO(b/428805936): Double check this padding. VerticalSeparator(QuickSettingsShade.Dimensions.Padding) GridAnchor() TileGrid( viewModel = qsContainerViewModel.tileGridViewModel, modifier = Modifier.fillMaxWidth(), enableRevealEffect = TileRevealFlag.isEnabled, ) // TODO(b/428805936): Double check this padding. VerticalSeparator(QuickSettingsShade.Dimensions.Padding * 2) VerticalSeparator(QuickSettingsShade.Dimensions.Padding) } } } @Composable private fun VerticalSeparator(height: Dp = QuickSettingsShade.Dimensions.Padding) { private fun VerticalSeparator(height: Dp) { Spacer(Modifier.height(height = height)) } Loading @@ -415,6 +410,8 @@ object QuickSettingsShade { } object Dimensions { // This is used around the header and toolbar val ShortPadding = 8.dp val Padding = 16.dp val ToolbarHeight = 48.dp } Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/toolbar/SecurityInfo.kt +1 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.qs.panels.ui.compose.toolbar import androidx.compose.foundation.basicMarquee import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CornerSize Loading Loading @@ -66,7 +65,6 @@ fun SecurityInfo( rememberExpandableController(color = Color.Transparent, shape = CircleShape), modifier = modifier .padding(horizontal = 4.dp) .borderOnFocus(color = MaterialTheme.colorScheme.secondary, CornerSize(0)) .semantics { if (onClick != null) { Loading @@ -91,7 +89,7 @@ fun SecurityInfo( text = viewModel.text, maxLines = 1, style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.primary, color = MaterialTheme.colorScheme.onSurface, modifier = Modifier.basicMarquee(iterations = 1, initialDelayMillis = 1000), ) } Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/toolbar/Toolbar.kt +18 −7 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout import androidx.compose.animation.SharedTransitionScope import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.size Loading @@ -39,6 +40,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap import com.android.compose.animation.Expandable import com.android.compose.theme.LocalAndroidColorScheme import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.load import com.android.systemui.compose.modifiers.sysuiResTag Loading @@ -61,12 +63,7 @@ fun Toolbar(viewModel: ToolbarViewModel, modifier: Modifier = Modifier) { SharedTransitionLayout(modifier = Modifier.weight(1f)) { AnimatedContent( targetState = securityInfoCollapsed, contentAlignment = if (securityInfoCollapsed) { Alignment.CenterStart } else { Alignment.Center }, contentAlignment = Alignment.CenterStart, label = "Toolbar.CollapsedSecurityInfo", ) { securityInfoCollapsed -> if (securityInfoCollapsed) { Loading Loading @@ -105,6 +102,7 @@ private fun SharedTransitionScope.StandardToolbarLayout( model = viewModel.userSwitcherViewModel, Modifier.sysuiResTag("multi_user_switch").minimumInteractiveComponentSize(), iconColor = Color.Unspecified, useIconColorProtection = true, ) // Edit mode button Loading Loading @@ -145,6 +143,7 @@ private fun IconButton( model: FooterActionsButtonViewModel?, modifier: Modifier = Modifier, iconColor: Color = MaterialTheme.colorScheme.onSurface, useIconColorProtection: Boolean = false, ) { if (model == null) { return Loading @@ -156,10 +155,22 @@ private fun IconButton( modifier = modifier.borderOnFocus(MaterialTheme.colorScheme.secondary, CornerSize(percent = 50)), useModifierBasedImplementation = true, ) { val protectionColor = if (useIconColorProtection) { LocalAndroidColorScheme.current.surfaceEffect1 } else { Color.Transparent } Box( modifier = Modifier.size(36.dp).background(color = protectionColor, shape = CircleShape), contentAlignment = Alignment.Center, ) { ToolbarIcon(icon = model.icon, modifier = Modifier.size(24.dp), tint = iconColor) } } } // TODO(b/394738023): Use com.android.systemui.common.ui.compose.Icon instead. @Composable Loading