diff options
2 files changed, 26 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt index 6a21531d9c06..aa54d516159d 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt @@ -99,14 +99,17 @@ constructor( .distinctUntilChanged() override val isQsFullscreen: Flow<Boolean> = - sceneInteractor - .resolveSceneFamily(SceneFamilies.QuickSettings) - .flatMapLatestConflated { quickSettingsScene -> + combine( + shadeRepository.isShadeLayoutWide, + sceneInteractor.resolveSceneFamily(SceneFamilies.QuickSettings), + ::Pair + ) + .flatMapLatestConflated { (isShadeLayoutWide, quickSettingsScene) -> sceneInteractor.transitionState .map { state -> when (state) { is ObservableTransitionState.Idle -> - state.currentScene == quickSettingsScene + !isShadeLayoutWide && state.currentScene == quickSettingsScene is ObservableTransitionState.Transition -> false } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt index fadb1d7c91a1..b65a90200837 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImplTest.kt @@ -156,6 +156,25 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() { } @Test + fun qsFullscreen_falseWhenIdleSplitShadeQs() = + testScope.runTest { + val actual by collectLastValue(underTest.isQsFullscreen) + + // WHEN split shade is enabled and Idle on QuickSettings scene + shadeTestUtil.setSplitShade(true) + keyguardRepository.setStatusBarState(StatusBarState.SHADE) + val transitionState = + MutableStateFlow<ObservableTransitionState>( + ObservableTransitionState.Idle(Scenes.QuickSettings) + ) + sceneInteractor.setTransitionState(transitionState) + runCurrent() + + // THEN QS is not fullscreen + Truth.assertThat(actual).isFalse() + } + + @Test fun qsFullscreen_trueWhenIdleQS() = testScope.runTest { val actual by collectLastValue(underTest.isQsFullscreen) |