From b3ea300144d8d4924754f0516cc2adcb26c7f710 Mon Sep 17 00:00:00 2001 From: Adithya R Date: Mon, 30 May 2022 00:13:02 +0530 Subject: [PATCH 24/31] 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 9a5f43b0d6f3..3ec1221f5d01 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java @@ -123,12 +123,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