From fb70748da107e6f4b24dfea039d9ba6619b7cbd5 Mon Sep 17 00:00:00 2001 From: Milton Wu Date: Fri, 3 Sep 2021 13:57:12 +0000 Subject: [PATCH] Update KeyguardStatusBar views w/ display change Implement BatteryMeterView's onConfigurationChanged to show correct battery percentage text size. Re-add icon groups if display changed to show correct size of system icons. Manually check keyguard status bar layout w/ following cases 1. Settings - Display - Display Size 2. RTL or LTR Bug: 197291570 Test: atest SystemUITests Change-Id: I3719b957b48f1dba81aedac5a7feb18323244429 --- .../systemui/battery/BatteryMeterView.java | 7 +++++++ .../statusbar/phone/KeyguardStatusBarView.java | 17 +++++++++++++++++ .../phone/StatusBarIconControllerImpl.java | 9 +++++++++ 3 files changed, 33 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java index 66085ac0a9157..39088c367a276 100644 --- a/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java +++ b/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java @@ -25,6 +25,7 @@ import android.animation.LayoutTransition; import android.animation.ObjectAnimator; import android.annotation.IntDef; import android.content.Context; +import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Rect; @@ -164,6 +165,12 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { updateShowPercent(); } + @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + updatePercentView(); + } + public void setColorsFromContext(Context context) { if (context == null) { return; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java index f4cc1464697bd..5f44a7d5d8700 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java @@ -119,6 +119,7 @@ public class KeyguardStatusBarView extends RelativeLayout { @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); + loadDimens(); MarginLayoutParams lp = (MarginLayoutParams) mMultiUserAvatar.getLayoutParams(); lp.width = lp.height = getResources().getDimensionPixelSize( @@ -128,6 +129,22 @@ public class KeyguardStatusBarView extends RelativeLayout { // System icons updateSystemIconsLayoutParams(); + // mStatusIconArea + mStatusIconArea.setPaddingRelative( + mStatusIconArea.getPaddingStart(), + getResources().getDimensionPixelSize(R.dimen.status_bar_padding_top), + mStatusIconArea.getPaddingEnd(), + mStatusIconArea.getPaddingBottom() + ); + + // mStatusIconContainer + mStatusIconContainer.setPaddingRelative( + mStatusIconContainer.getPaddingStart(), + mStatusIconContainer.getPaddingTop(), + getResources().getDimensionPixelSize(R.dimen.signal_cluster_battery_padding), + mStatusIconContainer.getPaddingBottom() + ); + // Respect font size setting. mCarrierLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java index 6a631566b9bbe..88a7dc7bcd75e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java @@ -114,6 +114,14 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu } } + private void refreshIconGroups() { + for (int i = mIconGroups.size() - 1; i >= 0; --i) { + IconManager group = mIconGroups.get(i); + removeIconGroup(group); + addIconGroup(group); + } + } + /** */ @Override public void removeIconGroup(IconManager group) { @@ -468,5 +476,6 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu @Override public void onDensityOrFontScaleChanged() { loadDimens(); + refreshIconGroups(); } }