Use status_bar_padding_top for status bar elements
In status bar, keyguard, and quicksettings, things that live in the
"status bar" area now properly obey status_bar_padding_top.
Also refresh layout resources on configuration change in the status bar,
fixing a couple of annoying bugs
Test: manual
Bug: 151221263
Change-Id: Ib4474ae2bd52919c2eecf9400c2711fd224fcc09
diff --git a/packages/SystemUI/res/layout/keyguard_status_bar.xml b/packages/SystemUI/res/layout/keyguard_status_bar.xml
index 66c0c5c..416ee81 100644
--- a/packages/SystemUI/res/layout/keyguard_status_bar.xml
+++ b/packages/SystemUI/res/layout/keyguard_status_bar.xml
@@ -30,6 +30,7 @@
android:id="@+id/status_icon_area"
android:layout_width="wrap_content"
android:layout_height="match_parent"
+ android:paddingTop="@dimen/status_bar_padding_top"
android:layout_alignParentEnd="true"
android:gravity="center_vertical|end" >
<FrameLayout android:id="@+id/system_icons_container"
@@ -66,6 +67,7 @@
android:id="@+id/keyguard_carrier_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:paddingTop="@dimen/status_bar_padding_top"
android:layout_marginStart="@dimen/keyguard_carrier_text_margin"
android:layout_toStartOf="@id/system_icons_container"
android:gravity="center_vertical"
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 8676767..b27d096 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
@@ -26,7 +26,8 @@
android:orientation="horizontal"
android:clickable="true"
android:paddingStart="@dimen/status_bar_padding_start"
- android:paddingEnd="@dimen/status_bar_padding_end" >
+ android:paddingEnd="@dimen/status_bar_padding_end"
+ android:paddingTop="@dimen/status_bar_padding_top" >
<com.android.systemui.statusbar.policy.Clock
android:id="@+id/clock"
diff --git a/packages/SystemUI/res/layout/system_icons.xml b/packages/SystemUI/res/layout/system_icons.xml
index 6fb5590..818d1d7 100644
--- a/packages/SystemUI/res/layout/system_icons.xml
+++ b/packages/SystemUI/res/layout/system_icons.xml
@@ -26,7 +26,6 @@
android:layout_weight="1"
android:layout_height="match_parent"
android:paddingEnd="@dimen/signal_cluster_battery_padding"
- android:paddingTop="@dimen/status_bar_padding_top"
android:gravity="center_vertical"
android:orientation="horizontal"/>
@@ -36,4 +35,4 @@
android:clipToPadding="false"
android:clipChildren="false"
systemui:textAppearance="@style/TextAppearance.StatusBar.Clock" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index 977a307..7c41bcd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -125,6 +125,7 @@
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
+ updateResources();
// May trigger cutout space layout-ing
if (updateOrientationAndCutout()) {
@@ -298,6 +299,24 @@
ViewGroup.LayoutParams layoutParams = getLayoutParams();
mStatusBarHeight = getResources().getDimensionPixelSize(R.dimen.status_bar_height);
layoutParams.height = mStatusBarHeight - waterfallTopInset;
+
+ int statusBarPaddingTop = getResources().getDimensionPixelSize(
+ R.dimen.status_bar_padding_top);
+ int statusBarPaddingStart = getResources().getDimensionPixelSize(
+ R.dimen.status_bar_padding_start);
+ int statusBarPaddingEnd = getResources().getDimensionPixelSize(
+ R.dimen.status_bar_padding_end);
+
+ View sbContents = findViewById(R.id.status_bar_contents);
+ sbContents.setPaddingRelative(
+ statusBarPaddingStart,
+ statusBarPaddingTop,
+ statusBarPaddingEnd,
+ 0);
+
+ findViewById(R.id.notification_lights_out)
+ .setPaddingRelative(0, statusBarPaddingStart, 0, 0);
+
setLayoutParams(layoutParams);
}