From b2d5f5405c58996045f5cedafb6517f7a097b25c Mon Sep 17 00:00:00 2001 From: Fabian Kozynski Date: Thu, 1 Apr 2021 14:38:02 -0400 Subject: [PATCH] Restrict QS container to avoid nav bar insets Test: manual with gesture and 2 button nav Fixes: 18426948 Change-Id: I0ee4add38d97212f3957aa9003cf10f4e3936251 --- .../src/com/android/systemui/qs/QSContainerImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java index 5256bc45b7b5d..586176f1c385e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java @@ -24,6 +24,7 @@ import android.graphics.Point; import android.util.AttributeSet; import android.util.Pair; import android.view.View; +import android.view.WindowInsets; import android.widget.FrameLayout; import androidx.dynamicanimation.animation.FloatPropertyCompat; @@ -70,6 +71,7 @@ public class QSContainerImpl extends FrameLayout { private boolean mBackgroundVisible; private int mContentPadding = -1; private boolean mAnimateBottomOnNextLayout; + private int mNavBarInset = 0; public QSContainerImpl(Context context, AttributeSet attrs) { super(context, attrs); @@ -136,6 +138,12 @@ public class QSContainerImpl extends FrameLayout { updateBackgroundVisibility(); } + @Override + public WindowInsets onApplyWindowInsets(WindowInsets insets) { + mNavBarInset = insets.getInsets(WindowInsets.Type.navigationBars()).bottom; + return super.onApplyWindowInsets(insets); + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // QSPanel will show as many rows as it can (up to TileLayout.MAX_ROWS) such that the @@ -146,7 +154,7 @@ public class QSContainerImpl extends FrameLayout { // subtract its height. We do not care if the collapsed notifications fit in the screen. int maxQs = getDisplayHeight() - layoutParams.topMargin - layoutParams.bottomMargin - getPaddingBottom(); - + maxQs -= mNavBarInset; int padding = mPaddingLeft + mPaddingRight + layoutParams.leftMargin + layoutParams.rightMargin; final int qsPanelWidthSpec = getChildMeasureSpec(widthMeasureSpec, padding,