From a4c50a3dbcb4140d93c813be6d128f2d6bf54809 Mon Sep 17 00:00:00 2001 From: Adithya R Date: Mon, 30 May 2022 00:13:02 +0530 Subject: [PATCH 27/34] SystemUI: Calculate paged QS tiles height properly When QS is re-inflated during UI mode change and we're on the 3rd or higher QS page, the first QS page is misaligned and hence height returns 0, resulting in footer and media panel position overlapping the QS panel. Return the maximum height among all present QS pages to fix this issue. Change-Id: I539babdb75c114cc44b4213ff114d4272be22ef6 --- .../com/android/systemui/qs/PagedTileLayout.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java index 052c0daf0b56..cf2834914f66 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java @@ -135,12 +135,16 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { @Override public int getTilesHeight() { - // Use the first page as that is the maximum height we need to show. - TileLayout tileLayout = mPages.get(0); - if (tileLayout == null) { - return 0; + // Find the maximum height among all pages. + int height = 0; + for (int i = 0; i < mPages.size(); i++) { + TileLayout tileLayout = mPages.get(i); + if (tileLayout != null) { + height = Math.max(height, tileLayout.getTilesHeight()); + } } - return tileLayout.getTilesHeight(); + mLogger.d("getTilesHeight ret=", height); + return height; } @Override -- 2.34.1