Loading packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/GoneScene.kt +36 −0 Original line number Diff line number Diff line Loading @@ -17,17 +17,28 @@ package com.android.systemui.scene.ui.composable import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.absoluteOffset import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.unit.IntOffset 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.animateSceneFloatAsState import com.android.internal.policy.SystemBarUtils import com.android.systemui.dagger.SysUISingleton import com.android.systemui.notifications.ui.composable.HeadsUpNotificationSpace import com.android.systemui.qs.ui.composable.QuickSettings import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.viewmodel.GoneSceneViewModel import com.android.systemui.statusbar.notification.stack.ui.view.NotificationScrollView import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationsPlaceholderViewModel import dagger.Lazy import javax.inject.Inject import kotlinx.coroutines.flow.StateFlow Loading @@ -39,6 +50,8 @@ import kotlinx.coroutines.flow.StateFlow class GoneScene @Inject constructor( private val notificationStackScrolLView: Lazy<NotificationScrollView>, private val notificationsPlaceholderViewModel: NotificationsPlaceholderViewModel, private val viewModel: GoneSceneViewModel, ) : ComposableScene { override val key = Scenes.Gone Loading @@ -55,5 +68,28 @@ constructor( key = QuickSettings.SharedValues.TilesSquishiness, ) Spacer(modifier.fillMaxSize()) HeadsUpNotificationStack( stackScrollView = notificationStackScrolLView.get(), viewModel = notificationsPlaceholderViewModel ) } } @Composable private fun SceneScope.HeadsUpNotificationStack( stackScrollView: NotificationScrollView, viewModel: NotificationsPlaceholderViewModel, ) { val context = LocalContext.current val density = LocalDensity.current val statusBarHeight = SystemBarUtils.getStatusBarHeight(context) val headsUpPadding = with(density) { dimensionResource(id = R.dimen.heads_up_status_bar_padding).roundToPx() } HeadsUpNotificationSpace( stackScrollView = stackScrollView, viewModel = viewModel, modifier = Modifier.absoluteOffset { IntOffset(x = 0, y = statusBarHeight + headsUpPadding) } ) } Loading
packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/GoneScene.kt +36 −0 Original line number Diff line number Diff line Loading @@ -17,17 +17,28 @@ package com.android.systemui.scene.ui.composable import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.absoluteOffset import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.unit.IntOffset 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.animateSceneFloatAsState import com.android.internal.policy.SystemBarUtils import com.android.systemui.dagger.SysUISingleton import com.android.systemui.notifications.ui.composable.HeadsUpNotificationSpace import com.android.systemui.qs.ui.composable.QuickSettings import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.viewmodel.GoneSceneViewModel import com.android.systemui.statusbar.notification.stack.ui.view.NotificationScrollView import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationsPlaceholderViewModel import dagger.Lazy import javax.inject.Inject import kotlinx.coroutines.flow.StateFlow Loading @@ -39,6 +50,8 @@ import kotlinx.coroutines.flow.StateFlow class GoneScene @Inject constructor( private val notificationStackScrolLView: Lazy<NotificationScrollView>, private val notificationsPlaceholderViewModel: NotificationsPlaceholderViewModel, private val viewModel: GoneSceneViewModel, ) : ComposableScene { override val key = Scenes.Gone Loading @@ -55,5 +68,28 @@ constructor( key = QuickSettings.SharedValues.TilesSquishiness, ) Spacer(modifier.fillMaxSize()) HeadsUpNotificationStack( stackScrollView = notificationStackScrolLView.get(), viewModel = notificationsPlaceholderViewModel ) } } @Composable private fun SceneScope.HeadsUpNotificationStack( stackScrollView: NotificationScrollView, viewModel: NotificationsPlaceholderViewModel, ) { val context = LocalContext.current val density = LocalDensity.current val statusBarHeight = SystemBarUtils.getStatusBarHeight(context) val headsUpPadding = with(density) { dimensionResource(id = R.dimen.heads_up_status_bar_padding).roundToPx() } HeadsUpNotificationSpace( stackScrollView = stackScrollView, viewModel = viewModel, modifier = Modifier.absoluteOffset { IntOffset(x = 0, y = statusBarHeight + headsUpPadding) } ) }