1 /* 2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.systemui.bouncer.shared.flag 18 19 import com.android.systemui.Flags 20 import com.android.systemui.dagger.SysUISingleton 21 import com.android.systemui.scene.shared.flag.SceneContainerFlag 22 import dagger.Module 23 import dagger.Provides 24 25 interface ComposeBouncerFlags { 26 27 /** 28 * Returns `true` if the Compose bouncer is enabled or if the scene container framework is 29 * enabled; `false` otherwise. 30 */ isComposeBouncerOrSceneContainerEnablednull31 fun isComposeBouncerOrSceneContainerEnabled(): Boolean 32 33 /** 34 * Returns `true` if only compose bouncer is enabled and scene container framework is not 35 * enabled. 36 */ 37 @Deprecated( 38 "Avoid using this, this is meant to be used only by the glue code " + 39 "that includes compose bouncer in legacy keyguard.", 40 replaceWith = ReplaceWith("isComposeBouncerOrSceneContainerEnabled()") 41 ) 42 fun isOnlyComposeBouncerEnabled(): Boolean 43 } 44 45 class ComposeBouncerFlagsImpl() : ComposeBouncerFlags { 46 47 override fun isComposeBouncerOrSceneContainerEnabled(): Boolean { 48 return SceneContainerFlag.isEnabled || Flags.composeBouncer() 49 } 50 51 @Deprecated( 52 "Avoid using this, this is meant to be used only by the glue code " + 53 "that includes compose bouncer in legacy keyguard.", 54 replaceWith = ReplaceWith("isComposeBouncerOrSceneContainerEnabled()") 55 ) 56 override fun isOnlyComposeBouncerEnabled(): Boolean { 57 return !SceneContainerFlag.isEnabled && Flags.composeBouncer() 58 } 59 } 60 61 @Module 62 object ComposeBouncerFlagsModule { 63 @Provides 64 @SysUISingleton implnull65 fun impl(): ComposeBouncerFlags { 66 return ComposeBouncerFlagsImpl() 67 } 68 } 69