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

Commit 2fb98f19 authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Only call layout during layout pass" into sc-v2-dev am: 9a6f2ac1 am: 38909733

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16171035

Change-Id: I22576159960413e15bb2d719e8fd8c5ed4ed1d1c
parents f70e2f48 38909733
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -34,7 +34,11 @@ class QSSquishinessController @Inject constructor(
     * Change the height of all tiles and repositions their siblings.
     */
    private fun updateSquishiness() {
        // Start by updating the height of all tiles
        // Update tile positions in the layout
        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 {
@@ -42,10 +46,6 @@ class QSSquishinessController @Inject constructor(
            }
        }

        // Update tile positions in the layout
        val tileLayout = quickQSPanelController.tileLayout as TileLayout
        tileLayout.setSquishinessFraction(squishiness)

        // Calculate how much we should move the footer
        val tileHeightOffset = tileLayout.height - tileLayout.tilesHeight
        val footerTopMargin = (qqsFooterActionsView.layoutParams as ViewGroup.MarginLayoutParams)
+8 −4
Original line number Diff line number Diff line
@@ -212,7 +212,7 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
        return mMaxCellHeight;
    }

    private void layoutTileRecords(int numRecords) {
    private void layoutTileRecords(int numRecords, boolean forLayout) {
        final boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
        int row = 0;
        int column = 0;
@@ -232,14 +232,18 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
            final int left = getColumnStart(isRtl ? mColumns - column - 1 : column);
            final int right = left + mCellWidth;
            final int bottom = top + record.tileView.getMeasuredHeight();
            if (forLayout) {
                record.tileView.layout(left, top, right, bottom);
            } else {
                record.tileView.setLeftTopRightBottom(left, top, right, bottom);
            }
            mLastTileBottom = bottom;
        }
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        layoutTileRecords(mRecords.size());
        layoutTileRecords(mRecords.size(), true /* forLayout */);
    }

    protected int getRowTop(int row) {
@@ -280,6 +284,6 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
            return;
        }
        mSquishinessFraction = squishinessFraction;
        layoutTileRecords(mRecords.size());
        layoutTileRecords(mRecords.size(), false /* forLayout */);
    }
}