summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author burakov <burakov@google.com> 2025-01-31 21:00:22 +0000
committer Danny Burakov <burakov@google.com> 2025-02-03 06:14:08 -0800
commitdb8a28f2915dc311b2ac7198f2280b3f27237dd8 (patch)
treefcb8c2d96b758a16caa86f8fb0b2550e4e31f433
parent44f195a46a8f72e8eb93610e828d034c17a7a912 (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
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt8
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModelTest.kt7
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt4
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModelTest.kt10
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt24
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/shade/domain/startable/ShadeStartableTest.kt7
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModel.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModel.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModel.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractor.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt12
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/ui/viewmodel/QuickSettingsSceneContentViewModel.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModel.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/SceneContainerViewModel.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ShadeStateTraceLogger.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorImpl.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractor.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorEmptyImpl.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt35
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt7
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModel.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractor.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationLockscreenScrimViewModel.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModel.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModel.kt10
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/qs/panels/domain/interactor/QSColumnsInteractorKosmos.kt8
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneKosmos.kt3
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeBackActionInteractorKosmos.kt1
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/domain/interactor/ShadeModeInteractorKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeSceneContentViewModelKosmos.kt4
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelKosmos.kt4
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/domain/interactor/NotificationStackAppearanceInteractorKosmos.kt4
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModelKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationsPlaceholderViewModelKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/SharedNotificationContainerViewModelKosmos.kt2
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 =