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

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

Merge "Only call layout during layout pass" into sc-v2-dev

parents 9de009c3 27b2190c
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 */);
    }
}