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

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

Merge "React earlier to expansion" into main

parents 07a35fc7 dcefe81a
Loading
Loading
Loading
Loading
+5 −32
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import com.android.systemui.qs.panels.domain.interactor.tileSquishinessInteracto
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
import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository
@@ -439,49 +438,23 @@ class QSFragmentComposeViewModelTest : AbstractQSFragmentComposeViewModelTest()
        }

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

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

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

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

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

    @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.isPanelExpanded = true
                underTest.isQsVisible = true
                fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true)
                assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue()
            }
        }
+2 −0
Original line number Diff line number Diff line
@@ -203,6 +203,8 @@ public interface QS extends FragmentBase {
     */
    void setIsNotificationPanelFullWidth(boolean isFullWidth);

    default void setPanelExpanded(boolean panelExpanded) {}

    /**
     * Callback for when QSPanel container is scrolled
     */
+4 −0
Original line number Diff line number Diff line
@@ -464,6 +464,10 @@ constructor(
        viewModel.isStackScrollerOverscrolling = overscrolling
    }

    override fun setPanelExpanded(panelExpanded: Boolean) {
        viewModel.isPanelExpanded = panelExpanded
    }

    override fun setExpanded(qsExpanded: Boolean) {
        viewModel.isQsExpanded = qsExpanded
    }
+4 −14
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ constructor(
    var isQsVisible by mutableStateOf(false)

    val isQsVisibleAndAnyShadeExpanded: Boolean
        get() = (anyShadeExpanded || isUserInteracting) && isQsVisible
        get() = isPanelExpanded && 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
@@ -211,6 +211,8 @@ constructor(

    var heightOverride by mutableStateOf(-1)

    var isPanelExpanded by mutableStateOf(false)

    val expansionState by derivedStateOf {
        if (forceQs) {
            QSExpansionState(1f)
@@ -448,18 +450,6 @@ constructor(
                ),
        )

    private val anyShadeExpanded by
        hydrator.hydratedStateOf(
            traceName = "anyShadeExpanded",
            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(
@@ -543,7 +533,7 @@ constructor(
            printSection("Quick Settings state") {
                println("isQSExpanded", isQsExpanded)
                println("isQSVisible", isQsVisible)
                println("anyShadeExpanded", anyShadeExpanded)
                println("isPanelExpanded", isPanelExpanded)
                println("isQSVisibleAndAnyShadeExpanded", isQsVisibleAndAnyShadeExpanded)
                println("isQSEnabled", isQsEnabled)
                println("isCustomizing", containerViewModel.editModeViewModel.isEditing.value)
+3 −1
Original line number Diff line number Diff line
@@ -3231,8 +3231,10 @@ public final class NotificationPanelViewController implements
    @Override
    public void updateExpansionAndVisibility() {
        if (!SceneContainerFlag.isEnabled()) {
            boolean isExpanded = isExpanded();
            mShadeExpansionStateManager.onPanelExpansionChanged(
                    mExpandedFraction, isExpanded(), isTracking());
                    mExpandedFraction, isExpanded, isTracking());
            mQsController.setPanelExpanded(isExpanded);
        }
        updateVisibility();
    }
Loading