From 0b85649636563bd58cd5de64ed2019208d8a6c57 Mon Sep 17 00:00:00 2001 From: Fabian Kozynski Date: Mon, 9 May 2022 13:14:59 -0400 Subject: [PATCH] Fix last tile bottom calculation Use the unoverriden height for tiles (only relevant for tiles in QS while expanding for QQS). This way, we get the bottom after animations will be finished. Test: manual, with media and in split shade Fixes: 231399422 Change-Id: Ib67dcb09e3b97ea3dbb27a92d2a14bc00fc64b6e --- .../src/com/android/systemui/qs/TileLayout.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java index 311ee56477de0..3d00dd49cb1c2 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java @@ -47,7 +47,7 @@ public class TileLayout extends ViewGroup implements QSTileLayout { private int mMaxColumns = NO_MAX_COLUMNS; protected int mResourceColumns; private float mSquishinessFraction = 1f; - private int mLastTileBottom; + protected int mLastTileBottom; public TileLayout(Context context) { this(context, null); @@ -243,12 +243,11 @@ public class TileLayout extends ViewGroup implements QSTileLayout { record.tileView.setLeftTopRightBottom(left, top, right, bottom); } record.tileView.setPosition(i); - if (forLayout) { - mLastTileBottom = record.tileView.getBottom(); - } else { - float scale = QSTileViewImplKt.constrainSquishiness(mSquishinessFraction); - mLastTileBottom = top + (int) (record.tileView.getMeasuredHeight() * scale); - } + + // Set the bottom to the unoverriden squished bottom. This is to avoid fake bottoms that + // are only used for QQS -> QS expansion animations + float scale = QSTileViewImplKt.constrainSquishiness(mSquishinessFraction); + mLastTileBottom = top + (int) (record.tileView.getMeasuredHeight() * scale); } } @@ -258,7 +257,8 @@ public class TileLayout extends ViewGroup implements QSTileLayout { } protected int getRowTop(int row) { - return (int) (row * (mCellHeight * mSquishinessFraction + mCellMarginVertical)); + float scale = QSTileViewImplKt.constrainSquishiness(mSquishinessFraction); + return (int) (row * (mCellHeight * scale + mCellMarginVertical)); } protected int getColumnStart(int column) {