diff --git a/packages/SystemUI/res/layout/keyguard_status_bar.xml b/packages/SystemUI/res/layout/keyguard_status_bar.xml
index eb7638233efd4..850b017173084 100644
--- a/packages/SystemUI/res/layout/keyguard_status_bar.xml
+++ b/packages/SystemUI/res/layout/keyguard_status_bar.xml
@@ -30,7 +30,6 @@
android:id="@+id/status_icon_area"
android:layout_width="wrap_content"
android:layout_height="match_parent"
- android:paddingEnd="@dimen/system_icons_keyguard_padding_end"
android:paddingTop="@dimen/status_bar_padding_top"
android:layout_alignParentEnd="true"
android:gravity="center_vertical|end" >
@@ -39,6 +38,7 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginStart="@dimen/system_icons_super_container_margin_start"
+ android:layout_marginEnd="@dimen/status_bar_padding_end"
android:gravity="center_vertical|end">
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 e272d2713e2a9..55e0c9b979c90 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -96,7 +96,8 @@ public class KeyguardStatusBarView extends RelativeLayout implements
private final UserManager mUserManager;
private int mSystemIconsSwitcherHiddenExpandedMargin;
- private int mSystemIconsBaseMargin;
+ private int mStatusBarPaddingEnd;
+ private int mMinDotWidth;
private View mSystemIconsContainer;
private TintedIconManager mIconManager;
private List mBlockedIcons = new ArrayList<>();
@@ -157,14 +158,7 @@ public class KeyguardStatusBarView extends RelativeLayout implements
mMultiUserAvatar.setLayoutParams(lp);
// System icons
- lp = (MarginLayoutParams) mSystemIconsContainer.getLayoutParams();
- lp.setMarginStart(getResources().getDimensionPixelSize(
- R.dimen.system_icons_super_container_margin_start));
- mSystemIconsContainer.setLayoutParams(lp);
- mSystemIconsContainer.setPaddingRelative(mSystemIconsContainer.getPaddingStart(),
- mSystemIconsContainer.getPaddingTop(),
- getResources().getDimensionPixelSize(R.dimen.system_icons_keyguard_padding_end),
- mSystemIconsContainer.getPaddingBottom());
+ updateSystemIconsLayoutParams();
// Respect font size setting.
mCarrierLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX,
@@ -194,8 +188,10 @@ public class KeyguardStatusBarView extends RelativeLayout implements
Resources res = getResources();
mSystemIconsSwitcherHiddenExpandedMargin = res.getDimensionPixelSize(
R.dimen.system_icons_switcher_hidden_expanded_margin);
- mSystemIconsBaseMargin = res.getDimensionPixelSize(
- R.dimen.system_icons_super_container_avatarless_margin_end);
+ mStatusBarPaddingEnd = res.getDimensionPixelSize(
+ R.dimen.status_bar_padding_end);
+ mMinDotWidth = res.getDimensionPixelSize(
+ R.dimen.ongoing_appops_dot_min_padding);
mCutoutSideNudge = getResources().getDimensionPixelSize(
R.dimen.display_cutout_margin_consumption);
mShowPercentAvailable = getContext().getResources().getBoolean(
@@ -243,16 +239,24 @@ public class KeyguardStatusBarView extends RelativeLayout implements
private void updateSystemIconsLayoutParams() {
LinearLayout.LayoutParams lp =
(LinearLayout.LayoutParams) mSystemIconsContainer.getLayoutParams();
- // If the avatar icon is gone, we need to have some end margin to display the system icons
- // correctly.
- int baseMarginEnd = mMultiUserAvatar.getVisibility() == View.GONE
- ? mSystemIconsBaseMargin
- : 0;
+
+ int marginStart = getResources().getDimensionPixelSize(
+ R.dimen.system_icons_super_container_margin_start);
+
+ // Use status_bar_padding_end to replace original
+ // system_icons_super_container_avatarless_margin_end to prevent different end alignment
+ // between PhoneStatusBarView and KeyguardStatusBarView
+ int baseMarginEnd = mStatusBarPaddingEnd;
int marginEnd =
mKeyguardUserSwitcherEnabled ? mSystemIconsSwitcherHiddenExpandedMargin
: baseMarginEnd;
- marginEnd = calculateMargin(marginEnd, mPadding.second);
- if (marginEnd != lp.getMarginEnd()) {
+
+ // Align PhoneStatusBar right margin/padding, only use
+ // 1. status bar layout: mPadding(consider round_corner + privacy dot)
+ // 2. icon container: R.dimen.status_bar_padding_end
+
+ if (marginEnd != lp.getMarginEnd() || marginStart != lp.getMarginStart()) {
+ lp.setMarginStart(marginStart);
lp.setMarginEnd(marginEnd);
mSystemIconsContainer.setLayoutParams(lp);
}
@@ -287,7 +291,13 @@ public class KeyguardStatusBarView extends RelativeLayout implements
mPadding =
StatusBarWindowView.paddingNeededForCutoutAndRoundedCorner(
mDisplayCutout, cornerCutoutMargins, mRoundedCornerPadding);
- setPadding(mPadding.first, waterfallTop, mPadding.second, 0);
+
+ // consider privacy dot space
+ final int minLeft = isLayoutRtl() ? Math.max(mMinDotWidth, mPadding.first) : mPadding.first;
+ final int minRight = isLayoutRtl() ? mPadding.second :
+ Math.max(mMinDotWidth, mPadding.second);
+
+ setPadding(minLeft, waterfallTop, minRight, 0);
}
private boolean updateLayoutParamsNoCutout() {