Loading packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +4 −1 Original line number Diff line number Diff line Loading @@ -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() { Loading packages/SystemUI/src/com/android/systemui/qs/QSSquishinessController.kt +2 −11 Original line number Diff line number Diff line Loading @@ -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 ) { Loading @@ -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) Loading packages/SystemUI/src/com/android/systemui/qs/TileLayout.java +7 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } } } packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +3 −1 Original line number Diff line number Diff line Loading @@ -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); Loading packages/SystemUI/tests/src/com/android/systemui/qs/QSSquishinessControllerTest.kt +6 −11 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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() Loading @@ -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) } Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +4 −1 Original line number Diff line number Diff line Loading @@ -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() { Loading
packages/SystemUI/src/com/android/systemui/qs/QSSquishinessController.kt +2 −11 Original line number Diff line number Diff line Loading @@ -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 ) { Loading @@ -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) Loading
packages/SystemUI/src/com/android/systemui/qs/TileLayout.java +7 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +3 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
packages/SystemUI/tests/src/com/android/systemui/qs/QSSquishinessControllerTest.kt +6 −11 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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() Loading @@ -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) } Loading @@ -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