/* * 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.scene import com.android.systemui.scene.domain.SceneDomainModule import com.android.systemui.scene.domain.resolver.HomeSceneFamilyResolverModule import com.android.systemui.scene.shared.model.Overlays import com.android.systemui.scene.shared.model.SceneContainerConfig import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.composable.SceneContainerTransitions import dagger.Module import dagger.Provides /** Scene framework Dagger module suitable for variants that want to exclude "shade" scenes. */ @Module( includes = [ BouncerOverlayModule::class, EmptySceneModule::class, GoneSceneModule::class, LockscreenSceneModule::class, SceneDomainModule::class, // List SceneResolver modules for supported SceneFamilies HomeSceneFamilyResolverModule::class, ] ) object ShadelessSceneContainerFrameworkModule { // TODO(b/298229861): provide a version of SceneContainerStartable without shade and qs. @Provides fun containerConfig(): SceneContainerConfig { return SceneContainerConfig( // Note that this list is in z-order. The first one is the bottom-most and the last one // is top-most. sceneKeys = listOf(Scenes.Gone, Scenes.Lockscreen), initialSceneKey = Scenes.Lockscreen, overlayKeys = listOf(Overlays.Bouncer), navigationDistances = mapOf(Scenes.Gone to 0, Scenes.Lockscreen to 0), transitionsBuilder = SceneContainerTransitions(), ) } }