Align Keyguard statusBar margin padding to phone's
Align Keyguard status bar magin and padding to phone's through adding missing layout factor privacy dot space to the edge of screen, and use status_bar_padding_end to repleace system_icons_keyguard_padding_end. Manually check layout for following cases 1. Check battery icon, battery percentage, wifi icon at the same status bar location between keyguard locked and unlocked with following scenarios. a. w/ or w/o battery percentage b. RTL or LTR 2. Check multi-user icon looks good. Test: atest SystemUITests Test: Manually check phone status bar and keyguard status bar Bug: 195670442 Change-Id: Id38b64117e952b13937d80e77260e8a8c2b76594
This commit is contained in:
@@ -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">
|
||||
<include layout="@layout/system_icons" />
|
||||
</FrameLayout>
|
||||
|
||||
@@ -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<String> 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() {
|
||||
|
||||
Reference in New Issue
Block a user