diff options
author | 2018-07-12 14:51:12 +0000 | |
---|---|---|
committer | 2018-07-12 14:51:12 +0000 | |
commit | db4a640ca155132fd62b7b271a93ece565d4a4d5 (patch) | |
tree | 1e092769b0297593c76014e75df70755df594657 | |
parent | f8585dcb500fe7c218e58d53a86c9e646e6e8e6e (diff) | |
parent | 84b98954d07d8c1ab19007ac69254ead2995f8c0 (diff) |
Merge "Use minimumHeight in QS header"
-rw-r--r-- | packages/SystemUI/res/values/dimens.xml | 3 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java | 30 |
2 files changed, 29 insertions, 4 deletions
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index f62249a74cdb..a9d995c889c7 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -252,6 +252,9 @@ --> <dimen name="qs_header_system_icons_area_height">48dp</dimen> + <!-- How far the quick-quick settings panel extends below the status bar --> + <dimen name="qs_quick_header_panel_height">128dp</dimen> + <!-- The height of the container that holds the system icons in the quick settings header in the car setting. --> <dimen name="car_qs_header_system_icons_area_height">54dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index a21886891e3d..35d2f90748c3 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -33,6 +33,7 @@ import android.media.AudioManager; import android.os.Handler; import android.provider.AlarmClock; import android.service.notification.ZenModeConfig; +import android.widget.FrameLayout; import androidx.annotation.VisibleForTesting; import android.text.format.DateUtils; import android.util.AttributeSet; @@ -270,8 +271,22 @@ public class QuickStatusBarHeader extends RelativeLayout implements updateResources(); } + /** + * The height of QQS should always be the status bar height + 128dp. This is normally easy, but + * when there is a notch involved the status bar can remain a fixed pixel size. + */ + private void updateMinimumHeight() { + int sbHeight = mContext.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.status_bar_height); + int qqsHeight = mContext.getResources().getDimensionPixelSize( + R.dimen.qs_quick_header_panel_height); + + setMinimumHeight(sbHeight + qqsHeight); + } + private void updateResources() { Resources resources = mContext.getResources(); + updateMinimumHeight(); // Update height for a few views, especially due to landscape mode restricting space. mHeaderTextContainerView.getLayoutParams().height = @@ -282,10 +297,17 @@ public class QuickStatusBarHeader extends RelativeLayout implements com.android.internal.R.dimen.quick_qs_offset_height); mSystemIconsView.setLayoutParams(mSystemIconsView.getLayoutParams()); - getLayoutParams().height = resources.getDimensionPixelSize(mQsDisabled - ? com.android.internal.R.dimen.quick_qs_offset_height - : com.android.internal.R.dimen.quick_qs_total_height); - setLayoutParams(getLayoutParams()); + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); + if (mQsDisabled) { + lp.height = resources.getDimensionPixelSize( + com.android.internal.R.dimen.quick_qs_offset_height); + } else { + lp.height = Math.max(getMinimumHeight(), + resources.getDimensionPixelSize( + com.android.internal.R.dimen.quick_qs_offset_height)); + } + + setLayoutParams(lp); updateStatusIconAlphaAnimator(); updateHeaderTextContainerAlphaAnimator(); |