1 /* 2 * Copyright (C) 2023 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.shade.domain.interactor 18 19 import com.android.systemui.dagger.SysUISingleton 20 import com.android.systemui.shade.shared.model.ShadeMode 21 import javax.inject.Inject 22 import kotlinx.coroutines.flow.Flow 23 import kotlinx.coroutines.flow.MutableStateFlow 24 import kotlinx.coroutines.flow.StateFlow 25 26 /** Empty implementation of ShadeInteractor for System UI variants with no shade. */ 27 @SysUISingleton 28 class ShadeInteractorEmptyImpl @Inject constructor() : ShadeInteractor { 29 private val inactiveFlowBoolean = MutableStateFlow(false) 30 private val inactiveFlowFloat = MutableStateFlow(0f) 31 override val isShadeEnabled: StateFlow<Boolean> = inactiveFlowBoolean 32 override val isQsEnabled: StateFlow<Boolean> = inactiveFlowBoolean 33 override val shadeExpansion: StateFlow<Float> = inactiveFlowFloat 34 override val qsExpansion: StateFlow<Float> = inactiveFlowFloat 35 override val isQsExpanded: StateFlow<Boolean> = inactiveFlowBoolean 36 override val isQsBypassingShade: Flow<Boolean> = inactiveFlowBoolean 37 override val isQsFullscreen: Flow<Boolean> = inactiveFlowBoolean 38 override val anyExpansion: StateFlow<Float> = inactiveFlowFloat 39 override val isAnyFullyExpanded: StateFlow<Boolean> = inactiveFlowBoolean 40 override val isShadeFullyExpanded: Flow<Boolean> = inactiveFlowBoolean 41 override val isShadeFullyCollapsed: Flow<Boolean> = inactiveFlowBoolean 42 override val isAnyExpanded: StateFlow<Boolean> = inactiveFlowBoolean 43 override val isUserInteractingWithShade: Flow<Boolean> = inactiveFlowBoolean 44 override val isUserInteractingWithQs: Flow<Boolean> = inactiveFlowBoolean 45 override val isUserInteracting: StateFlow<Boolean> = inactiveFlowBoolean 46 override val isShadeTouchable: Flow<Boolean> = inactiveFlowBoolean 47 override val isExpandToQsEnabled: Flow<Boolean> = inactiveFlowBoolean 48 override val shadeMode: StateFlow<ShadeMode> = MutableStateFlow(ShadeMode.Single) 49 } 50