diff --git a/packages/SystemUI/res/values-land/dimens.xml b/packages/SystemUI/res/values-land/dimens.xml
index 9d7b01c8d252f..49ef330dcc528 100644
--- a/packages/SystemUI/res/values-land/dimens.xml
+++ b/packages/SystemUI/res/values-land/dimens.xml
@@ -59,4 +59,5 @@
348dp
@dimen/qqs_layout_margin_top
+ @dimen/qs_panel_padding_top
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 5dcbeb5c85cf2..599bf30a5135c 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -68,6 +68,7 @@
0dp
8dp
+ @dimen/qs_panel_padding_top
472dp
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index f7019dcd06ee1..b8fabbec6c2b6 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -559,7 +559,8 @@
6dp
4dp
@dimen/footer_actions_height
- 80dp
+ 48dp
+ 80dp
14sp
36sp
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 184089f7eef47..6517ff33a49df 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -105,6 +105,7 @@ public class QSPanel extends LinearLayout implements Tunable {
private final Rect mClippingRect = new Rect();
private ViewGroup mMediaHostView;
private boolean mShouldMoveMediaOnExpansion = true;
+ private boolean mUsingCombinedHeaders = false;
public QSPanel(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -148,6 +149,10 @@ public class QSPanel extends LinearLayout implements Tunable {
}
}
+ void setUsingCombinedHeaders(boolean usingCombinedHeaders) {
+ mUsingCombinedHeaders = usingCombinedHeaders;
+ }
+
protected void setHorizontalContentContainerClipping() {
mHorizontalContentContainer.setClipChildren(true);
mHorizontalContentContainer.setClipToPadding(false);
@@ -371,7 +376,9 @@ public class QSPanel extends LinearLayout implements Tunable {
protected void updatePadding() {
final Resources res = mContext.getResources();
- int paddingTop = res.getDimensionPixelSize(R.dimen.qs_panel_padding_top);
+ int paddingTop = res.getDimensionPixelSize(
+ mUsingCombinedHeaders ? R.dimen.qs_panel_padding_top_combined_headers
+ : R.dimen.qs_panel_padding_top);
int paddingBottom = res.getDimensionPixelSize(R.dimen.qs_panel_padding_bottom);
setPaddingRelative(getPaddingStart(),
paddingTop,
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
index 18bd6b7b3c320..f6db775a77490 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
@@ -17,6 +17,7 @@
package com.android.systemui.qs;
import static com.android.systemui.classifier.Classifier.QS_SWIPE_SIDE;
+import static com.android.systemui.flags.Flags.COMBINED_QS_HEADERS;
import static com.android.systemui.media.dagger.MediaModule.QS_PANEL;
import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS;
import static com.android.systemui.qs.dagger.QSFragmentModule.QS_USING_MEDIA_PLAYER;
@@ -27,6 +28,7 @@ import android.view.View;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.dump.DumpManager;
+import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.media.MediaHostState;
@@ -79,7 +81,8 @@ public class QSPanelController extends QSPanelControllerBase {
QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
BrightnessSliderController.Factory brightnessSliderFactory,
FalsingManager falsingManager,
- StatusBarKeyguardViewManager statusBarKeyguardViewManager) {
+ StatusBarKeyguardViewManager statusBarKeyguardViewManager,
+ FeatureFlags featureFlags) {
super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
metricsLogger, uiEventLogger, qsLogger, dumpManager);
mTunerService = tunerService;
@@ -93,6 +96,7 @@ public class QSPanelController extends QSPanelControllerBase {
mBrightnessController = brightnessControllerFactory.create(mBrightnessSliderController);
mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
+ mView.setUsingCombinedHeaders(featureFlags.isEnabled(COMBINED_QS_HEADERS));
}
@Override
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt
index 5eb9a9862340a..e539705d9eded 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.kt
@@ -6,6 +6,7 @@ import com.android.internal.logging.MetricsLogger
import com.android.internal.logging.UiEventLogger
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.DumpManager
+import com.android.systemui.flags.FeatureFlags
import com.android.systemui.media.MediaHost
import com.android.systemui.media.MediaHostState
import com.android.systemui.plugins.FalsingManager
@@ -52,6 +53,7 @@ class QSPanelControllerTest : SysuiTestCase() {
@Mock private lateinit var tile: QSTile
@Mock private lateinit var otherTile: QSTile
@Mock private lateinit var statusBarKeyguardViewManager: StatusBarKeyguardViewManager
+ @Mock private lateinit var featureFlags: FeatureFlags
private lateinit var controller: QSPanelController
@@ -82,7 +84,8 @@ class QSPanelControllerTest : SysuiTestCase() {
brightnessControllerFactory,
brightnessSliderFactory,
falsingManager,
- statusBarKeyguardViewManager
+ statusBarKeyguardViewManager,
+ featureFlags
)
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt
index 2db58be156656..7c930b196d683 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelTest.kt
@@ -158,6 +158,32 @@ class QSPanelTest : SysuiTestCase() {
assertThat(qsPanel.paddingBottom).isEqualTo(padding)
}
+ @Test
+ fun testTopPadding_notCombinedHeaders() {
+ qsPanel.setUsingCombinedHeaders(false)
+ val padding = 10
+ val paddingCombined = 100
+ context.orCreateTestableResources.addOverride(R.dimen.qs_panel_padding_top, padding)
+ context.orCreateTestableResources.addOverride(
+ R.dimen.qs_panel_padding_top_combined_headers, paddingCombined)
+
+ qsPanel.updatePadding()
+ assertThat(qsPanel.paddingTop).isEqualTo(padding)
+ }
+
+ @Test
+ fun testTopPadding_combinedHeaders() {
+ qsPanel.setUsingCombinedHeaders(true)
+ val padding = 10
+ val paddingCombined = 100
+ context.orCreateTestableResources.addOverride(R.dimen.qs_panel_padding_top, padding)
+ context.orCreateTestableResources.addOverride(
+ R.dimen.qs_panel_padding_top_combined_headers, paddingCombined)
+
+ qsPanel.updatePadding()
+ assertThat(qsPanel.paddingTop).isEqualTo(paddingCombined)
+ }
+
@Test
fun testSetSquishinessFraction_noCrash() {
qsPanel.addView(qsPanel.mTileLayout as View, 0)