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

Commit 3b7e950c authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Fix 2 finger pull down animation" into sc-v2-dev

parents 8a9fb9c2 9e153664
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -178,7 +178,10 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {

    @Override
    public void setSquishinessFraction(float squishinessFraction) {
        // No-op, paged layouts are not squishy.
        int nPages = mPages.size();
        for (int i = 0; i < nPages; i++) {
            mPages.get(i).setSquishinessFraction(squishinessFraction);
        }
    }

    private void updateListening() {
+2 −11
Original line number Diff line number Diff line
@@ -3,15 +3,14 @@ package com.android.systemui.qs
import android.view.ViewGroup
import com.android.systemui.qs.dagger.QSFragmentModule.QQS_FOOTER
import com.android.systemui.qs.dagger.QSScope
import com.android.systemui.qs.tileimpl.HeightOverrideable
import javax.inject.Inject
import javax.inject.Named

@QSScope
class QSSquishinessController @Inject constructor(
    private val qsTileHost: QSTileHost,
    @Named(QQS_FOOTER) private val qqsFooterActionsView: FooterActionsView,
    private val qsAnimator: QSAnimator,
    private val qsPanelController: QSPanelController,
    private val quickQSPanelController: QuickQSPanelController
) {

@@ -34,18 +33,10 @@ class QSSquishinessController @Inject constructor(
     * Change the height of all tiles and repositions their siblings.
     */
    private fun updateSquishiness() {
        // Update tile positions in the layout
        (qsPanelController.tileLayout as QSPanel.QSTileLayout).setSquishinessFraction(squishiness)
        val tileLayout = quickQSPanelController.tileLayout as TileLayout
        tileLayout.setSquishinessFraction(squishiness)

        // Adjust their heights as well
        for (tile in qsTileHost.tiles) {
            val tileView = quickQSPanelController.getTileView(tile)
            (tileView as? HeightOverrideable)?.let {
                it.squishinessFraction = squishiness
            }
        }

        // Calculate how much we should move the footer
        val tileHeightOffset = tileLayout.height - tileLayout.tilesHeight
        val footerTopMargin = (qqsFooterActionsView.layoutParams as ViewGroup.MarginLayoutParams)
+7 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.qs.QSPanel.QSTileLayout;
import com.android.systemui.qs.QSPanelControllerBase.TileRecord;
import com.android.systemui.qs.tileimpl.HeightOverrideable;

import java.util.ArrayList;

@@ -285,5 +286,11 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
        }
        mSquishinessFraction = squishinessFraction;
        layoutTileRecords(mRecords.size(), false /* forLayout */);

        for (TileRecord record : mRecords) {
            if (record.tileView instanceof HeightOverrideable) {
                ((HeightOverrideable) record.tileView).setSquishinessFraction(mSquishinessFraction);
            }
        }
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -2241,8 +2241,10 @@ public class NotificationPanelViewController extends PanelViewController {
    private void updateQsExpansion() {
        if (mQs == null) return;
        float qsExpansionFraction = computeQsExpansionFraction();
        float squishiness = mNotificationStackScrollLayoutController
                .getNotificationSquishinessFraction();
        mQs.setQsExpansion(qsExpansionFraction, getExpandedFraction(), getHeaderTranslation(),
                mNotificationStackScrollLayoutController.getNotificationSquishinessFraction());
                mQsExpandImmediate || mQsExpanded ? 1f : squishiness);
        mSplitShadeHeaderController.setQsExpandedFraction(qsExpansionFraction);
        mMediaHierarchyManager.setQsExpansion(qsExpansionFraction);
        int qsPanelBottomY = calculateQsBottomPosition(qsExpansionFraction);
+6 −11
Original line number Diff line number Diff line
@@ -4,13 +4,10 @@ import android.testing.AndroidTestingRunner
import android.view.ViewGroup
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.qs.tileimpl.QSTileViewImpl
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.any
import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.Mockito.never
@@ -21,14 +18,13 @@ import org.mockito.junit.MockitoJUnit
@SmallTest
class QSSquishinessControllerTest : SysuiTestCase() {

    @Mock private lateinit var qsTileHost: QSTileHost
    @Mock private lateinit var qqsFooterActionsView: FooterActionsView
    @Mock private lateinit var qqsFooterActionsViewLP: ViewGroup.MarginLayoutParams
    @Mock private lateinit var qsAnimator: QSAnimator
    @Mock private lateinit var qsPanelController: QSPanelController
    @Mock private lateinit var quickQsPanelController: QuickQSPanelController
    @Mock private lateinit var qstileView: QSTileViewImpl
    @Mock private lateinit var qstile: QSTile
    @Mock private lateinit var tileLayout: TileLayout
    @Mock private lateinit var pagedTileLayout: PagedTileLayout

    @JvmField @Rule val mockitoRule = MockitoJUnit.rule()

@@ -36,11 +32,10 @@ class QSSquishinessControllerTest : SysuiTestCase() {

    @Before
    fun setup() {
        qsSquishinessController = QSSquishinessController(qsTileHost, qqsFooterActionsView,
                qsAnimator, quickQsPanelController)
        `when`(qsTileHost.tiles).thenReturn(mutableListOf(qstile))
        `when`(quickQsPanelController.getTileView(any())).thenReturn(qstileView)
        qsSquishinessController = QSSquishinessController(qqsFooterActionsView, qsAnimator,
                qsPanelController, quickQsPanelController)
        `when`(quickQsPanelController.tileLayout).thenReturn(tileLayout)
        `when`(qsPanelController.tileLayout).thenReturn(pagedTileLayout)
        `when`(qqsFooterActionsView.layoutParams).thenReturn(qqsFooterActionsViewLP)
    }

@@ -56,7 +51,7 @@ class QSSquishinessControllerTest : SysuiTestCase() {
    @Test
    fun setSquishiness_updatesTiles() {
        qsSquishinessController.squishiness = 0.5f
        verify(qstileView).squishinessFraction = 0.5f
        verify(tileLayout).setSquishinessFraction(0.5f)
        verify(pagedTileLayout).setSquishinessFraction(0.5f)
    }
}
 No newline at end of file