diff options
author | 2020-06-02 18:43:50 +0000 | |
---|---|---|
committer | 2020-06-02 18:43:50 +0000 | |
commit | 2c1bfedd7bbbf3f53f44a70ddea9d36bda0a515a (patch) | |
tree | 887b15fb49a8908c65058db1ce3a3acfc19a1a45 | |
parent | 1fe28b24c03bb132cc3166635bb3d524bb35197f (diff) | |
parent | 35484aed51cd7947938d5879e16c2595d2f7ee5f (diff) |
Merge "Updated the paddings of quick settings to match notifications" into rvc-dev
12 files changed, 179 insertions, 99 deletions
diff --git a/packages/SystemUI/res/layout/quick_qs_status_icons.xml b/packages/SystemUI/res/layout/quick_qs_status_icons.xml index 5b7e7e7d59a3..44f52efd175e 100644 --- a/packages/SystemUI/res/layout/quick_qs_status_icons.xml +++ b/packages/SystemUI/res/layout/quick_qs_status_icons.xml @@ -21,8 +21,6 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/qs_header_top_padding" android:paddingBottom="@dimen/qs_header_bottom_padding" - android:paddingStart="@dimen/status_bar_padding_start" - android:paddingEnd="@dimen/status_bar_padding_end" android:layout_below="@id/quick_status_bar_system_icons" android:clipChildren="false" android:clipToPadding="false" diff --git a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml index 28672241b1b2..12127f529054 100644 --- a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml +++ b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml @@ -18,8 +18,6 @@ android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_gravity="center_vertical" - android:paddingLeft="16dp" - android:paddingRight="16dp" style="@style/BrightnessDialogContainer"> <com.android.systemui.settings.ToggleSliderView diff --git a/packages/SystemUI/res/layout/quick_settings_header_info.xml b/packages/SystemUI/res/layout/quick_settings_header_info.xml index 683e86728e91..e6ef9b4b902c 100644 --- a/packages/SystemUI/res/layout/quick_settings_header_info.xml +++ b/packages/SystemUI/res/layout/quick_settings_header_info.xml @@ -19,8 +19,6 @@ android:layout_width="match_parent" android:layout_height="@dimen/qs_header_tooltip_height" android:layout_below="@id/quick_status_bar_system_icons" - android:paddingStart="@dimen/status_bar_padding_start" - android:paddingEnd="@dimen/status_bar_padding_end" android:visibility="invisible" android:theme="@style/QSHeaderTheme"> diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml index 9a7c344baf20..abeb33111c40 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml @@ -33,6 +33,7 @@ android:paddingStart="0dp" android:elevation="4dp" > + <!-- The clock --> <include layout="@layout/quick_status_bar_header_system_icons" /> <!-- Status icons within the panel itself (and not in the top-most status bar) --> diff --git a/packages/SystemUI/res/layout/quick_status_bar_header_system_icons.xml b/packages/SystemUI/res/layout/quick_status_bar_header_system_icons.xml index b27d096c12b5..be86e5f5abc5 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_header_system_icons.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_header_system_icons.xml @@ -25,8 +25,6 @@ android:gravity="center" android:orientation="horizontal" android:clickable="true" - android:paddingStart="@dimen/status_bar_padding_start" - android:paddingEnd="@dimen/status_bar_padding_end" android:paddingTop="@dimen/status_bar_padding_top" > <com.android.systemui.statusbar.policy.Clock diff --git a/packages/SystemUI/res/values-sw372dp/dimens.xml b/packages/SystemUI/res/values-sw372dp/dimens.xml index e64662ec7bea..d3fff0c059f9 100644 --- a/packages/SystemUI/res/values-sw372dp/dimens.xml +++ b/packages/SystemUI/res/values-sw372dp/dimens.xml @@ -17,5 +17,4 @@ --> <resources> <dimen name="nav_content_padding">8dp</dimen> - <dimen name="qs_header_tile_margin_horizontal">13dp</dimen> </resources> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index a7d176443c55..e26f31cdf5ad 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -482,7 +482,8 @@ <dimen name="pull_span_min">25dp</dimen> <dimen name="qs_tile_height">106dp</dimen> - <dimen name="qs_tile_layout_margin_side">6dp</dimen> + <!--notification_side_paddings + notification_content_margin_start - (qs_quick_tile_size - qs_tile_background_size) / 2 --> + <dimen name="qs_tile_layout_margin_side">18dp</dimen> <dimen name="qs_tile_margin_horizontal">18dp</dimen> <dimen name="qs_tile_margin_horizontal_two_line">2dp</dimen> <dimen name="qs_tile_margin_vertical">24dp</dimen> @@ -498,7 +499,6 @@ <dimen name="qs_quick_tile_size">48dp</dimen> <dimen name="qs_quick_tile_padding">12dp</dimen> <dimen name="qs_header_gear_translation">16dp</dimen> - <dimen name="qs_header_tile_margin_horizontal">4dp</dimen> <dimen name="qs_header_tile_margin_bottom">18dp</dimen> <dimen name="qs_page_indicator_width">16dp</dimen> <dimen name="qs_page_indicator_height">8dp</dimen> @@ -1057,9 +1057,8 @@ <dimen name="edge_margin">8dp</dimen> <!-- The absolute side margins of quick settings --> - <dimen name="quick_settings_side_margins">16dp</dimen> <dimen name="quick_settings_expanded_bottom_margin">16dp</dimen> - <dimen name="quick_settings_media_extra_bottom_margin">4dp</dimen> + <dimen name="quick_settings_media_extra_bottom_margin">6dp</dimen> <dimen name="rounded_corner_content_padding">0dp</dimen> <dimen name="nav_content_padding">0dp</dimen> <dimen name="nav_quick_scrub_track_edge_padding">24dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java index 6b0775f6c2d7..1c3b6850afc1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java @@ -50,6 +50,8 @@ public class QSContainerImpl extends FrameLayout { private int mSideMargins; private boolean mQsDisabled; + private int mContentPaddingStart = -1; + private int mContentPaddingEnd = -1; public QSContainerImpl(Context context, AttributeSet attrs) { super(context, attrs); @@ -66,10 +68,9 @@ public class QSContainerImpl extends FrameLayout { mBackground = findViewById(R.id.quick_settings_background); mStatusBarBackground = findViewById(R.id.quick_settings_status_bar_background); mBackgroundGradient = findViewById(R.id.quick_settings_gradient_view); - mSideMargins = getResources().getDimensionPixelSize(R.dimen.notification_side_paddings); + updateResources(); setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); - setMargins(); } @Override @@ -103,10 +104,15 @@ public class QSContainerImpl extends FrameLayout { if (navBelow) { maxQs -= getResources().getDimensionPixelSize(R.dimen.navigation_bar_height); } + + int padding = mPaddingLeft + mPaddingRight + layoutParams.leftMargin + + layoutParams.rightMargin; + final int qsPanelWidthSpec = getChildMeasureSpec(widthMeasureSpec, padding, + layoutParams.width); // Measure with EXACTLY. That way, PagedTileLayout will only use excess height and will be // measured last, after other views and padding is accounted for. - mQSPanel.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(maxQs, MeasureSpec.EXACTLY)); - int width = mQSPanel.getMeasuredWidth(); + mQSPanel.measure(qsPanelWidthSpec, MeasureSpec.makeMeasureSpec(maxQs, MeasureSpec.EXACTLY)); + int width = mQSPanel.getMeasuredWidth() + padding; int height = layoutParams.topMargin + layoutParams.bottomMargin + mQSPanel.getMeasuredHeight() + getPaddingBottom(); super.onMeasure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), @@ -148,8 +154,18 @@ public class QSContainerImpl extends FrameLayout { LayoutParams layoutParams = (LayoutParams) mQSPanel.getLayoutParams(); layoutParams.topMargin = mContext.getResources().getDimensionPixelSize( com.android.internal.R.dimen.quick_qs_offset_height); - mQSPanel.setLayoutParams(layoutParams); + + mSideMargins = getResources().getDimensionPixelSize(R.dimen.notification_side_paddings); + mContentPaddingStart = getResources().getDimensionPixelSize( + com.android.internal.R.dimen.notification_content_margin_start); + int newPaddingEnd = getResources().getDimensionPixelSize( + com.android.internal.R.dimen.notification_content_margin_end); + boolean marginsChanged = newPaddingEnd != mContentPaddingEnd; + mContentPaddingEnd = newPaddingEnd; + if (marginsChanged) { + updatePaddingsAndMargins(); + } } /** @@ -196,17 +212,32 @@ public class QSContainerImpl extends FrameLayout { updateExpansion(); } - private void setMargins() { - setMargins(mQSDetail); - setMargins(mBackground); - mQSPanel.setMargins(mSideMargins); - mHeader.setMargins(mSideMargins); - } - - private void setMargins(View view) { - FrameLayout.LayoutParams lp = (LayoutParams) view.getLayoutParams(); - lp.rightMargin = mSideMargins; - lp.leftMargin = mSideMargins; + private void updatePaddingsAndMargins() { + for (int i = 0; i < getChildCount(); i++) { + View view = getChildAt(i); + if (view == mStatusBarBackground || view == mBackgroundGradient + || view == mQSCustomizer) { + // Some views are always full width + continue; + } + LayoutParams lp = (LayoutParams) view.getLayoutParams(); + lp.rightMargin = mSideMargins; + lp.leftMargin = mSideMargins; + if (view == mQSPanel) { + // QS panel lays out some of its content full width + mQSPanel.setContentMargins(mContentPaddingStart, mContentPaddingEnd); + } else if (view == mHeader) { + // The header contains the QQS panel which needs to have special padding, to + // visually align them. + mHeader.setContentMargins(mContentPaddingStart, mContentPaddingEnd); + } else { + view.setPaddingRelative( + mContentPaddingStart, + view.getPaddingTop(), + mContentPaddingEnd, + view.getPaddingBottom()); + } + } } private int getDisplayHeight() { diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index 48ba1b99d714..78448785fe2f 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -88,6 +88,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne private final H mHandler = new H(); private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class); private final QSTileRevealController mQsTileRevealController; + /** Whether or not the QS media player feature is enabled. */ + protected boolean mUsingMediaPlayer; protected boolean mExpanded; protected boolean mListening; @@ -102,6 +104,9 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne protected QSSecurityFooter mFooter; private PageIndicator mFooterPageIndicator; private boolean mGridContentVisible = true; + private int mContentMarginStart; + private int mContentMarginEnd; + private int mVisualTilePadding; protected QSTileLayout mTileLayout; @@ -122,6 +127,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne UiEventLogger uiEventLogger ) { super(context, attrs); + mUsingMediaPlayer = useQsMediaPlayer(context); mMediaHost = mediaHost; mContext = context; mQSLogger = qsLogger; @@ -170,8 +176,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mMediaHost.init(MediaHierarchyManager.LOCATION_QS); ViewGroup hostView = mMediaHost.getHostView(); addView(hostView); - int sidePaddings = getResources().getDimensionPixelSize( - R.dimen.quick_settings_side_margins); int bottomPadding = getResources().getDimensionPixelSize( R.dimen.quick_settings_expanded_bottom_margin); MarginLayoutParams layoutParams = (MarginLayoutParams) hostView.getLayoutParams(); @@ -179,8 +183,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; layoutParams.bottomMargin = bottomPadding; hostView.setLayoutParams(layoutParams); - hostView.setPadding(sidePaddings, hostView.getPaddingTop(), sidePaddings, - hostView.getPaddingBottom()); + updateMediaHostContentMargins(); } protected void addDivider() { @@ -359,8 +362,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne } public void updateResources() { - final Resources res = mContext.getResources(); - setPadding(0, res.getDimensionPixelSize(R.dimen.qs_panel_padding_top), 0, res.getDimensionPixelSize(R.dimen.qs_panel_padding_bottom)); + int tileSize = getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size); + int tileBg = getResources().getDimensionPixelSize(R.dimen.qs_tile_background_size); + mVisualTilePadding = (int) ((tileSize - tileBg) / 2.0f); + updatePadding(); updatePageIndicator(); @@ -372,6 +377,14 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne } } + protected void updatePadding() { + final Resources res = mContext.getResources(); + setPaddingRelative(getPaddingStart(), + res.getDimensionPixelSize(R.dimen.qs_panel_padding_top), + getPaddingEnd(), + res.getDimensionPixelSize(R.dimen.qs_panel_padding_bottom)); + } + @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); @@ -723,17 +736,51 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mFooter.showDeviceMonitoringDialog(); } - public void setMargins(int sideMargins) { - for (int i = 0; i < getChildCount(); i++) { - View view = getChildAt(i); - if (view != mTileLayout) { - LayoutParams lp = (LayoutParams) view.getLayoutParams(); - lp.leftMargin = sideMargins; - lp.rightMargin = sideMargins; - } + public void setContentMargins(int startMargin, int endMargin) { + // Only some views actually want this content padding, others want to go all the way + // to the edge like the brightness slider + mContentMarginStart = startMargin; + mContentMarginEnd = endMargin; + updateTileLayoutMargins(mContentMarginStart - mVisualTilePadding, + mContentMarginEnd - mVisualTilePadding); + updateMediaHostContentMargins(); + } + + /** + * Update the margins of all tile Layouts. + * + * @param visualMarginStart the visual start margin of the tile, adjusted for local insets + * to the tile. This can be set on a tileLayout + * @param visualMarginEnd the visual end margin of the tile, adjusted for local insets + * to the tile. This can be set on a tileLayout + */ + protected void updateTileLayoutMargins(int visualMarginStart, int visualMarginEnd) { + updateMargins((View) mTileLayout, visualMarginStart, visualMarginEnd); + } + + /** + * Update the margins of the media hosts + */ + protected void updateMediaHostContentMargins() { + if (mUsingMediaPlayer && mMediaHost != null) { + updateMargins(mMediaHost.getHostView(), mContentMarginStart, mContentMarginEnd); } } + /** + * Update the margins of a view. + * + * @param view the view to adjust + * @param start the start margin to set + * @param end the end margin to set + */ + protected void updateMargins(View view, int start, int end) { + LayoutParams lp = (LayoutParams) view.getLayoutParams(); + lp.setMarginStart(start); + lp.setMarginEnd(end); + view.setLayoutParams(lp); + } + public MediaHost getMediaHost() { return mMediaHost; } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java index 75507beba7ae..191d4757258d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java @@ -62,8 +62,6 @@ public class QuickQSPanel extends QSPanel { private boolean mDisabledByPolicy; private int mMaxTiles; protected QSPanel mFullPanel; - /** Whether or not the QS media player feature is enabled. */ - private boolean mUsingMediaPlayer; /** Whether or not the QuickQSPanel currently contains a media player. */ private boolean mShowHorizontalTileLayout; private LinearLayout mHorizontalLinearLayout; @@ -97,8 +95,6 @@ public class QuickQSPanel extends QSPanel { } mMediaBottomMargin = getResources().getDimensionPixelSize( R.dimen.quick_settings_media_extra_bottom_margin); - - mUsingMediaPlayer = Utils.useQsMediaPlayer(context); if (mUsingMediaPlayer) { mHorizontalLinearLayout = new LinearLayout(mContext); mHorizontalLinearLayout.setOrientation(LinearLayout.HORIZONTAL); @@ -132,7 +128,6 @@ public class QuickQSPanel extends QSPanel { mHorizontalLinearLayout.setVisibility(useHorizontal ? View.VISIBLE : View.GONE); addView((View) mRegularTileLayout, 0); super.setPadding(0, 0, 0, 0); - applySideMargins(mHorizontalLinearLayout); applyBottomMargin((View) mRegularTileLayout); } else { sDefaultMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_columns); @@ -151,14 +146,6 @@ public class QuickQSPanel extends QSPanel { view.setLayoutParams(layoutParams); } - private void applySideMargins(View view) { - int margin = getResources().getDimensionPixelSize(R.dimen.qs_header_tile_margin_horizontal); - MarginLayoutParams layoutParams = (MarginLayoutParams) view.getLayoutParams(); - layoutParams.setMarginStart(margin); - layoutParams.setMarginEnd(margin); - view.setLayoutParams(layoutParams); - } - private void reAttachMediaHost() { if (mMediaHost == null) { return; @@ -177,10 +164,6 @@ public class QuickQSPanel extends QSPanel { layoutParams.width = horizontal ? 0 : ViewGroup.LayoutParams.MATCH_PARENT; layoutParams.weight = horizontal ? 1.5f : 0; layoutParams.bottomMargin = mMediaBottomMargin; - int marginStart = horizontal - ? getResources().getDimensionPixelSize(R.dimen.qs_header_tile_margin_horizontal) - : 0; - layoutParams.setMarginStart(marginStart); } } @@ -194,11 +177,22 @@ public class QuickQSPanel extends QSPanel { mMediaHost.setShowsOnlyActiveMedia(true); mMediaHost.init(MediaHierarchyManager.LOCATION_QQS); reAttachMediaHost(); + updateMediaHostContentMargins(); + } + + @Override + protected void updateTileLayoutMargins(int visualMarginStart, int visualMarginEnd) { + if (mUsingMediaPlayer) { + updateMargins((View) mRegularTileLayout, visualMarginStart, visualMarginEnd); + updateMargins((View) mHorizontalTileLayout, visualMarginStart, 0); + } else { + updateMargins((View) mTileLayout, visualMarginStart, visualMarginEnd); + } } @Override - public void setPadding(int left, int top, int right, int bottom) { - // Always have no padding. + protected void updatePadding() { + // QS Panel is setting a top padding by default, which we don't need. } @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index 29b3436c0b72..20e47b2f2fa9 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -42,6 +42,7 @@ import android.view.DisplayCutout; import android.view.View; import android.view.WindowInsets; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; @@ -143,6 +144,11 @@ public class QuickStatusBarHeader extends RelativeLayout implements private boolean mHasTopCutout = false; private int mRoundedCornerPadding = 0; + private int mContentMarginStart; + private int mContentMarginEnd; + private int mWaterfallTopInset; + private int mCutOutPaddingLeft; + private int mCutOutPaddingRight; @Inject public QuickStatusBarHeader(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, @@ -422,33 +428,42 @@ public class QuickStatusBarHeader extends RelativeLayout implements @Override public WindowInsets onApplyWindowInsets(WindowInsets insets) { - // Handle padding of QuickStatusBarHeader - setPadding(mRoundedCornerPadding, getPaddingTop(), mRoundedCornerPadding, - getPaddingBottom()); - - // Handle padding of SystemIconsView + // Handle padding of the clock DisplayCutout cutout = insets.getDisplayCutout(); Pair<Integer, Integer> cornerCutoutPadding = StatusBarWindowView.cornerCutoutMargins( cutout, getDisplay()); Pair<Integer, Integer> padding = StatusBarWindowView.paddingNeededForCutoutAndRoundedCorner( - cutout, cornerCutoutPadding, mRoundedCornerPadding); - final int waterfallTopInset = cutout == null ? 0 : cutout.getWaterfallInsets().top; - int statusBarPaddingLeft = isLayoutRtl() - ? getResources().getDimensionPixelSize(R.dimen.status_bar_padding_end) - : getResources().getDimensionPixelSize(R.dimen.status_bar_padding_start); - int statusBarPaddingRight = isLayoutRtl() - ? getResources().getDimensionPixelSize(R.dimen.status_bar_padding_start) - : getResources().getDimensionPixelSize(R.dimen.status_bar_padding_end); - mSystemIconsView.setPadding( - Math.max(padding.first + statusBarPaddingLeft - mRoundedCornerPadding, 0), - waterfallTopInset, - Math.max(padding.second + statusBarPaddingRight - mRoundedCornerPadding, 0), - 0); - + cutout, cornerCutoutPadding, -1); + mCutOutPaddingLeft = padding.first; + mCutOutPaddingRight = padding.second; + mWaterfallTopInset = cutout == null ? 0 : cutout.getWaterfallInsets().top; + updateClockPadding(); return super.onApplyWindowInsets(insets); } + private void updateClockPadding() { + int clockPaddingLeft = 0; + int clockPaddingRight = 0; + // The clock might collide with cutouts, let's shift it out of the way. + // We only do that if the inset is bigger than our own padding, since it's nicer to + // align with + if (mCutOutPaddingLeft > 0) { + // if there's a cutout, let's use at least the rounded corner inset + int cutoutPadding = Math.max(mCutOutPaddingLeft, mRoundedCornerPadding); + int contentMarginLeft = isLayoutRtl() ? mContentMarginEnd : mContentMarginStart; + clockPaddingLeft = Math.max(cutoutPadding - contentMarginLeft, 0); + } + if (mCutOutPaddingRight > 0) { + // if there's a cutout, let's use at least the rounded corner inset + int cutoutPadding = Math.max(mCutOutPaddingRight, mRoundedCornerPadding); + int contentMarginRight = isLayoutRtl() ? mContentMarginStart : mContentMarginEnd; + clockPaddingRight = Math.max(cutoutPadding - contentMarginRight, 0); + } + + mSystemIconsView.setPadding(clockPaddingLeft, mWaterfallTopInset, clockPaddingRight, 0); + } + @Override @VisibleForTesting public void onDetachedFromWindow() { @@ -558,24 +573,27 @@ public class QuickStatusBarHeader extends RelativeLayout implements return color == Color.WHITE ? 0 : 1; } - public void setMargins(int sideMargins) { - for (int i = 0; i < getChildCount(); i++) { - View v = getChildAt(i); - // Prevents these views from getting set a margin. - // The Icon views all have the same padding set in XML to be aligned. - if (v == mSystemIconsView || v == mQuickQsStatusIcons || v == mHeaderQsPanel - || v == mHeaderTextContainerView) { - continue; - } - RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) v.getLayoutParams(); - lp.leftMargin = sideMargins; - lp.rightMargin = sideMargins; - } - } - @NonNull @Override public Lifecycle getLifecycle() { return mLifecycle; } + + public void setContentMargins(int marginStart, int marginEnd) { + mContentMarginStart = marginStart; + mContentMarginEnd = marginEnd; + for (int i = 0; i < getChildCount(); i++) { + View view = getChildAt(i); + if (view == mHeaderQsPanel) { + // QS panel doesn't lays out some of its content full width + mHeaderQsPanel.setContentMargins(marginStart, marginEnd); + } else { + MarginLayoutParams lp = (MarginLayoutParams) view.getLayoutParams(); + lp.setMarginStart(marginStart); + lp.setMarginEnd(marginEnd); + view.setLayoutParams(lp); + } + } + updateClockPadding(); + } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java index 098431658e6a..383c29d90a22 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java @@ -96,7 +96,6 @@ public class TileLayout extends ViewGroup implements QSTileLayout { mCellMarginHorizontal = res.getDimensionPixelSize(R.dimen.qs_tile_margin_horizontal); mCellMarginVertical= res.getDimensionPixelSize(R.dimen.qs_tile_margin_vertical); mCellMarginTop = res.getDimensionPixelSize(R.dimen.qs_tile_margin_top); - mSidePadding = res.getDimensionPixelOffset(R.dimen.qs_tile_layout_margin_side); mMaxAllowedRows = Math.max(1, getResources().getInteger(R.integer.quick_settings_max_rows)); if (mLessRows) mMaxAllowedRows = Math.max(1, mMaxAllowedRows - 1); if (mColumns != columns) { @@ -120,7 +119,7 @@ public class TileLayout extends ViewGroup implements QSTileLayout { mRows = (numTiles + mColumns - 1) / mColumns; } mCellWidth = - (availableWidth - mSidePadding * 2 - (mCellMarginHorizontal * mColumns)) / mColumns; + (availableWidth - (mCellMarginHorizontal * mColumns)) / mColumns; // Measure each QS tile. View previousView = this; @@ -204,7 +203,7 @@ public class TileLayout extends ViewGroup implements QSTileLayout { } protected int getColumnStart(int column) { - return getPaddingStart() + mSidePadding + mCellMarginHorizontal / 2 + + return getPaddingStart() + mCellMarginHorizontal / 2 + column * (mCellWidth + mCellMarginHorizontal); } |