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

Commit 4a8471ac authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Use isUserInteracting for early QS" into main

parents 2a5c0c03 bf4a2e40
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.systemui.qs.fgsManagerController
import com.android.systemui.qs.panels.domain.interactor.tileSquishinessInteractor
import com.android.systemui.qs.panels.ui.viewmodel.setConfigurationForMediaInRow
import com.android.systemui.res.R
import com.android.systemui.shade.data.repository.FakeShadeRepository
import com.android.systemui.shade.data.repository.fakeShadeRepository
import com.android.systemui.shade.largeScreenHeaderHelper
import com.android.systemui.statusbar.StatusBarState
@@ -438,9 +439,11 @@ class QSFragmentComposeViewModelTest : AbstractQSFragmentComposeViewModelTest()
        }

    @Test
    fun qsVisibleAndAnyShadeVisible() =
    fun qsVisibleAndAnyShadeVisible_userTracking_false() =
        with(kosmos) {
            testScope.testWithinLifecycle {
                fakeShadeRepository.setUserTracking(false)

                underTest.isQsVisible = false
                fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false)
                assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse()
@@ -459,6 +462,30 @@ class QSFragmentComposeViewModelTest : AbstractQSFragmentComposeViewModelTest()
            }
        }

    @Test
    fun qsVisibleAndAnyShadeVisible_userTracking_true() =
        with(kosmos) {
            testScope.testWithinLifecycle {
                fakeShadeRepository.setUserTracking(true)

                underTest.isQsVisible = false
                fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false)
                assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse()

                underTest.isQsVisible = true
                fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false)
                assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue()

                underTest.isQsVisible = false
                fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true)
                assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse()

                underTest.isQsVisible = true
                fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true)
                assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue()
            }
        }

    @Test
    fun isEditing() =
        with(kosmos) {
@@ -493,6 +520,10 @@ class QSFragmentComposeViewModelTest : AbstractQSFragmentComposeViewModelTest()
        runCurrent()
    }

    private fun FakeShadeRepository.setUserTracking(tracking: Boolean) {
        setLegacyShadeTracking(tracking)
    }

    companion object {
        private const val QS_DISABLE_FLAG = StatusBarManager.DISABLE2_QUICK_SETTINGS

+7 −1
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ constructor(
    var isQsVisible by mutableStateOf(false)

    val isQsVisibleAndAnyShadeExpanded: Boolean
        get() = anyShadeExpanded && isQsVisible
        get() = (anyShadeExpanded || isUserInteracting) && isQsVisible

    // This can only be negative if undefined (in which case it will be -1f), else it will be
    // in [0, 1]. In some cases, it could be set back to -1f internally to indicate that it's
@@ -454,6 +454,12 @@ constructor(
            source = shadeInteractor.isAnyExpanded,
        )

    private val isUserInteracting by
        hydrator.hydratedStateOf(
            traceName = "isUserInteracting",
            source = shadeInteractor.isUserInteracting,
        )

    fun applyNewQsScrollerBounds(left: Float, top: Float, right: Float, bottom: Float) {
        if (usingMedia) {
            qsMediaHost.currentClipping.set(