Loading packages/SystemUI/compose/facade/disabled/src/com/android/systemui/compose/ComposeFacade.kt +8 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel import com.android.systemui.communal.ui.viewmodel.BaseCommunalViewModel import com.android.systemui.communal.widgets.WidgetConfigurator import com.android.systemui.keyboard.stickykeys.ui.viewmodel.StickyKeysIndicatorViewModel import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import com.android.systemui.people.ui.viewmodel.PeopleViewModel import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel import com.android.systemui.scene.shared.model.Scene Loading Loading @@ -112,6 +114,12 @@ object ComposeFacade : BaseComposeFacade { dialogFactory: BouncerDialogFactory, ): View = throwComposeUnavailableError() override fun createLockscreen( context: Context, viewModel: LockscreenContentViewModel, blueprints: Set<@JvmSuppressWildcards LockscreenSceneBlueprint>, ): View = throwComposeUnavailableError() private fun throwComposeUnavailableError(): Nothing { error( "Compose is not available. Make sure to check isComposeAvailable() before calling any" + Loading packages/SystemUI/compose/facade/disabled/src/com/android/systemui/scene/LockscreenSceneModule.kt +11 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,16 @@ package com.android.systemui.scene import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import dagger.Module import dagger.Provides @Module interface LockscreenSceneModule @Module interface LockscreenSceneModule { companion object { @Provides fun providesLockscreenBlueprints(): Set<LockscreenSceneBlueprint> { return emptySet() } } } packages/SystemUI/compose/facade/enabled/src/com/android/systemui/compose/ComposeFacade.kt +21 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.view.View import android.view.WindowInsets import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp Loading @@ -40,6 +42,10 @@ import com.android.systemui.communal.ui.viewmodel.BaseCommunalViewModel import com.android.systemui.communal.widgets.WidgetConfigurator import com.android.systemui.keyboard.stickykeys.ui.view.createStickyKeyIndicatorView import com.android.systemui.keyboard.stickykeys.ui.viewmodel.StickyKeysIndicatorViewModel import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.composable.LockscreenContent import com.android.systemui.keyguard.ui.composable.blueprint.ComposableLockscreenSceneBlueprint import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import com.android.systemui.people.ui.compose.PeopleScreen import com.android.systemui.people.ui.viewmodel.PeopleViewModel import com.android.systemui.qs.footer.ui.compose.FooterActions Loading Loading @@ -211,4 +217,19 @@ object ComposeFacade : BaseComposeFacade { setContent { PlatformTheme { BouncerContent(viewModel, dialogFactory) } } } } override fun createLockscreen( context: Context, viewModel: LockscreenContentViewModel, blueprints: Set<@JvmSuppressWildcards LockscreenSceneBlueprint>, ): View { val sceneBlueprints = blueprints.mapNotNull { it as? ComposableLockscreenSceneBlueprint }.toSet() return ComposeView(context).apply { setContent { LockscreenContent(viewModel = viewModel, blueprints = sceneBlueprints) .Content(modifier = Modifier.fillMaxSize()) } } } } packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/LockscreenSceneModule.kt +9 −0 Original line number Diff line number Diff line Loading @@ -20,8 +20,10 @@ import android.view.View import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.KeyguardViewConfigurator import com.android.systemui.keyguard.qualifiers.KeyguardRootView import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.composable.LockscreenScene import com.android.systemui.keyguard.ui.composable.LockscreenSceneBlueprintModule import com.android.systemui.keyguard.ui.composable.blueprint.ComposableLockscreenSceneBlueprint import com.android.systemui.scene.shared.model.Scene import dagger.Binds import dagger.Module Loading Loading @@ -51,5 +53,12 @@ interface LockscreenSceneModule { ): () -> View { return { configurator.get().getKeyguardRootView() } } @Provides fun providesLockscreenBlueprints( blueprints: Set<@JvmSuppressWildcards ComposableLockscreenSceneBlueprint> ): Set<LockscreenSceneBlueprint> { return blueprints } } } packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenContent.kt +3 −3 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import androidx.compose.ui.Modifier import com.android.compose.animation.scene.SceneKey import com.android.compose.animation.scene.SceneTransitionLayout import com.android.compose.animation.scene.transitions import com.android.systemui.keyguard.ui.composable.blueprint.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.composable.blueprint.ComposableLockscreenSceneBlueprint import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import javax.inject.Inject Loading @@ -39,10 +39,10 @@ class LockscreenContent @Inject constructor( private val viewModel: LockscreenContentViewModel, private val blueprints: Set<@JvmSuppressWildcards LockscreenSceneBlueprint>, private val blueprints: Set<@JvmSuppressWildcards ComposableLockscreenSceneBlueprint>, ) { private val sceneKeyByBlueprint: Map<LockscreenSceneBlueprint, SceneKey> by lazy { private val sceneKeyByBlueprint: Map<ComposableLockscreenSceneBlueprint, SceneKey> by lazy { blueprints.associateWith { blueprint -> SceneKey(blueprint.id) } } private val sceneKeyByBlueprintId: Map<String, SceneKey> by lazy { Loading Loading
packages/SystemUI/compose/facade/disabled/src/com/android/systemui/compose/ComposeFacade.kt +8 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel import com.android.systemui.communal.ui.viewmodel.BaseCommunalViewModel import com.android.systemui.communal.widgets.WidgetConfigurator import com.android.systemui.keyboard.stickykeys.ui.viewmodel.StickyKeysIndicatorViewModel import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import com.android.systemui.people.ui.viewmodel.PeopleViewModel import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel import com.android.systemui.scene.shared.model.Scene Loading Loading @@ -112,6 +114,12 @@ object ComposeFacade : BaseComposeFacade { dialogFactory: BouncerDialogFactory, ): View = throwComposeUnavailableError() override fun createLockscreen( context: Context, viewModel: LockscreenContentViewModel, blueprints: Set<@JvmSuppressWildcards LockscreenSceneBlueprint>, ): View = throwComposeUnavailableError() private fun throwComposeUnavailableError(): Nothing { error( "Compose is not available. Make sure to check isComposeAvailable() before calling any" + Loading
packages/SystemUI/compose/facade/disabled/src/com/android/systemui/scene/LockscreenSceneModule.kt +11 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,16 @@ package com.android.systemui.scene import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import dagger.Module import dagger.Provides @Module interface LockscreenSceneModule @Module interface LockscreenSceneModule { companion object { @Provides fun providesLockscreenBlueprints(): Set<LockscreenSceneBlueprint> { return emptySet() } } }
packages/SystemUI/compose/facade/enabled/src/com/android/systemui/compose/ComposeFacade.kt +21 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.view.View import android.view.WindowInsets import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp Loading @@ -40,6 +42,10 @@ import com.android.systemui.communal.ui.viewmodel.BaseCommunalViewModel import com.android.systemui.communal.widgets.WidgetConfigurator import com.android.systemui.keyboard.stickykeys.ui.view.createStickyKeyIndicatorView import com.android.systemui.keyboard.stickykeys.ui.viewmodel.StickyKeysIndicatorViewModel import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.composable.LockscreenContent import com.android.systemui.keyguard.ui.composable.blueprint.ComposableLockscreenSceneBlueprint import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import com.android.systemui.people.ui.compose.PeopleScreen import com.android.systemui.people.ui.viewmodel.PeopleViewModel import com.android.systemui.qs.footer.ui.compose.FooterActions Loading Loading @@ -211,4 +217,19 @@ object ComposeFacade : BaseComposeFacade { setContent { PlatformTheme { BouncerContent(viewModel, dialogFactory) } } } } override fun createLockscreen( context: Context, viewModel: LockscreenContentViewModel, blueprints: Set<@JvmSuppressWildcards LockscreenSceneBlueprint>, ): View { val sceneBlueprints = blueprints.mapNotNull { it as? ComposableLockscreenSceneBlueprint }.toSet() return ComposeView(context).apply { setContent { LockscreenContent(viewModel = viewModel, blueprints = sceneBlueprints) .Content(modifier = Modifier.fillMaxSize()) } } } }
packages/SystemUI/compose/facade/enabled/src/com/android/systemui/scene/LockscreenSceneModule.kt +9 −0 Original line number Diff line number Diff line Loading @@ -20,8 +20,10 @@ import android.view.View import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.KeyguardViewConfigurator import com.android.systemui.keyguard.qualifiers.KeyguardRootView import com.android.systemui.keyguard.shared.model.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.composable.LockscreenScene import com.android.systemui.keyguard.ui.composable.LockscreenSceneBlueprintModule import com.android.systemui.keyguard.ui.composable.blueprint.ComposableLockscreenSceneBlueprint import com.android.systemui.scene.shared.model.Scene import dagger.Binds import dagger.Module Loading Loading @@ -51,5 +53,12 @@ interface LockscreenSceneModule { ): () -> View { return { configurator.get().getKeyguardRootView() } } @Provides fun providesLockscreenBlueprints( blueprints: Set<@JvmSuppressWildcards ComposableLockscreenSceneBlueprint> ): Set<LockscreenSceneBlueprint> { return blueprints } } }
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenContent.kt +3 −3 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import androidx.compose.ui.Modifier import com.android.compose.animation.scene.SceneKey import com.android.compose.animation.scene.SceneTransitionLayout import com.android.compose.animation.scene.transitions import com.android.systemui.keyguard.ui.composable.blueprint.LockscreenSceneBlueprint import com.android.systemui.keyguard.ui.composable.blueprint.ComposableLockscreenSceneBlueprint import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import javax.inject.Inject Loading @@ -39,10 +39,10 @@ class LockscreenContent @Inject constructor( private val viewModel: LockscreenContentViewModel, private val blueprints: Set<@JvmSuppressWildcards LockscreenSceneBlueprint>, private val blueprints: Set<@JvmSuppressWildcards ComposableLockscreenSceneBlueprint>, ) { private val sceneKeyByBlueprint: Map<LockscreenSceneBlueprint, SceneKey> by lazy { private val sceneKeyByBlueprint: Map<ComposableLockscreenSceneBlueprint, SceneKey> by lazy { blueprints.associateWith { blueprint -> SceneKey(blueprint.id) } } private val sceneKeyByBlueprintId: Map<String, SceneKey> by lazy { Loading