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
This commit is contained in:
Milton Wu
2021-09-03 13:57:12 +00:00
parent 47c9672ef7
commit fb70748da1
3 changed files with 33 additions and 0 deletions

View File

@@ -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;

View File

@@ -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(

View File

@@ -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();
}
}