diff options
| author | 2025-01-31 21:00:22 +0000 | |
|---|---|---|
| committer | 2025-02-03 06:14:08 -0800 | |
| commit | db8a28f2915dc311b2ac7198f2280b3f27237dd8 (patch) | |
| tree | fcb8c2d96b758a16caa86f8fb0b2550e4e31f433 | |
| parent | 44f195a46a8f72e8eb93610e828d034c17a7a912 (diff) | |
[Dual Shade] Expose ShadeMode only from ShadeModeInteractor.
This achieves two things:
1. Reduces the deps pulled in by callers who are currently injecting
ShadeInteractor only to get access to the ShadeMode.
2. Consolidates all usages of ShadeMode so they're easier to track. In
particular, this clearly marks all places to clean up once Dual Shade
is launched.
BONUS: Exposure the convenience shortcut `kosmos.shadeMode`.
Bug: 388793191
Test: Unit tests still pass.
Flag: com.android.systemui.scene_container
Change-Id: I463ce9e2e0d459c073daccae5f0566a7546de2ab
41 files changed, 148 insertions, 121 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt index 8769022f3aa8..afefc79de900 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt @@ -39,7 +39,7 @@ import com.android.systemui.qs.dagger.QSComponent import com.android.systemui.qs.dagger.QSSceneComponent import com.android.systemui.settings.brightness.MirrorController import com.android.systemui.shade.data.repository.fakeShadeRepository -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.capture @@ -118,16 +118,14 @@ class QSSceneAdapterImplTest : SysuiTestCase() { } } - private val shadeInteractor = kosmos.shadeInteractor - private val displayStateInteractor = kosmos.displayStateInteractor private val dumpManager = mock<DumpManager>() private val underTest = QSSceneAdapterImpl( qsSceneComponentFactory, qsImplProvider, - shadeInteractor, - displayStateInteractor, + kosmos.shadeModeInteractor, + kosmos.displayStateInteractor, dumpManager, testDispatcher, testScope.backgroundScope, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModelTest.kt index cc94005a418c..b36c111904b9 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModelTest.kt @@ -39,13 +39,14 @@ import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.brightness.ui.viewmodel.brightnessMirrorViewModelFactory import com.android.systemui.shade.data.repository.shadeRepository import com.android.systemui.shade.domain.interactor.disableDualShade -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.shade.ui.viewmodel.shadeHeaderViewModelFactory import com.android.systemui.testKosmos import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before @@ -54,6 +55,7 @@ import org.junit.runner.RunWith import org.mockito.Mockito.times import org.mockito.Mockito.verify +@OptIn(ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidJUnit4::class) @RunWithLooper @@ -72,7 +74,6 @@ class QuickSettingsSceneContentViewModelTest : SysuiTestCase() { private val sceneContainerStartable = kosmos.sceneContainerStartable private val sceneInteractor by lazy { kosmos.sceneInteractor } - private val shadeInteractor by lazy { kosmos.shadeInteractor } private lateinit var underTest: QuickSettingsSceneContentViewModel @@ -89,7 +90,7 @@ class QuickSettingsSceneContentViewModelTest : SysuiTestCase() { footerActionsViewModelFactory = footerActionsViewModelFactory, footerActionsController = footerActionsController, mediaCarouselInteractor = kosmos.mediaCarouselInteractor, - shadeInteractor = shadeInteractor, + shadeModeInteractor = kosmos.shadeModeInteractor, sceneInteractor = sceneInteractor, ) underTest.activateIn(testScope) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt index 048dd66ae1da..47591806c20f 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt @@ -33,7 +33,7 @@ import com.android.systemui.scene.shared.model.TransitionKeys.ToSplitShade import com.android.systemui.shade.domain.interactor.enableDualShade import com.android.systemui.shade.domain.interactor.enableSingleShade import com.android.systemui.shade.domain.interactor.enableSplitShade -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -56,7 +56,7 @@ class GoneUserActionsViewModelTest : SysuiTestCase() { @Before fun setUp() { - underTest = GoneUserActionsViewModel(shadeInteractor = kosmos.shadeInteractor) + underTest = GoneUserActionsViewModel(shadeModeInteractor = kosmos.shadeModeInteractor) underTest.activateIn(testScope) } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt index 399b48fb2fb9..16ee1eb78107 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt @@ -42,7 +42,7 @@ import com.android.systemui.scene.shared.model.fakeSceneDataSource import com.android.systemui.shade.domain.interactor.enableDualShade import com.android.systemui.shade.domain.interactor.enableSingleShade import com.android.systemui.shade.domain.interactor.enableSplitShade -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeMode import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.data.repository.fakeRemoteInputRepository import com.android.systemui.testKosmos @@ -324,7 +324,7 @@ class SceneContainerViewModelTest : SysuiTestCase() { @Test fun edgeDetector_singleShade_usesDefaultEdgeDetector() = testScope.runTest { - val shadeMode by collectLastValue(kosmos.shadeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) kosmos.enableSingleShade() assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -334,7 +334,7 @@ class SceneContainerViewModelTest : SysuiTestCase() { @Test fun edgeDetector_splitShade_usesDefaultEdgeDetector() = testScope.runTest { - val shadeMode by collectLastValue(kosmos.shadeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) kosmos.enableSplitShade() assertThat(shadeMode).isEqualTo(ShadeMode.Split) @@ -344,7 +344,7 @@ class SceneContainerViewModelTest : SysuiTestCase() { @Test fun edgeDetector_dualShade_narrowScreen_usesSplitEdgeDetector() = testScope.runTest { - val shadeMode by collectLastValue(kosmos.shadeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) kosmos.enableDualShade(wideLayout = false) assertThat(shadeMode).isEqualTo(ShadeMode.Dual) @@ -354,7 +354,7 @@ class SceneContainerViewModelTest : SysuiTestCase() { @Test fun edgeDetector_dualShade_wideScreen_usesSplitEdgeDetector() = testScope.runTest { - val shadeMode by collectLastValue(kosmos.shadeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) kosmos.enableDualShade(wideLayout = true) assertThat(shadeMode).isEqualTo(ShadeMode.Dual) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt index 5c9cf82574a1..c0645c4e7964 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt @@ -597,7 +597,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandNotificationsShade_dualShade_opensOverlay() = testScope.runTest { kosmos.enableDualShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Dual) @@ -614,7 +614,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandNotificationsShade_singleShade_switchesToShadeScene() = testScope.runTest { kosmos.enableSingleShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -631,7 +631,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandNotificationsShade_dualShadeQuickSettingsOpen_replacesOverlay() = testScope.runTest { kosmos.enableDualShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Dual) @@ -649,7 +649,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandQuickSettingsShade_dualShade_opensOverlay() = testScope.runTest { kosmos.enableDualShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Dual) @@ -666,7 +666,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandQuickSettingsShade_singleShade_switchesToQuickSettingsScene() = testScope.runTest { kosmos.enableSingleShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -683,7 +683,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandQuickSettingsShade_splitShade_switchesToShadeScene() = testScope.runTest { kosmos.enableSplitShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Split) @@ -700,7 +700,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun expandQuickSettingsShade_dualShadeNotificationsOpen_replacesOverlay() = testScope.runTest { kosmos.enableDualShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Dual) @@ -732,7 +732,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun collapseNotificationsShade_singleShade_switchesToLockscreen() = testScope.runTest { kosmos.enableSingleShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -764,7 +764,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun collapseQuickSettingsShadeNotBypassingShade_singleShade_switchesToShade() = testScope.runTest { kosmos.enableSingleShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -786,7 +786,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun collapseQuickSettingsShadeNotBypassingShade_splitShade_switchesToLockscreen() = testScope.runTest { kosmos.enableSplitShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Split) @@ -808,7 +808,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { fun collapseQuickSettingsShadeBypassingShade_singleShade_switchesToLockscreen() = testScope.runTest { kosmos.enableSingleShade() - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -844,7 +844,7 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { } private fun TestScope.openShade(overlay: OverlayKey) { - val shadeMode by collectLastValue(kosmos.shadeModeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) val isAnyExpanded by collectLastValue(underTest.isAnyExpanded) val currentScene by collectLastValue(sceneInteractor.currentScene) val currentOverlays by collectLastValue(sceneInteractor.currentOverlays) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/startable/ShadeStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/startable/ShadeStartableTest.kt index 0406c3e69b54..f939d09d8caa 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/startable/ShadeStartableTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/startable/ShadeStartableTest.kt @@ -39,7 +39,7 @@ import com.android.systemui.shade.ShadeExpansionChangeEvent import com.android.systemui.shade.ShadeExpansionListener import com.android.systemui.shade.domain.interactor.disableDualShade import com.android.systemui.shade.domain.interactor.enableDualShade -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeMode import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.notification.stack.notificationStackScrollLayoutController import com.android.systemui.statusbar.phone.scrimController @@ -66,7 +66,6 @@ import platform.test.runner.parameterized.Parameters class ShadeStartableTest(flags: FlagsParameterization) : SysuiTestCase() { private val kosmos = testKosmos() private val testScope = kosmos.testScope - private val shadeInteractor by lazy { kosmos.shadeInteractor } private val sceneInteractor by lazy { kosmos.sceneInteractor } private val shadeExpansionStateManager by lazy { kosmos.shadeExpansionStateManager } private val fakeConfigurationRepository by lazy { kosmos.fakeConfigurationRepository } @@ -91,7 +90,7 @@ class ShadeStartableTest(flags: FlagsParameterization) : SysuiTestCase() { testScope.runTest { overrideResource(R.bool.config_use_split_notification_shade, false) kosmos.disableDualShade() - val shadeMode by collectLastValue(shadeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) underTest.start() assertThat(shadeMode).isEqualTo(ShadeMode.Single) @@ -110,7 +109,7 @@ class ShadeStartableTest(flags: FlagsParameterization) : SysuiTestCase() { testScope.runTest { overrideResource(R.bool.config_use_split_notification_shade, false) kosmos.enableDualShade() - val shadeMode by collectLastValue(shadeInteractor.shadeMode) + val shadeMode by collectLastValue(kosmos.shadeMode) underTest.start() assertThat(shadeMode).isEqualTo(ShadeMode.Dual) diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt index e35fdfe9087c..29d9cacdbc79 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt @@ -24,6 +24,7 @@ import com.android.systemui.scene.shared.model.SceneFamilies import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.shade.ui.viewmodel.dualShadeActions import com.android.systemui.shade.ui.viewmodel.singleShadeActions @@ -41,6 +42,7 @@ class CommunalUserActionsViewModel constructor( private val deviceUnlockedInteractor: DeviceUnlockedInteractor, private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, ) : UserActionsViewModel() { override suspend fun hydrateActions(setActions: (Map<UserAction, UserActionResult>) -> Unit) { @@ -51,7 +53,7 @@ constructor( } else { combine( deviceUnlockedInteractor.deviceUnlockStatus.map { it.isUnlocked }, - shadeInteractor.shadeMode, + shadeModeInteractor.shadeMode, ) { isDeviceUnlocked, shadeMode -> buildList { val bouncerOrGone = diff --git a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt index 160574fa2244..9ce2ce0100a3 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt @@ -24,6 +24,7 @@ import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteract import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.shade.ui.viewmodel.dualShadeActions import com.android.systemui.shade.ui.viewmodel.singleShadeActions @@ -42,6 +43,7 @@ constructor( private val communalInteractor: CommunalInteractor, private val deviceUnlockedInteractor: DeviceUnlockedInteractor, private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, ) : UserActionsViewModel() { override suspend fun hydrateActions(setActions: (Map<UserAction, UserActionResult>) -> Unit) { @@ -53,7 +55,7 @@ constructor( combine( deviceUnlockedInteractor.deviceUnlockStatus.map { it.isUnlocked }, communalInteractor.isCommunalAvailable, - shadeInteractor.shadeMode, + shadeModeInteractor.shadeMode, ) { isDeviceUnlocked, isCommunalAvailable, shadeMode -> buildList { if (isCommunalAvailable) { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt index b7e3e2b38732..3353983ab5a5 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt @@ -25,23 +25,27 @@ import com.android.systemui.scene.domain.interactor.SceneContainerOcclusionInter import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.shade.ui.viewmodel.dualShadeActions import com.android.systemui.shade.ui.viewmodel.singleShadeActions import com.android.systemui.shade.ui.viewmodel.splitShadeActions import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flowOf /** Models UI state and handles user input for the lockscreen scene. */ +@OptIn(ExperimentalCoroutinesApi::class) class LockscreenUserActionsViewModel @AssistedInject constructor( private val deviceEntryInteractor: DeviceEntryInteractor, private val communalInteractor: CommunalInteractor, private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, private val occlusionInteractor: SceneContainerOcclusionInteractor, ) : UserActionsViewModel() { @@ -55,7 +59,7 @@ constructor( combine( deviceEntryInteractor.isUnlocked, communalInteractor.isCommunalAvailable, - shadeInteractor.shadeMode, + shadeModeInteractor.shadeMode, occlusionInteractor.isOccludingActivityShown, ) { isDeviceUnlocked, isCommunalAvailable, shadeMode, isOccluded -> buildList { diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractor.kt index 2b2a63b1fded..e6b89fcf2d1f 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractor.kt @@ -19,25 +19,27 @@ package com.android.systemui.qs.panels.domain.interactor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.qs.panels.data.repository.QSColumnsRepository -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import javax.inject.Inject import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.stateIn +@OptIn(ExperimentalCoroutinesApi::class) @SysUISingleton class QSColumnsInteractor @Inject constructor( @Application scope: CoroutineScope, repo: QSColumnsRepository, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, ) { val columns: StateFlow<Int> = - shadeInteractor.shadeMode + shadeModeInteractor.shadeMode .flatMapLatest { when (it) { ShadeMode.Dual -> repo.dualShadeColumns diff --git a/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt b/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt index d4adcdd49f5c..a97bb6102b5d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt @@ -38,7 +38,7 @@ import com.android.systemui.qs.dagger.QSSceneComponent import com.android.systemui.res.R import com.android.systemui.settings.brightness.MirrorController import com.android.systemui.shade.ShadeDisplayAware -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.util.kotlin.sample import java.io.PrintWriter @@ -202,7 +202,7 @@ class QSSceneAdapterImpl constructor( private val qsSceneComponentFactory: QSSceneComponent.Factory, private val qsImplProvider: Provider<QSImpl>, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, displayStateInteractor: DisplayStateInteractor, dumpManager: DumpManager, @Main private val mainDispatcher: CoroutineDispatcher, @@ -215,7 +215,7 @@ constructor( constructor( qsSceneComponentFactory: QSSceneComponent.Factory, qsImplProvider: Provider<QSImpl>, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, displayStateInteractor: DisplayStateInteractor, dumpManager: DumpManager, @Main dispatcher: CoroutineDispatcher, @@ -224,7 +224,7 @@ constructor( ) : this( qsSceneComponentFactory, qsImplProvider, - shadeInteractor, + shadeModeInteractor, displayStateInteractor, dumpManager, dispatcher, @@ -331,8 +331,8 @@ constructor( } } launch { - shadeInteractor.shadeMode.collect { - qsImpl.value?.setInSplitShade(it == ShadeMode.Split) + shadeModeInteractor.shadeMode.collect { + qsImpl.value?.setInSplitShade(it is ShadeMode.Split) } } launch { diff --git a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModel.kt index 06d3e4a9ad0e..acd091e507ed 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModel.kt @@ -17,6 +17,7 @@ package com.android.systemui.qs.ui.viewmodel import androidx.lifecycle.LifecycleOwner +import com.android.app.tracing.coroutines.launchTraced as launch import com.android.systemui.lifecycle.ExclusiveActivatable import com.android.systemui.media.controls.domain.pipeline.interactor.MediaCarouselInteractor import com.android.systemui.qs.FooterActionsController @@ -25,7 +26,7 @@ import com.android.systemui.qs.ui.adapter.QSSceneAdapter import com.android.systemui.scene.domain.interactor.SceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.brightness.ui.viewModel.BrightnessMirrorViewModel -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel import dagger.assisted.AssistedFactory @@ -34,7 +35,6 @@ import java.util.concurrent.atomic.AtomicBoolean import kotlinx.coroutines.awaitCancellation import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.StateFlow -import com.android.app.tracing.coroutines.launchTraced as launch /** * Models UI state needed for rendering the content of the quick settings scene. @@ -51,7 +51,7 @@ constructor( private val footerActionsViewModelFactory: FooterActionsViewModel.Factory, private val footerActionsController: FooterActionsController, val mediaCarouselInteractor: MediaCarouselInteractor, - private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, private val sceneInteractor: SceneInteractor, ) : ExclusiveActivatable() { @@ -69,8 +69,8 @@ constructor( override suspend fun onActivated(): Nothing { coroutineScope { launch { - shadeInteractor.shadeMode.collect { shadeMode -> - if (shadeMode == ShadeMode.Split) { + shadeModeInteractor.shadeMode.collect { shadeMode -> + if (shadeMode is ShadeMode.Split) { sceneInteractor.snapToScene(Scenes.Shade, "Unfold while on QS") } } diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModel.kt index fc172e8ca1d8..8eac63cb7cda 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModel.kt @@ -18,7 +18,7 @@ package com.android.systemui.scene.ui.viewmodel import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.shade.ui.viewmodel.dualShadeActions import com.android.systemui.shade.ui.viewmodel.singleShadeActions @@ -28,10 +28,10 @@ import dagger.assisted.AssistedInject class GoneUserActionsViewModel @AssistedInject -constructor(private val shadeInteractor: ShadeInteractor) : UserActionsViewModel() { +constructor(private val shadeModeInteractor: ShadeModeInteractor) : UserActionsViewModel() { override suspend fun hydrateActions(setActions: (Map<UserAction, UserActionResult>) -> Unit) { - shadeInteractor.shadeMode.collect { shadeMode -> + shadeModeInteractor.shadeMode.collect { shadeMode -> setActions( buildList { addAll( diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt index ba7979ca2120..fdfc35d50e0e 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt @@ -39,7 +39,7 @@ import com.android.systemui.scene.domain.interactor.SceneInteractor import com.android.systemui.scene.shared.logger.SceneLogger import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.ui.composable.Overlay -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.domain.interactor.RemoteInputInteractor import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer @@ -60,7 +60,7 @@ constructor( private val sceneInteractor: SceneInteractor, private val falsingInteractor: FalsingInteractor, private val powerInteractor: PowerInteractor, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, private val remoteInputInteractor: RemoteInputInteractor, private val splitEdgeDetector: SplitEdgeDetector, private val logger: SceneLogger, @@ -93,7 +93,7 @@ constructor( traceName = "edgeDetector", initialValue = DefaultEdgeDetector, source = - shadeInteractor.shadeMode.map { + shadeModeInteractor.shadeMode.map { if (it is ShadeMode.Dual) splitEdgeDetector else DefaultEdgeDetector }, ) diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt index 39703ab5602c..6b183acbf9c2 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt @@ -25,6 +25,7 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.shade.data.repository.ShadeDisplaysRepository import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround import dagger.Lazy import javax.inject.Inject @@ -36,6 +37,7 @@ class ShadeStateTraceLogger @Inject constructor( private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, private val shadeDisplaysRepository: Lazy<ShadeDisplaysRepository>, @Application private val scope: CoroutineScope, ) : CoreStartable { @@ -47,7 +49,7 @@ constructor( } launch { val stateLogger = createTraceStateLogger("shadeMode") - shadeInteractor.shadeMode.collect { stateLogger.log(it.toString()) } + shadeModeInteractor.shadeMode.collect { stateLogger.log(it.toString()) } } launch { shadeInteractor.shadeExpansion.collect { diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt index 5a63034b5754..6eaedd73ea76 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt @@ -20,7 +20,6 @@ import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.scene.domain.interactor.SceneInteractor import com.android.systemui.scene.shared.model.SceneFamilies import com.android.systemui.scene.shared.model.Scenes -import com.android.systemui.shade.shared.model.ShadeMode import javax.inject.Inject /** Implementation of ShadeBackActionInteractor backed by scenes. */ @@ -28,13 +27,14 @@ class ShadeBackActionInteractorImpl @Inject constructor( val shadeInteractor: ShadeInteractor, + val shadeModeInteractor: ShadeModeInteractor, val sceneInteractor: SceneInteractor, val deviceEntryInteractor: DeviceEntryInteractor, ) : ShadeBackActionInteractor { override fun animateCollapseQs(fullyCollapse: Boolean) { if (shadeInteractor.isQsExpanded.value) { val key = - if (fullyCollapse || shadeInteractor.shadeMode.value is ShadeMode.Dual) { + if (fullyCollapse || shadeModeInteractor.isDualShade) { SceneFamilies.Home } else { Scenes.Shade diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt index f1765e775d65..c8ce316c41dd 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt @@ -18,7 +18,6 @@ package com.android.systemui.shade.domain.interactor import androidx.annotation.FloatRange import com.android.compose.animation.scene.TransitionKey -import com.android.systemui.shade.shared.model.ShadeMode import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted @@ -60,13 +59,6 @@ interface ShadeInteractor : BaseShadeInteractor { val isExpandToQsEnabled: Flow<Boolean> /** - * The version of the shade layout to use. - * - * Note: Most likely, you want to read [isShadeLayoutWide] instead of this. - */ - val shadeMode: StateFlow<ShadeMode> - - /** * Whether the shade layout should be wide (true) or narrow (false). * * In a wide layout, notifications and quick settings each take up only half the screen width diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt index 322fca39a1df..b1129a94d833 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt @@ -18,7 +18,6 @@ package com.android.systemui.shade.domain.interactor import com.android.compose.animation.scene.TransitionKey import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.shade.shared.model.ShadeMode import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow @@ -47,7 +46,6 @@ class ShadeInteractorEmptyImpl @Inject constructor() : ShadeInteractor { override val isUserInteracting: StateFlow<Boolean> = inactiveFlowBoolean override val isShadeTouchable: Flow<Boolean> = inactiveFlowBoolean override val isExpandToQsEnabled: Flow<Boolean> = inactiveFlowBoolean - override val shadeMode: StateFlow<ShadeMode> = MutableStateFlow(ShadeMode.Single) override val isShadeLayoutWide: StateFlow<Boolean> = inactiveFlowBoolean override fun getTopEdgeSplitFraction(): Float = 0.5f diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt index b5e171043741..9d81be2091c2 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt @@ -42,7 +42,7 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn -/** The non-empty SceneInteractor implementation. */ +/** The non-empty [ShadeInteractor] implementation. */ @SysUISingleton class ShadeInteractorImpl @Inject @@ -100,30 +100,25 @@ constructor( override val isShadeTouchable: Flow<Boolean> = combine( - powerInteractor.isAsleep - .onEach { Log.d(TAG, "isShadeTouchable: upstream isAsleep=$it") }, + powerInteractor.isAsleep.onEach { + Log.d(TAG, "isShadeTouchable: upstream isAsleep=$it") + }, keyguardTransitionInteractor .isInTransition(Edge.create(to = KeyguardState.AOD)) - .onEach { - Log.d( - TAG, - "isShadeTouchable: upstream isTransitioningToAod=$it", - ) - }, + .onEach { Log.d(TAG, "isShadeTouchable: upstream isTransitioningToAod=$it") }, keyguardRepository.dozeTransitionModel .map { it.to == DozeStateModel.DOZE_PULSING } - .onEach { - Log.d(TAG, "isShadeTouchable: upstream isPulsing=$it") - }, + .onEach { Log.d(TAG, "isShadeTouchable: upstream isPulsing=$it") }, ) { isAsleep, isTransitioningToAod, isPulsing -> - val downstream = when { - // If the device is transitioning to AOD, only accept touches if - // still animating. - isTransitioningToAod -> dozeParams.shouldControlScreenOff() - // If the device is asleep, only accept touches if there's a pulse - isAsleep -> isPulsing - else -> true - } + val downstream = + when { + // If the device is transitioning to AOD, only accept touches if + // still animating. + isTransitioningToAod -> dozeParams.shouldControlScreenOff() + // If the device is asleep, only accept touches if there's a pulse + isAsleep -> isPulsing + else -> true + } Log.d(TAG, "isShadeTouchable emitting $downstream, values:") Log.d(TAG, " isAsleep=$isAsleep") Log.d(TAG, " isTransitioningToAod=$isTransitioningToAod") diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt index 51fcf7da3c13..8c38d2e7550c 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt @@ -41,7 +41,7 @@ import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.shade.domain.interactor.PrivacyChipInteractor import com.android.systemui.shade.domain.interactor.ShadeHeaderClockInteractor import com.android.systemui.shade.domain.interactor.ShadeInteractor -import com.android.systemui.shade.shared.model.ShadeMode +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerStatusBarViewBinder import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.ui.StatusBarIconController @@ -69,6 +69,7 @@ constructor( private val activityStarter: ActivityStarter, private val sceneInteractor: SceneInteractor, private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, private val mobileIconsInteractor: MobileIconsInteractor, val mobileIconsViewModel: MobileIconsViewModel, private val privacyChipInteractor: PrivacyChipInteractor, @@ -206,7 +207,7 @@ constructor( /** Notifies that the system icons container was clicked. */ fun onNotificationIconChipClicked() { - if (shadeInteractor.shadeMode.value !is ShadeMode.Dual) { + if (!shadeModeInteractor.isDualShade) { return } val loggingReason = "ShadeHeaderViewModel.onNotificationIconChipClicked" @@ -224,7 +225,7 @@ constructor( /** Notifies that the system icons container was clicked. */ fun onSystemIconChipClicked() { val loggingReason = "ShadeHeaderViewModel.onSystemIconChipClicked" - if (shadeInteractor.shadeMode.value is ShadeMode.Dual) { + if (shadeModeInteractor.isDualShade) { val currentOverlays = sceneInteractor.currentOverlays.value if (Overlays.QuickSettingsShade in currentOverlays) { shadeInteractor.collapseQuickSettingsShade( diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModel.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModel.kt index 7fd0e4e9d468..35031e39520c 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModel.kt @@ -26,7 +26,7 @@ import com.android.systemui.qs.ui.adapter.QSSceneAdapter import com.android.systemui.scene.domain.interactor.SceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.brightness.ui.viewModel.BrightnessMirrorViewModel -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.disableflags.domain.interactor.DisableFlagsInteractor import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor @@ -56,7 +56,7 @@ constructor( val shadeHeaderViewModelFactory: ShadeHeaderViewModel.Factory, val brightnessMirrorViewModelFactory: BrightnessMirrorViewModel.Factory, val mediaCarouselInteractor: MediaCarouselInteractor, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, private val disableFlagsInteractor: DisableFlagsInteractor, private val footerActionsViewModelFactory: FooterActionsViewModel.Factory, private val footerActionsController: FooterActionsController, @@ -65,7 +65,7 @@ constructor( private val sceneInteractor: SceneInteractor, ) : ExclusiveActivatable() { - val shadeMode: StateFlow<ShadeMode> = shadeInteractor.shadeMode + val shadeMode: StateFlow<ShadeMode> = shadeModeInteractor.shadeMode private val _isEmptySpaceClickable = MutableStateFlow(!deviceEntryInteractor.isDeviceEntered.value) diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt index 7d6b1a3126dc..d0e0de9b8b96 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt @@ -25,7 +25,7 @@ import com.android.systemui.scene.shared.model.SceneFamilies import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.shared.model.TransitionKeys.ToSplitShade import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -42,13 +42,13 @@ class ShadeUserActionsViewModel @AssistedInject constructor( private val qsSceneAdapter: QSSceneAdapter, - private val shadeInteractor: ShadeInteractor, + private val shadeModeInteractor: ShadeModeInteractor, private val sceneBackInteractor: SceneBackInteractor, ) : UserActionsViewModel() { override suspend fun hydrateActions(setActions: (Map<UserAction, UserActionResult>) -> Unit) { combine( - shadeInteractor.shadeMode, + shadeModeInteractor.shadeMode, qsSceneAdapter.isCustomizerShowing, sceneBackInteractor.backScene .filter { it != Scenes.Shade } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractor.kt index 1bd44406507d..96af83336441 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractor.kt @@ -19,7 +19,7 @@ package com.android.systemui.statusbar.notification.stack.domain.interactor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.scene.domain.interactor.SceneInteractor -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.notification.stack.data.repository.NotificationPlaceholderRepository import com.android.systemui.statusbar.notification.stack.data.repository.NotificationViewHeightRepository @@ -45,7 +45,7 @@ constructor( private val viewHeightRepository: NotificationViewHeightRepository, private val placeholderRepository: NotificationPlaceholderRepository, sceneInteractor: SceneInteractor, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, ) { /** The bounds of the notification stack in the current scene. */ val notificationShadeScrimBounds: StateFlow<ShadeScrimBounds?> = @@ -60,7 +60,7 @@ constructor( /** The rounding of the notification stack. */ val shadeScrimRounding: Flow<ShadeScrimRounding> = - combine(shadeInteractor.shadeMode, isExpandingFromHeadsUp) { + combine(shadeModeInteractor.shadeMode, isExpandingFromHeadsUp) { shadeMode, isExpandingFromHeadsUp -> ShadeScrimRounding( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationLockscreenScrimViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationLockscreenScrimViewModel.kt index d68f769dffdf..4a28b545fae9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationLockscreenScrimViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationLockscreenScrimViewModel.kt @@ -29,7 +29,7 @@ import com.android.systemui.lifecycle.ExclusiveActivatable import com.android.systemui.lifecycle.Hydrator import com.android.systemui.notifications.ui.composable.Notifications import com.android.systemui.res.R -import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.shade.ui.composable.Shade import com.android.systemui.statusbar.notification.stack.domain.interactor.NotificationStackAppearanceInteractor @@ -46,7 +46,7 @@ class NotificationLockscreenScrimViewModel @AssistedInject constructor( dumpManager: DumpManager, - shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, private val stackAppearanceInteractor: NotificationStackAppearanceInteractor, ) : ActivatableFlowDumper by ActivatableFlowDumperImpl(dumpManager, "NotificationScrollViewModel"), @@ -54,7 +54,7 @@ constructor( private val hydrator = Hydrator("NotificationLockscreenScrimViewModel.hydrator") - val shadeMode: StateFlow<ShadeMode> = shadeInteractor.shadeMode + val shadeMode: StateFlow<ShadeMode> = shadeModeInteractor.shadeMode /** The [ElementKey] to use for the scrim. */ val element: ElementViewModel by diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt index 20149826ceb9..7f016a1cbc2e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt @@ -31,6 +31,7 @@ import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Overlays import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.domain.interactor.RemoteInputInteractor import com.android.systemui.statusbar.notification.stack.domain.interactor.NotificationStackAppearanceInteractor @@ -63,6 +64,7 @@ constructor( dumpManager: DumpManager, private val stackAppearanceInteractor: NotificationStackAppearanceInteractor, shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, private val remoteInputInteractor: RemoteInputInteractor, private val sceneInteractor: SceneInteractor, // TODO(b/336364825) Remove Lazy when SceneContainerFlag is released - @@ -151,10 +153,10 @@ constructor( val expandFraction: Flow<Float> = combine( shadeInteractor.shadeExpansion, - shadeInteractor.shadeMode, shadeInteractor.qsExpansion, + shadeModeInteractor.shadeMode, sceneInteractor.transitionState, - ) { shadeExpansion, _, qsExpansion, transitionState -> + ) { shadeExpansion, qsExpansion, _, transitionState -> when (transitionState) { is Idle -> if ( @@ -210,7 +212,8 @@ constructor( sceneInteractor.isSceneInFamily(scene, this) private val qsAllowsClipping: Flow<Boolean> = - combine(shadeInteractor.shadeMode, shadeInteractor.qsExpansion) { shadeMode, qsExpansion -> + combine(shadeModeInteractor.shadeMode, shadeInteractor.qsExpansion) { shadeMode, qsExpansion + -> when (shadeMode) { is ShadeMode.Dual -> false is ShadeMode.Split -> true diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModel.kt index 8e12e081e861..000b3f643e9a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModel.kt @@ -30,6 +30,7 @@ import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Overlays import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode import com.android.systemui.statusbar.domain.interactor.RemoteInputInteractor import com.android.systemui.statusbar.notification.domain.interactor.HeadsUpNotificationInteractor @@ -58,6 +59,7 @@ constructor( private val interactor: NotificationStackAppearanceInteractor, private val sceneInteractor: SceneInteractor, private val shadeInteractor: ShadeInteractor, + shadeModeInteractor: ShadeModeInteractor, private val headsUpNotificationInteractor: HeadsUpNotificationInteractor, remoteInputInteractor: RemoteInputInteractor, featureFlags: FeatureFlagsClassic, @@ -75,16 +77,16 @@ constructor( val notificationsShadeContentKey: ContentKey by hydrator.hydratedStateOf( traceName = "notificationsShadeContentKey", - initialValue = getNotificationsShadeContentKey(shadeInteractor.shadeMode.value), - source = shadeInteractor.shadeMode.map { getNotificationsShadeContentKey(it) }, + initialValue = getNotificationsShadeContentKey(shadeModeInteractor.shadeMode.value), + source = shadeModeInteractor.shadeMode.map { getNotificationsShadeContentKey(it) }, ) /** The content key to use for the quick settings shade. */ val quickSettingsShadeContentKey: ContentKey by hydrator.hydratedStateOf( traceName = "quickSettingsShadeContentKey", - initialValue = getQuickSettingsShadeContentKey(shadeInteractor.shadeMode.value), - source = shadeInteractor.shadeMode.map { getQuickSettingsShadeContentKey(it) }, + initialValue = getQuickSettingsShadeContentKey(shadeModeInteractor.shadeMode.value), + source = shadeModeInteractor.shadeMode.map { getQuickSettingsShadeContentKey(it) }, ) /** DEBUG: whether the placeholder should be made slightly visible for positional debugging. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt index d6e4add4eee3..960311641042 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt @@ -76,6 +76,7 @@ import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shade.LargeScreenHeaderHelper import com.android.systemui.shade.ShadeDisplayAware import com.android.systemui.shade.domain.interactor.ShadeInteractor +import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode.Dual import com.android.systemui.shade.shared.model.ShadeMode.Single import com.android.systemui.shade.shared.model.ShadeMode.Split @@ -91,6 +92,7 @@ import com.android.systemui.util.kotlin.sample import dagger.Lazy import javax.inject.Inject import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted @@ -111,6 +113,7 @@ import kotlinx.coroutines.flow.transformWhile import kotlinx.coroutines.isActive /** View-model for the shared notification container, used by both the shade and keyguard spaces */ +@OptIn(ExperimentalCoroutinesApi::class) @SysUISingleton class SharedNotificationContainerViewModel @Inject @@ -123,7 +126,8 @@ constructor( private val keyguardInteractor: KeyguardInteractor, private val keyguardTransitionInteractor: KeyguardTransitionInteractor, private val shadeInteractor: ShadeInteractor, - private val notificationStackAppearanceInteractor: NotificationStackAppearanceInteractor, + shadeModeInteractor: ShadeModeInteractor, + notificationStackAppearanceInteractor: NotificationStackAppearanceInteractor, private val alternateBouncerToGoneTransitionViewModel: AlternateBouncerToGoneTransitionViewModel, private val alternateBouncerToPrimaryBouncerTransitionViewModel: @@ -233,7 +237,7 @@ constructor( if (SceneContainerFlag.isEnabled) { combine( shadeInteractor.isShadeLayoutWide, - shadeInteractor.shadeMode, + shadeModeInteractor.shadeMode, configurationInteractor.onAnyConfigurationChange, ) { isShadeLayoutWide, shadeMode, _ -> with(context.resources) { @@ -477,7 +481,7 @@ constructor( */ private val alphaForShadeAndQsExpansion: Flow<Float> = if (SceneContainerFlag.isEnabled) { - shadeInteractor.shadeMode.flatMapLatest { shadeMode -> + shadeModeInteractor.shadeMode.flatMapLatest { shadeMode -> when (shadeMode) { Single -> combineTransform( diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelKosmos.kt index 1c84133d3821..f73777237cd0 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelKosmos.kt @@ -20,10 +20,12 @@ import com.android.systemui.deviceentry.domain.interactor.deviceUnlockedInteract import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor val Kosmos.communalUserActionsViewModel by Fixture { CommunalUserActionsViewModel( deviceUnlockedInteractor = deviceUnlockedInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt index 71746b505a48..2e59788663f7 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt @@ -20,6 +20,7 @@ import com.android.systemui.communal.domain.interactor.communalInteractor import com.android.systemui.deviceentry.domain.interactor.deviceUnlockedInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor val Kosmos.dreamUserActionsViewModel by Kosmos.Fixture { @@ -27,5 +28,6 @@ val Kosmos.dreamUserActionsViewModel by communalInteractor = communalInteractor, deviceUnlockedInteractor = deviceUnlockedInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt index 2311c0a23db8..ec83157eb108 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt @@ -22,12 +22,14 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.scene.domain.interactor.sceneContainerOcclusionInteractor import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor val Kosmos.lockscreenUserActionsViewModel by Fixture { LockscreenUserActionsViewModel( deviceEntryInteractor = deviceEntryInteractor, communalInteractor = communalInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, occlusionInteractor = sceneContainerOcclusionInteractor, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractorKosmos.kt index 47615f527d16..161f72af5e71 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractorKosmos.kt @@ -19,9 +19,13 @@ package com.android.systemui.qs.panels.domain.interactor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.qs.panels.data.repository.qsColumnsRepository -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor val Kosmos.qsColumnsInteractor by Kosmos.Fixture { - QSColumnsInteractor(applicationCoroutineScope, qsColumnsRepository, shadeInteractor) + QSColumnsInteractor( + scope = applicationCoroutineScope, + repo = qsColumnsRepository, + shadeModeInteractor = shadeModeInteractor, + ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt index ae4e8d275341..c3b390702186 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt @@ -20,6 +20,7 @@ import com.android.systemui.scene.ui.viewmodel.SceneContainerHapticsViewModel import com.android.systemui.scene.ui.viewmodel.SceneContainerViewModel import com.android.systemui.scene.ui.viewmodel.splitEdgeDetector import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.domain.interactor.remoteInputInteractor import com.android.systemui.wallpapers.ui.viewmodel.wallpaperViewModel import kotlinx.coroutines.flow.MutableStateFlow @@ -92,7 +93,7 @@ val Kosmos.sceneContainerViewModelFactory by Fixture { sceneInteractor = sceneInteractor, falsingInteractor = falsingInteractor, powerInteractor = powerInteractor, - shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, remoteInputInteractor = remoteInputInteractor, splitEdgeDetector = splitEdgeDetector, logger = sceneLogger, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorKosmos.kt index 5dc03338f19b..9eff63ca8a8c 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorKosmos.kt @@ -24,6 +24,7 @@ val Kosmos.shadeBackActionInteractor by Kosmos.Fixture { ShadeBackActionInteractorImpl( shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, sceneInteractor = sceneInteractor, deviceEntryInteractor = deviceEntryInteractor, ) diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeModeInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeModeInteractorKosmos.kt index 2ba9c8094aac..614b4191d6ce 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeModeInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeModeInteractorKosmos.kt @@ -36,6 +36,8 @@ val Kosmos.shadeModeInteractor by Fixture { ) } +val Kosmos.shadeMode by Fixture { shadeModeInteractor.shadeMode } + // TODO(b/391578667): Make this user-aware once supported by FakeSecureSettingsRepository. /** * Enables the Dual Shade setting, and (optionally) sets the shade layout to be wide (`true`) or diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt index 2be8acb845b9..cfc2075c1352 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt @@ -25,6 +25,7 @@ import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.shade.domain.interactor.privacyChipInteractor import com.android.systemui.shade.domain.interactor.shadeHeaderClockInteractor import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerStatusBarViewBinder import com.android.systemui.statusbar.phone.ui.StatusBarIconController import com.android.systemui.statusbar.phone.ui.TintedIconManager @@ -39,6 +40,7 @@ val Kosmos.shadeHeaderViewModel: ShadeHeaderViewModel by activityStarter = activityStarter, sceneInteractor = sceneInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, mobileIconsInteractor = mobileIconsInteractor, mobileIconsViewModel = mobileIconsViewModel, privacyChipInteractor = privacyChipInteractor, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModelKosmos.kt index 694bb6e87ef6..db4b979622bb 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModelKosmos.kt @@ -25,7 +25,7 @@ import com.android.systemui.qs.footerActionsViewModelFactory import com.android.systemui.qs.ui.adapter.qsSceneAdapter import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.settings.brightness.ui.viewmodel.brightnessMirrorViewModelFactory -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.disableflags.domain.interactor.disableFlagsInteractor import com.android.systemui.unfold.domain.interactor.unfoldTransitionInteractor @@ -35,7 +35,7 @@ val Kosmos.shadeSceneContentViewModel: ShadeSceneContentViewModel by Fixture { qsSceneAdapter = qsSceneAdapter, brightnessMirrorViewModelFactory = brightnessMirrorViewModelFactory, mediaCarouselInteractor = mediaCarouselInteractor, - shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, disableFlagsInteractor = disableFlagsInteractor, footerActionsViewModelFactory = footerActionsViewModelFactory, footerActionsController = footerActionsController, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelKosmos.kt index 0aeea4e1a2e5..26355930f1a1 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelKosmos.kt @@ -20,12 +20,12 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.qs.ui.adapter.qsSceneAdapter import com.android.systemui.scene.domain.interactor.sceneBackInteractor -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor val Kosmos.shadeUserActionsViewModel: ShadeUserActionsViewModel by Fixture { ShadeUserActionsViewModel( qsSceneAdapter = qsSceneAdapter, - shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, sceneBackInteractor = sceneBackInteractor, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractorKosmos.kt index 2772d3698d88..87704cc39eaf 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractorKosmos.kt @@ -19,7 +19,7 @@ package com.android.systemui.statusbar.notification.stack.domain.interactor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.scene.domain.interactor.sceneInteractor -import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.notification.stack.data.repository.notificationPlaceholderRepository import com.android.systemui.statusbar.notification.stack.data.repository.notificationViewHeightRepository @@ -28,6 +28,6 @@ val Kosmos.notificationStackAppearanceInteractor by Fixture { viewHeightRepository = notificationViewHeightRepository, placeholderRepository = notificationPlaceholderRepository, sceneInteractor = sceneInteractor, - shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModelKosmos.kt index 7244d465ed7e..167b11da9dba 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModelKosmos.kt @@ -22,6 +22,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.domain.interactor.remoteInputInteractor import com.android.systemui.statusbar.notification.stack.domain.interactor.notificationStackAppearanceInteractor @@ -30,6 +31,7 @@ val Kosmos.notificationScrollViewModel by Fixture { dumpManager = dumpManager, stackAppearanceInteractor = notificationStackAppearanceInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, remoteInputInteractor = remoteInputInteractor, sceneInteractor = sceneInteractor, keyguardInteractor = { keyguardInteractor }, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModelKosmos.kt index e5cf0a90ebbd..084777417334 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModelKosmos.kt @@ -22,6 +22,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.statusbar.domain.interactor.remoteInputInteractor import com.android.systemui.statusbar.notification.stack.domain.interactor.headsUpNotificationInteractor import com.android.systemui.statusbar.notification.stack.domain.interactor.notificationStackAppearanceInteractor @@ -31,6 +32,7 @@ val Kosmos.notificationsPlaceholderViewModel by Fixture { interactor = notificationStackAppearanceInteractor, sceneInteractor = sceneInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, headsUpNotificationInteractor = headsUpNotificationInteractor, remoteInputInteractor = remoteInputInteractor, featureFlags = featureFlagsClassic, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt index 45c56ae0ab7a..7a2b7c24252b 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt @@ -54,6 +54,7 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.shade.largeScreenHeaderHelper import com.android.systemui.statusbar.notification.stack.domain.interactor.headsUpNotificationInteractor import com.android.systemui.statusbar.notification.stack.domain.interactor.notificationStackAppearanceInteractor @@ -71,6 +72,7 @@ val Kosmos.sharedNotificationContainerViewModel by Fixture { keyguardInteractor = keyguardInteractor, keyguardTransitionInteractor = keyguardTransitionInteractor, shadeInteractor = shadeInteractor, + shadeModeInteractor = shadeModeInteractor, notificationStackAppearanceInteractor = notificationStackAppearanceInteractor, alternateBouncerToGoneTransitionViewModel = alternateBouncerToGoneTransitionViewModel, alternateBouncerToPrimaryBouncerTransitionViewModel = |