Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c132c67 authored by András Kurucz's avatar András Kurucz Committed by Android (Google) Code Review
Browse files

Merge "[Flexiglass] Fix ShadeInteractor.isQsFullScreen on split shade" into main

parents 892d60c7 baa1ca4a
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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
                        }
                    }
+19 −0
Original line number Diff line number Diff line
@@ -155,6 +155,25 @@ class ShadeInteractorSceneContainerImplTest : SysuiTestCase() {
            Truth.assertThat(actual).isFalse()
        }

    @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 {