Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a6faf3d authored by Milton Wu's avatar Milton Wu
Browse files

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
parent 8b5f287d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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>
+29 −19
Original line number Diff line number Diff line
@@ -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() {