Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt +13 −30 Original line number Original line Diff line number Diff line Loading @@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue Loading Loading @@ -70,10 +69,7 @@ constructor( override val id: String = "default" override val id: String = "default" @Composable @Composable override fun SceneScope.Content( override fun SceneScope.Content(viewModel: LockscreenContentViewModel, modifier: Modifier) { viewModel: LockscreenContentViewModel, modifier: Modifier, ) { val isUdfpsVisible = viewModel.isUdfpsVisible val isUdfpsVisible = viewModel.isUdfpsVisible val isShadeLayoutWide by viewModel.isShadeLayoutWide.collectAsStateWithLifecycle() val isShadeLayoutWide by viewModel.isShadeLayoutWide.collectAsStateWithLifecycle() val unfoldTranslations by viewModel.unfoldTranslations.collectAsStateWithLifecycle() val unfoldTranslations by viewModel.unfoldTranslations.collectAsStateWithLifecycle() Loading @@ -85,22 +81,18 @@ constructor( with(notificationSection) { HeadsUpNotifications() } with(notificationSection) { HeadsUpNotifications() } } } LockscreenLongPress( LockscreenLongPress(viewModel = viewModel.touchHandling, modifier = modifier) { viewModel = viewModel.touchHandling, onSettingsMenuPlaced -> modifier = modifier, ) { onSettingsMenuPlaced -> Layout( Layout( content = { content = { // Constrained to above the lock icon. // Constrained to above the lock icon. Column( Column(modifier = Modifier.fillMaxSize()) { modifier = Modifier.fillMaxSize(), ) { with(statusBarSection) { with(statusBarSection) { StatusBar( StatusBar( modifier = modifier = Modifier.fillMaxWidth() Modifier.fillMaxWidth() .padding( .padding( horizontal = { unfoldTranslations.start.roundToInt() }, horizontal = { unfoldTranslations.start.roundToInt() } ) ) ) ) } } Loading @@ -109,13 +101,14 @@ constructor( with(topAreaSection) { with(topAreaSection) { DefaultClockLayout( DefaultClockLayout( smartSpacePaddingTop = viewModel::getSmartSpacePaddingTop, smartSpacePaddingTop = viewModel::getSmartSpacePaddingTop, isShadeLayoutWide = isShadeLayoutWide, modifier = modifier = Modifier.thenIf(isShadeLayoutWide) { Modifier.thenIf(isShadeLayoutWide) { Modifier.fillMaxWidth(0.5f) Modifier.fillMaxWidth(0.5f) } } .graphicsLayer { .graphicsLayer { translationX = unfoldTranslations.start translationX = unfoldTranslations.start } }, ) ) } } if (isShadeLayoutWide && !isBypassEnabled) { if (isShadeLayoutWide && !isBypassEnabled) { Loading @@ -127,7 +120,7 @@ constructor( modifier = modifier = Modifier.fillMaxWidth(0.5f) Modifier.fillMaxWidth(0.5f) .fillMaxHeight() .fillMaxHeight() .align(alignment = Alignment.TopEnd) .align(alignment = Alignment.TopEnd), ) ) } } } } Loading @@ -142,7 +135,7 @@ constructor( AodNotificationIcons( AodNotificationIcons( modifier = modifier = Modifier.align(alignment = Alignment.TopStart) Modifier.align(alignment = Alignment.TopStart) .padding(start = aodIconPadding), .padding(start = aodIconPadding) ) ) Notifications( Notifications( areNotificationsVisible = areNotificationsVisible, areNotificationsVisible = areNotificationsVisible, Loading @@ -152,7 +145,7 @@ constructor( } } } else { } else { AodNotificationIcons( AodNotificationIcons( modifier = Modifier.padding(start = aodIconPadding), modifier = Modifier.padding(start = aodIconPadding) ) ) } } } } Loading Loading @@ -205,11 +198,7 @@ constructor( val endShortcutMeasurable = measurables[4] val endShortcutMeasurable = measurables[4] val settingsMenuMeasurable = measurables[5] val settingsMenuMeasurable = measurables[5] val noMinConstraints = val noMinConstraints = constraints.copy(minWidth = 0, minHeight = 0) constraints.copy( minWidth = 0, minHeight = 0, ) val lockIconPlaceable = lockIconMeasurable.measure(noMinConstraints) val lockIconPlaceable = lockIconMeasurable.measure(noMinConstraints) val lockIconBounds = val lockIconBounds = IntRect( IntRect( Loading @@ -235,14 +224,8 @@ constructor( val settingsMenuPlaceable = settingsMenuMeasurable.measure(noMinConstraints) val settingsMenuPlaceable = settingsMenuMeasurable.measure(noMinConstraints) layout(constraints.maxWidth, constraints.maxHeight) { layout(constraints.maxWidth, constraints.maxHeight) { aboveLockIconPlaceable.place( aboveLockIconPlaceable.place(x = 0, y = 0) x = 0, lockIconPlaceable.place(x = lockIconBounds.left, y = lockIconBounds.top) y = 0, ) lockIconPlaceable.place( x = lockIconBounds.left, y = lockIconBounds.top, ) belowLockIconPlaceable.place( belowLockIconPlaceable.place( x = 0, x = 0, y = constraints.maxHeight - belowLockIconPlaceable.height, y = constraints.maxHeight - belowLockIconPlaceable.height, Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/MediaCarouselSection.kt +15 −3 Original line number Original line Diff line number Diff line Loading @@ -17,9 +17,11 @@ package com.android.systemui.keyguard.ui.composable.section package com.android.systemui.keyguard.ui.composable.section import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier import androidx.compose.ui.res.dimensionResource import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.SceneScope import com.android.compose.animation.scene.SceneScope import com.android.systemui.keyguard.ui.viewmodel.KeyguardMediaViewModel import com.android.systemui.keyguard.ui.viewmodel.KeyguardMediaViewModel Loading @@ -27,6 +29,7 @@ import com.android.systemui.media.controls.ui.composable.MediaCarousel import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.view.MediaHost import com.android.systemui.media.controls.ui.view.MediaHost import com.android.systemui.media.dagger.MediaModule import com.android.systemui.media.dagger.MediaModule import com.android.systemui.res.R import javax.inject.Inject import javax.inject.Inject import javax.inject.Named import javax.inject.Named Loading @@ -39,13 +42,22 @@ constructor( ) { ) { @Composable @Composable fun SceneScope.KeyguardMediaCarousel() { fun SceneScope.KeyguardMediaCarousel( isShadeLayoutWide: Boolean, modifier: Modifier = Modifier, ) { val isMediaVisible by keyguardMediaViewModel.isMediaVisible.collectAsStateWithLifecycle() val isMediaVisible by keyguardMediaViewModel.isMediaVisible.collectAsStateWithLifecycle() val horizontalPadding = if (isShadeLayoutWide) { dimensionResource(id = R.dimen.notification_side_paddings) } else { dimensionResource(id = R.dimen.notification_side_paddings) + dimensionResource(id = R.dimen.notification_panel_margin_horizontal) } MediaCarousel( MediaCarousel( isVisible = isMediaVisible, isVisible = isMediaVisible, mediaHost = mediaHost, mediaHost = mediaHost, modifier = Modifier.fillMaxWidth(), modifier = modifier.fillMaxWidth().padding(horizontal = horizontalPadding), carouselController = mediaCarouselController, carouselController = mediaCarouselController, ) ) } } Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -63,6 +63,7 @@ constructor( @Composable @Composable fun SceneScope.DefaultClockLayout( fun SceneScope.DefaultClockLayout( smartSpacePaddingTop: (Resources) -> Int, smartSpacePaddingTop: (Resources) -> Int, isShadeLayoutWide: Boolean, modifier: Modifier = Modifier, modifier: Modifier = Modifier, ) { ) { val currentClockLayout by clockViewModel.currentClockLayout.collectAsStateWithLifecycle() val currentClockLayout by clockViewModel.currentClockLayout.collectAsStateWithLifecycle() Loading Loading @@ -128,7 +129,7 @@ constructor( ) ) } } } } with(mediaCarouselSection) { KeyguardMediaCarousel() } with(mediaCarouselSection) { KeyguardMediaCarousel(isShadeLayoutWide) } } } } } Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt +2 −2 Original line number Original line Diff line number Diff line Loading @@ -79,8 +79,8 @@ object QuickSettings { val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") object MediaOffset { object MediaOffset { // Brightness + padding // Brightness val InQS = 92.dp val InQS = 60.dp val Default = 0.dp val Default = 0.dp @Composable @Composable Loading packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,7 @@ import com.android.compose.animation.scene.UserActionResult import com.android.compose.animation.scene.animateSceneDpAsState import com.android.compose.animation.scene.animateSceneDpAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding import com.android.compose.modifiers.thenIf import com.android.compose.modifiers.thenIf import com.android.compose.windowsizeclass.LocalWindowSizeClass import com.android.compose.windowsizeclass.LocalWindowSizeClass import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.battery.BatteryMeterViewController Loading Loading @@ -379,7 +380,11 @@ private fun SceneScope.QuickSettingsScene( mediaHost = mediaHost, mediaHost = mediaHost, modifier = modifier = Modifier.fillMaxWidth() Modifier.fillMaxWidth() .layoutId(QSMediaMeasurePolicy.LayoutId.Media), .layoutId(QSMediaMeasurePolicy.LayoutId.Media) .padding( horizontal = dimensionResource(id = R.dimen.qs_horizontal_margin) ), carouselController = mediaCarouselController, carouselController = mediaCarouselController, ) ) } } Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt +13 −30 Original line number Original line Diff line number Diff line Loading @@ -21,7 +21,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue Loading Loading @@ -70,10 +69,7 @@ constructor( override val id: String = "default" override val id: String = "default" @Composable @Composable override fun SceneScope.Content( override fun SceneScope.Content(viewModel: LockscreenContentViewModel, modifier: Modifier) { viewModel: LockscreenContentViewModel, modifier: Modifier, ) { val isUdfpsVisible = viewModel.isUdfpsVisible val isUdfpsVisible = viewModel.isUdfpsVisible val isShadeLayoutWide by viewModel.isShadeLayoutWide.collectAsStateWithLifecycle() val isShadeLayoutWide by viewModel.isShadeLayoutWide.collectAsStateWithLifecycle() val unfoldTranslations by viewModel.unfoldTranslations.collectAsStateWithLifecycle() val unfoldTranslations by viewModel.unfoldTranslations.collectAsStateWithLifecycle() Loading @@ -85,22 +81,18 @@ constructor( with(notificationSection) { HeadsUpNotifications() } with(notificationSection) { HeadsUpNotifications() } } } LockscreenLongPress( LockscreenLongPress(viewModel = viewModel.touchHandling, modifier = modifier) { viewModel = viewModel.touchHandling, onSettingsMenuPlaced -> modifier = modifier, ) { onSettingsMenuPlaced -> Layout( Layout( content = { content = { // Constrained to above the lock icon. // Constrained to above the lock icon. Column( Column(modifier = Modifier.fillMaxSize()) { modifier = Modifier.fillMaxSize(), ) { with(statusBarSection) { with(statusBarSection) { StatusBar( StatusBar( modifier = modifier = Modifier.fillMaxWidth() Modifier.fillMaxWidth() .padding( .padding( horizontal = { unfoldTranslations.start.roundToInt() }, horizontal = { unfoldTranslations.start.roundToInt() } ) ) ) ) } } Loading @@ -109,13 +101,14 @@ constructor( with(topAreaSection) { with(topAreaSection) { DefaultClockLayout( DefaultClockLayout( smartSpacePaddingTop = viewModel::getSmartSpacePaddingTop, smartSpacePaddingTop = viewModel::getSmartSpacePaddingTop, isShadeLayoutWide = isShadeLayoutWide, modifier = modifier = Modifier.thenIf(isShadeLayoutWide) { Modifier.thenIf(isShadeLayoutWide) { Modifier.fillMaxWidth(0.5f) Modifier.fillMaxWidth(0.5f) } } .graphicsLayer { .graphicsLayer { translationX = unfoldTranslations.start translationX = unfoldTranslations.start } }, ) ) } } if (isShadeLayoutWide && !isBypassEnabled) { if (isShadeLayoutWide && !isBypassEnabled) { Loading @@ -127,7 +120,7 @@ constructor( modifier = modifier = Modifier.fillMaxWidth(0.5f) Modifier.fillMaxWidth(0.5f) .fillMaxHeight() .fillMaxHeight() .align(alignment = Alignment.TopEnd) .align(alignment = Alignment.TopEnd), ) ) } } } } Loading @@ -142,7 +135,7 @@ constructor( AodNotificationIcons( AodNotificationIcons( modifier = modifier = Modifier.align(alignment = Alignment.TopStart) Modifier.align(alignment = Alignment.TopStart) .padding(start = aodIconPadding), .padding(start = aodIconPadding) ) ) Notifications( Notifications( areNotificationsVisible = areNotificationsVisible, areNotificationsVisible = areNotificationsVisible, Loading @@ -152,7 +145,7 @@ constructor( } } } else { } else { AodNotificationIcons( AodNotificationIcons( modifier = Modifier.padding(start = aodIconPadding), modifier = Modifier.padding(start = aodIconPadding) ) ) } } } } Loading Loading @@ -205,11 +198,7 @@ constructor( val endShortcutMeasurable = measurables[4] val endShortcutMeasurable = measurables[4] val settingsMenuMeasurable = measurables[5] val settingsMenuMeasurable = measurables[5] val noMinConstraints = val noMinConstraints = constraints.copy(minWidth = 0, minHeight = 0) constraints.copy( minWidth = 0, minHeight = 0, ) val lockIconPlaceable = lockIconMeasurable.measure(noMinConstraints) val lockIconPlaceable = lockIconMeasurable.measure(noMinConstraints) val lockIconBounds = val lockIconBounds = IntRect( IntRect( Loading @@ -235,14 +224,8 @@ constructor( val settingsMenuPlaceable = settingsMenuMeasurable.measure(noMinConstraints) val settingsMenuPlaceable = settingsMenuMeasurable.measure(noMinConstraints) layout(constraints.maxWidth, constraints.maxHeight) { layout(constraints.maxWidth, constraints.maxHeight) { aboveLockIconPlaceable.place( aboveLockIconPlaceable.place(x = 0, y = 0) x = 0, lockIconPlaceable.place(x = lockIconBounds.left, y = lockIconBounds.top) y = 0, ) lockIconPlaceable.place( x = lockIconBounds.left, y = lockIconBounds.top, ) belowLockIconPlaceable.place( belowLockIconPlaceable.place( x = 0, x = 0, y = constraints.maxHeight - belowLockIconPlaceable.height, y = constraints.maxHeight - belowLockIconPlaceable.height, Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/MediaCarouselSection.kt +15 −3 Original line number Original line Diff line number Diff line Loading @@ -17,9 +17,11 @@ package com.android.systemui.keyguard.ui.composable.section package com.android.systemui.keyguard.ui.composable.section import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier import androidx.compose.ui.res.dimensionResource import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.SceneScope import com.android.compose.animation.scene.SceneScope import com.android.systemui.keyguard.ui.viewmodel.KeyguardMediaViewModel import com.android.systemui.keyguard.ui.viewmodel.KeyguardMediaViewModel Loading @@ -27,6 +29,7 @@ import com.android.systemui.media.controls.ui.composable.MediaCarousel import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.controller.MediaCarouselController import com.android.systemui.media.controls.ui.view.MediaHost import com.android.systemui.media.controls.ui.view.MediaHost import com.android.systemui.media.dagger.MediaModule import com.android.systemui.media.dagger.MediaModule import com.android.systemui.res.R import javax.inject.Inject import javax.inject.Inject import javax.inject.Named import javax.inject.Named Loading @@ -39,13 +42,22 @@ constructor( ) { ) { @Composable @Composable fun SceneScope.KeyguardMediaCarousel() { fun SceneScope.KeyguardMediaCarousel( isShadeLayoutWide: Boolean, modifier: Modifier = Modifier, ) { val isMediaVisible by keyguardMediaViewModel.isMediaVisible.collectAsStateWithLifecycle() val isMediaVisible by keyguardMediaViewModel.isMediaVisible.collectAsStateWithLifecycle() val horizontalPadding = if (isShadeLayoutWide) { dimensionResource(id = R.dimen.notification_side_paddings) } else { dimensionResource(id = R.dimen.notification_side_paddings) + dimensionResource(id = R.dimen.notification_panel_margin_horizontal) } MediaCarousel( MediaCarousel( isVisible = isMediaVisible, isVisible = isMediaVisible, mediaHost = mediaHost, mediaHost = mediaHost, modifier = Modifier.fillMaxWidth(), modifier = modifier.fillMaxWidth().padding(horizontal = horizontalPadding), carouselController = mediaCarouselController, carouselController = mediaCarouselController, ) ) } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt +2 −1 Original line number Original line Diff line number Diff line Loading @@ -63,6 +63,7 @@ constructor( @Composable @Composable fun SceneScope.DefaultClockLayout( fun SceneScope.DefaultClockLayout( smartSpacePaddingTop: (Resources) -> Int, smartSpacePaddingTop: (Resources) -> Int, isShadeLayoutWide: Boolean, modifier: Modifier = Modifier, modifier: Modifier = Modifier, ) { ) { val currentClockLayout by clockViewModel.currentClockLayout.collectAsStateWithLifecycle() val currentClockLayout by clockViewModel.currentClockLayout.collectAsStateWithLifecycle() Loading Loading @@ -128,7 +129,7 @@ constructor( ) ) } } } } with(mediaCarouselSection) { KeyguardMediaCarousel() } with(mediaCarouselSection) { KeyguardMediaCarousel(isShadeLayoutWide) } } } } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt +2 −2 Original line number Original line Diff line number Diff line Loading @@ -79,8 +79,8 @@ object QuickSettings { val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") object MediaOffset { object MediaOffset { // Brightness + padding // Brightness val InQS = 92.dp val InQS = 60.dp val Default = 0.dp val Default = 0.dp @Composable @Composable Loading
packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettingsScene.kt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,7 @@ import com.android.compose.animation.scene.UserActionResult import com.android.compose.animation.scene.animateSceneDpAsState import com.android.compose.animation.scene.animateSceneDpAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding import com.android.compose.modifiers.thenIf import com.android.compose.modifiers.thenIf import com.android.compose.windowsizeclass.LocalWindowSizeClass import com.android.compose.windowsizeclass.LocalWindowSizeClass import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.battery.BatteryMeterViewController Loading Loading @@ -379,7 +380,11 @@ private fun SceneScope.QuickSettingsScene( mediaHost = mediaHost, mediaHost = mediaHost, modifier = modifier = Modifier.fillMaxWidth() Modifier.fillMaxWidth() .layoutId(QSMediaMeasurePolicy.LayoutId.Media), .layoutId(QSMediaMeasurePolicy.LayoutId.Media) .padding( horizontal = dimensionResource(id = R.dimen.qs_horizontal_margin) ), carouselController = mediaCarouselController, carouselController = mediaCarouselController, ) ) } } Loading