diff options
2 files changed, 6 insertions, 133 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt index 67a68200f269..ff53ff256931 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenScene.kt @@ -37,9 +37,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn -/** Set this to `true` to use the LockscreenContent replacement of KeyguardRootView. */ -private val UseLockscreenContent = false - /** The lock screen scene shows when the device is locked. */ @SysUISingleton class LockscreenScene @@ -48,7 +45,6 @@ constructor( @Application private val applicationScope: CoroutineScope, private val viewModel: LockscreenSceneViewModel, private val lockscreenContent: Lazy<LockscreenContent>, - private val viewBasedLockscreenContent: Lazy<ViewBasedLockscreenContent>, ) : ComposableScene { override val key = SceneKey.Lockscreen @@ -73,7 +69,6 @@ constructor( ) { LockscreenScene( lockscreenContent = lockscreenContent, - viewBasedLockscreenContent = viewBasedLockscreenContent, modifier = modifier, ) } @@ -93,22 +88,13 @@ constructor( } @Composable -private fun SceneScope.LockscreenScene( +private fun LockscreenScene( lockscreenContent: Lazy<LockscreenContent>, - viewBasedLockscreenContent: Lazy<ViewBasedLockscreenContent>, modifier: Modifier = Modifier, ) { - if (UseLockscreenContent) { - lockscreenContent - .get() - .Content( - modifier = modifier.fillMaxSize(), - ) - } else { - with(viewBasedLockscreenContent.get()) { - Content( - modifier = modifier.fillMaxSize(), - ) - } - } + lockscreenContent + .get() + .Content( + modifier = modifier.fillMaxSize(), + ) } diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/ViewBasedLockscreenContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/ViewBasedLockscreenContent.kt deleted file mode 100644 index 8119d2a119ca..000000000000 --- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/ViewBasedLockscreenContent.kt +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.keyguard.ui.composable - -import android.graphics.Rect -import android.view.View -import android.view.ViewGroup -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.toComposeRect -import androidx.compose.ui.layout.Layout -import androidx.compose.ui.layout.onPlaced -import androidx.compose.ui.viewinterop.AndroidView -import androidx.core.view.isVisible -import com.android.compose.animation.scene.SceneScope -import com.android.systemui.keyguard.qualifiers.KeyguardRootView -import com.android.systemui.keyguard.ui.viewmodel.KeyguardRootViewModel -import com.android.systemui.keyguard.ui.viewmodel.LockscreenSceneViewModel -import com.android.systemui.notifications.ui.composable.NotificationStack -import com.android.systemui.res.R -import javax.inject.Inject - -/** - * Renders the content of the lockscreen. - * - * This is different from [LockscreenContent] (which is pure compose) and uses a view-based - * implementation of the lockscreen scene content that relies on [KeyguardRootView]. - * - * TODO(b/316211368): remove this once [LockscreenContent] is feature complete. - */ -class ViewBasedLockscreenContent -@Inject -constructor( - private val lockscreenSceneViewModel: LockscreenSceneViewModel, - @KeyguardRootView private val viewProvider: () -> @JvmSuppressWildcards View, - private val keyguardRootViewModel: KeyguardRootViewModel, -) { - @Composable - fun SceneScope.Content( - modifier: Modifier = Modifier, - ) { - fun findSettingsMenu(): View { - return viewProvider().requireViewById(R.id.keyguard_settings_button) - } - - LockscreenLongPress( - viewModel = lockscreenSceneViewModel.longPress, - modifier = modifier, - ) { onSettingsMenuPlaced -> - AndroidView( - factory = { _ -> - val keyguardRootView = viewProvider() - // Remove the KeyguardRootView from any parent it might already have in legacy - // code just in case (a view can't have two parents). - (keyguardRootView.parent as? ViewGroup)?.removeView(keyguardRootView) - keyguardRootView - }, - modifier = Modifier.fillMaxSize(), - ) - - val notificationStackPosition by - keyguardRootViewModel.notificationBounds.collectAsState() - - Layout( - modifier = - Modifier.fillMaxSize().onPlaced { - val settingsMenuView = findSettingsMenu() - onSettingsMenuPlaced( - if (settingsMenuView.isVisible) { - val bounds = Rect() - settingsMenuView.getHitRect(bounds) - bounds.toComposeRect() - } else { - null - } - ) - }, - content = { - NotificationStack( - viewModel = lockscreenSceneViewModel.notifications, - isScrimVisible = false, - ) - } - ) { measurables, constraints -> - check(measurables.size == 1) - val height = notificationStackPosition.height.toInt() - val childConstraints = constraints.copy(minHeight = height, maxHeight = height) - val placeable = measurables[0].measure(childConstraints) - layout(constraints.maxWidth, constraints.maxHeight) { - val start = (constraints.maxWidth - placeable.measuredWidth) / 2 - placeable.placeRelative(x = start, y = notificationStackPosition.top.toInt()) - } - } - } - } -} |