diff options
| author | 2024-08-30 10:24:21 +0000 | |
|---|---|---|
| committer | 2024-09-02 06:55:53 +0000 | |
| commit | baa1ca4ab8d444367d3d12588ae443f8c0fb99b0 (patch) | |
| tree | 2d5b42e7f2ff912c95f119da38739d765ed93c4e | |
| parent | 9de962955db436bc9fde5fb956f8c406686c1391 (diff) | |
[Flexiglass] Fix ShadeInteractor.isQsFullScreen on split shade
When we are Idle on the QuickSettingsScene, and we are in split shade,
isQsFullScreen should return false, because the QS is NOT taking up
the entire space in this state. This matches the legacy behaviour.
Fixes: 362977962
Test: EmptyShadeView and FooterView shows up correctly in split shade
Flag: com.android.systemui.scene_container
Change-Id: I80164b2642a7e3dfe96506edbd597c9a037009bc
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) |