diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 93926ef9e7807..771d0d19708ac 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -407,7 +407,7 @@ -1px - @*android:dimen/quick_qs_offset_height + 48dp @dimen/qs_header_row_min_height @dimen/qs_horizontal_margin diff --git a/packages/SystemUI/res/xml/large_screen_shade_header.xml b/packages/SystemUI/res/xml/large_screen_shade_header.xml index cdbf8ab0be412..06d425c575777 100644 --- a/packages/SystemUI/res/xml/large_screen_shade_header.xml +++ b/packages/SystemUI/res/xml/large_screen_shade_header.xml @@ -107,7 +107,7 @@ android:id="@+id/privacy_container"> { private final ConfigurationController mConfigurationController; private final FalsingManager mFalsingManager; private final NonInterceptingScrollView mQSPanelContainer; - private final ConfigurationController.ConfigurationListener mConfigurationListener = new ConfigurationController.ConfigurationListener() { @Override @@ -65,13 +66,15 @@ public class QSContainerImplController extends ViewController { QSPanelController qsPanelController, QuickStatusBarHeaderController quickStatusBarHeaderController, ConfigurationController configurationController, - FalsingManager falsingManager) { + FalsingManager falsingManager, + FeatureFlags featureFlags) { super(view); mQsPanelController = qsPanelController; mQuickStatusBarHeaderController = quickStatusBarHeaderController; mConfigurationController = configurationController; mFalsingManager = falsingManager; mQSPanelContainer = mView.getQSPanelContainer(); + view.setUseCombinedHeaders(featureFlags.isEnabled(Flags.COMBINED_QS_HEADERS)); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index 27d9da6c2e1ec..946fe542741fa 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -288,8 +288,15 @@ public class QuickStatusBarHeader extends FrameLayout { } MarginLayoutParams qqsLP = (MarginLayoutParams) mHeaderQsPanel.getLayoutParams(); - qqsLP.topMargin = largeScreenHeaderActive || !mUseCombinedQSHeader ? mContext.getResources() - .getDimensionPixelSize(R.dimen.qqs_layout_margin_top) : qsOffsetHeight; + if (largeScreenHeaderActive) { + qqsLP.topMargin = mContext.getResources() + .getDimensionPixelSize(R.dimen.qqs_layout_margin_top); + } else if (!mUseCombinedQSHeader) { + qqsLP.topMargin = qsOffsetHeight; + } else { + qqsLP.topMargin = mContext.getResources() + .getDimensionPixelSize(R.dimen.large_screen_shade_header_min_height); + } mHeaderQsPanel.setLayoutParams(qqsLP); updateBatteryMode(); diff --git a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt index 6b540aa9f392d..63d0d169e8742 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt @@ -246,6 +246,8 @@ class LargeScreenShadeHeaderController @Inject constructor( qsCarrierGroup.updateTextAppearance(R.style.TextAppearance_QS_Status_Carriers) if (header is MotionLayout) { loadConstraints() + header.minHeight = resources + .getDimensionPixelSize(R.dimen.large_screen_shade_header_min_height) lastInsets?.let { updateConstraintsForInsets(header, it) } } updateResources() diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index ddb57f74cacf8..6ee0175eff964 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -1289,8 +1289,15 @@ public final class NotificationPanelViewController { mLargeScreenShadeHeaderHeight = mResources.getDimensionPixelSize(R.dimen.large_screen_shade_header_height); - mQuickQsHeaderHeight = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight : - SystemBarUtils.getQuickQsOffsetHeight(mView.getContext()); + // TODO: When the flag is eventually removed, it means that we have a single view that is + // the same height in QQS and in Large Screen (large_screen_shade_header_height). Eventually + // the concept of largeScreenHeader or quickQsHeader will disappear outside of the class + // that controls the view as the offset needs to be the same regardless. + if (mUseLargeScreenShadeHeader || mFeatureFlags.isEnabled(Flags.COMBINED_QS_HEADERS)) { + mQuickQsHeaderHeight = mLargeScreenShadeHeaderHeight; + } else { + mQuickQsHeaderHeight = SystemBarUtils.getQuickQsOffsetHeight(mView.getContext()); + } int topMargin = mUseLargeScreenShadeHeader ? mLargeScreenShadeHeaderHeight : mResources.getDimensionPixelSize(R.dimen.notification_panel_margin_top); mLargeScreenShadeHeaderController.setLargeScreenActive(mUseLargeScreenShadeHeader);