Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt +17 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.desktop.domain.interactor.desktopInteractor import com.android.systemui.desktop.domain.interactor.enableDesktopFeatureSet import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.flags.andSceneContainer import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFaceAuthRepository Loading Loading @@ -94,6 +96,7 @@ class KeyguardStatusBarViewModelTest(flags: FlagsParameterization) : SysuiTestCa KeyguardStatusBarViewModel( testScope.backgroundScope, headsUpNotificationInteractor, kosmos.desktopInteractor, kosmos.sceneInteractor, keyguardInteractor, keyguardStatusBarInteractor, Loading Loading @@ -168,6 +171,20 @@ class KeyguardStatusBarViewModelTest(flags: FlagsParameterization) : SysuiTestCa assertThat(latest).isFalse() } @Test fun isVisible_desktopFeatureSetEnabled_false() = testScope.runTest { val latest by collectLastValue(underTest.isVisible) kosmos.sceneContainerRepository.instantlyTransitionTo(Scenes.Lockscreen) runCurrent() assertThat(latest).isTrue() kosmos.enableDesktopFeatureSet() runCurrent() assertThat(latest).isFalse() } @Test @EnableSceneContainer @DisableFlags(StatusBarNoHunBehavior.FLAG_NAME) Loading packages/SystemUI/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModel.kt +11 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.ui.viewmodel import com.android.systemui.Flags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.desktop.domain.interactor.DesktopInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.lifecycle.HydratedActivatable import com.android.systemui.scene.domain.interactor.SceneInteractor Loading Loading @@ -57,6 +58,7 @@ class KeyguardStatusBarViewModel constructor( @Application scope: CoroutineScope, headsUpNotificationInteractor: HeadsUpNotificationInteractor, desktopInteractor: DesktopInteractor, sceneInteractor: SceneInteractor, private val keyguardInteractor: KeyguardInteractor, keyguardStatusBarInteractor: KeyguardStatusBarInteractor, Loading @@ -74,11 +76,18 @@ constructor( /** True if this view should be visible and false otherwise. */ val isVisible: StateFlow<Boolean> = combine( desktopInteractor.isDesktopFeatureSetEnabled, sceneInteractor.currentScene, sceneInteractor.currentOverlays, keyguardInteractor.isDozing, showingHeadsUpStatusBar, ) { currentScene, currentOverlays, isDozing, showHeadsUpStatusBar -> ) { desktopFeatureSetEnabled, currentScene, currentOverlays, isDozing, showHeadsUpStatusBar -> !desktopFeatureSetEnabled && currentScene == Scenes.Lockscreen && Overlays.NotificationsShade !in currentOverlays && Overlays.QuickSettingsShade !in currentOverlays && Loading packages/SystemUI/tests/utils/src/com/android/systemui/desktop/domain/interactor/DesktopInteractorKosmos.kt +19 −0 Original line number Diff line number Diff line Loading @@ -16,9 +16,12 @@ package com.android.systemui.desktop.domain.interactor import android.content.res.Configuration import android.content.res.mainResources import android.content.testableContext import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.backgroundScope import com.android.systemui.res.R import com.android.systemui.statusbar.policy.configurationController val Kosmos.desktopInteractor: DesktopInteractor by Loading @@ -29,3 +32,19 @@ val Kosmos.desktopInteractor: DesktopInteractor by configurationController = configurationController, ) } fun Kosmos.enableDesktopFeatureSet() { testableContext.orCreateTestableResources.addOverride( R.bool.config_enableDesktopFeatureSet, true, ) configurationController.onConfigurationChanged(Configuration()) } fun Kosmos.disableDesktopFeatureSet() { testableContext.orCreateTestableResources.addOverride( R.bool.config_enableDesktopFeatureSet, false, ) configurationController.onConfigurationChanged(Configuration()) } packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelKosmos.kt +2 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.ui.viewmodel import com.android.systemui.desktop.domain.interactor.desktopInteractor import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope Loading @@ -30,6 +31,7 @@ val Kosmos.keyguardStatusBarViewModel: KeyguardStatusBarViewModel by KeyguardStatusBarViewModel( applicationCoroutineScope, headsUpNotificationInteractor, desktopInteractor, sceneInteractor, keyguardInteractor, keyguardStatusBarInteractor, Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt +17 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.desktop.domain.interactor.desktopInteractor import com.android.systemui.desktop.domain.interactor.enableDesktopFeatureSet import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.flags.andSceneContainer import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFaceAuthRepository Loading Loading @@ -94,6 +96,7 @@ class KeyguardStatusBarViewModelTest(flags: FlagsParameterization) : SysuiTestCa KeyguardStatusBarViewModel( testScope.backgroundScope, headsUpNotificationInteractor, kosmos.desktopInteractor, kosmos.sceneInteractor, keyguardInteractor, keyguardStatusBarInteractor, Loading Loading @@ -168,6 +171,20 @@ class KeyguardStatusBarViewModelTest(flags: FlagsParameterization) : SysuiTestCa assertThat(latest).isFalse() } @Test fun isVisible_desktopFeatureSetEnabled_false() = testScope.runTest { val latest by collectLastValue(underTest.isVisible) kosmos.sceneContainerRepository.instantlyTransitionTo(Scenes.Lockscreen) runCurrent() assertThat(latest).isTrue() kosmos.enableDesktopFeatureSet() runCurrent() assertThat(latest).isFalse() } @Test @EnableSceneContainer @DisableFlags(StatusBarNoHunBehavior.FLAG_NAME) Loading
packages/SystemUI/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModel.kt +11 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.ui.viewmodel import com.android.systemui.Flags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.desktop.domain.interactor.DesktopInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.lifecycle.HydratedActivatable import com.android.systemui.scene.domain.interactor.SceneInteractor Loading Loading @@ -57,6 +58,7 @@ class KeyguardStatusBarViewModel constructor( @Application scope: CoroutineScope, headsUpNotificationInteractor: HeadsUpNotificationInteractor, desktopInteractor: DesktopInteractor, sceneInteractor: SceneInteractor, private val keyguardInteractor: KeyguardInteractor, keyguardStatusBarInteractor: KeyguardStatusBarInteractor, Loading @@ -74,11 +76,18 @@ constructor( /** True if this view should be visible and false otherwise. */ val isVisible: StateFlow<Boolean> = combine( desktopInteractor.isDesktopFeatureSetEnabled, sceneInteractor.currentScene, sceneInteractor.currentOverlays, keyguardInteractor.isDozing, showingHeadsUpStatusBar, ) { currentScene, currentOverlays, isDozing, showHeadsUpStatusBar -> ) { desktopFeatureSetEnabled, currentScene, currentOverlays, isDozing, showHeadsUpStatusBar -> !desktopFeatureSetEnabled && currentScene == Scenes.Lockscreen && Overlays.NotificationsShade !in currentOverlays && Overlays.QuickSettingsShade !in currentOverlays && Loading
packages/SystemUI/tests/utils/src/com/android/systemui/desktop/domain/interactor/DesktopInteractorKosmos.kt +19 −0 Original line number Diff line number Diff line Loading @@ -16,9 +16,12 @@ package com.android.systemui.desktop.domain.interactor import android.content.res.Configuration import android.content.res.mainResources import android.content.testableContext import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.backgroundScope import com.android.systemui.res.R import com.android.systemui.statusbar.policy.configurationController val Kosmos.desktopInteractor: DesktopInteractor by Loading @@ -29,3 +32,19 @@ val Kosmos.desktopInteractor: DesktopInteractor by configurationController = configurationController, ) } fun Kosmos.enableDesktopFeatureSet() { testableContext.orCreateTestableResources.addOverride( R.bool.config_enableDesktopFeatureSet, true, ) configurationController.onConfigurationChanged(Configuration()) } fun Kosmos.disableDesktopFeatureSet() { testableContext.orCreateTestableResources.addOverride( R.bool.config_enableDesktopFeatureSet, false, ) configurationController.onConfigurationChanged(Configuration()) }
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelKosmos.kt +2 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.ui.viewmodel import com.android.systemui.desktop.domain.interactor.desktopInteractor import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.applicationCoroutineScope Loading @@ -30,6 +31,7 @@ val Kosmos.keyguardStatusBarViewModel: KeyguardStatusBarViewModel by KeyguardStatusBarViewModel( applicationCoroutineScope, headsUpNotificationInteractor, desktopInteractor, sceneInteractor, keyguardInteractor, keyguardStatusBarInteractor, Loading