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

Commit 65b9b134 authored by Matt Pietal's avatar Matt Pietal
Browse files

Lockscreen spacing to UX specs

Reduce spacing between smartspace and notification area. Remove
concept of 'expanded clock position' from
KeyguardClockPositionAlgorithm, as it was only used when content was
vertically centered. Similarly, remove difference between
bypass/non-bypass height as the two layouts now match.

Fixes: 183008450
Fixes: 190831603
Test: atest KeyguardClockPositionAlgorithmTest
Change-Id: Ie274e34eb61a876166c11e4f4fa3b9d95ef49888
parent 9c4b4c34
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -36,10 +36,6 @@
    <!-- On tablets this is just the close_handle_height -->
    <dimen name="peek_height">@dimen/close_handle_height</dimen>

    <!-- The margin between the clock and the notifications on Keyguard. See
         keyguard_clock_height_fraction_* for the difference between min and max.-->
    <dimen name="keyguard_clock_notifications_margin">44dp</dimen>

    <!-- Height of the status bar header bar when on Keyguard -->
    <dimen name="status_bar_header_height_keyguard">60dp</dimen>

+2 −2
Original line number Diff line number Diff line
@@ -735,8 +735,8 @@
    <!-- Minimum distance the user has to drag down to go to the full shade. -->
    <dimen name="keyguard_drag_down_min_distance">100dp</dimen>

    <!-- The margin between the clock and the notifications on Keyguard.-->
    <dimen name="keyguard_clock_notifications_margin">30dp</dimen>
    <!-- The margin between the status view and the notifications on Keyguard.-->
    <dimen name="keyguard_status_view_bottom_margin">20dp</dimen>
    <!-- Minimum margin between clock and status bar -->
    <dimen name="keyguard_clock_top_margin">36dp</dimen>
    <!-- The margin between top of clock and bottom of lock icon. -->
+4 −0
Original line number Diff line number Diff line
@@ -205,6 +205,10 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
        }
    }

    int getNotificationIconAreaHeight() {
        return mNotificationIconAreaController.getHeight();
    }

    @Override
    protected void onViewDetached() {
        if (CUSTOM_CLOCKS_ENABLED) {
+4 −3
Original line number Diff line number Diff line
@@ -187,10 +187,11 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
    }

    /**
     * Get the height of the keyguard status view.
     * Get the height of the keyguard status view without the notification icon area, as that's
     * only visible on AOD.
     */
    public int getHeight() {
        return mView.getHeight();
    public int getLockscreenHeight() {
        return mView.getHeight() - mKeyguardClockSwitchController.getNotificationIconAreaHeight();
    }

    /**
+8 −33
Original line number Diff line number Diff line
@@ -40,9 +40,9 @@ public class KeyguardClockPositionAlgorithm {
    private static float CLOCK_HEIGHT_WEIGHT = 0.7f;

    /**
     * Margin between the bottom of the clock and the notification shade.
     * Margin between the bottom of the status view and the notification shade.
     */
    private int mClockNotificationsMargin;
    private int mStatusViewBottomMargin;

    /**
     * Height of the parent view - display size in px.
@@ -153,8 +153,8 @@ public class KeyguardClockPositionAlgorithm {
     * Refreshes the dimension values.
     */
    public void loadDimens(Resources res) {
        mClockNotificationsMargin = res.getDimensionPixelSize(
                R.dimen.keyguard_clock_notifications_margin);
        mStatusViewBottomMargin = res.getDimensionPixelSize(
                R.dimen.keyguard_status_view_bottom_margin);

        mContainerTopPadding =
                res.getDimensionPixelSize(R.dimen.keyguard_clock_top_margin) / 2;
@@ -181,7 +181,7 @@ public class KeyguardClockPositionAlgorithm {
        mNotificationStackHeight = notificationStackHeight;
        mPanelExpansion = panelExpansion;
        mHeight = parentHeight;
        mKeyguardStatusHeight = keyguardStatusHeight;
        mKeyguardStatusHeight = keyguardStatusHeight + mStatusViewBottomMargin;
        mUserSwitchHeight = userSwitchHeight;
        mUserSwitchPreferredY = userSwitchPreferredY;
        mHasCustomClock = hasCustomClock;
@@ -221,40 +221,15 @@ public class KeyguardClockPositionAlgorithm {

    public float getMinStackScrollerPadding() {
        return mBypassEnabled ? mUnlockedStackScrollerPadding
                : mMinTopMargin + mKeyguardStatusHeight + mClockNotificationsMargin;
    }

    private int getMaxClockY() {
        return mHeight / 2 - mKeyguardStatusHeight - mClockNotificationsMargin;
                : mMinTopMargin + mKeyguardStatusHeight;
    }

    private int getExpandedPreferredClockY() {
        return mMinTopMargin + mUserSwitchHeight;
    }

    /**
     * Vertically align the clock and the shade in the available space considering only
     * a percentage of the clock height defined by {@code CLOCK_HEIGHT_WEIGHT}.
     * @return Clock Y in pixels.
     */
    public int getExpandedClockPosition() {
        final int availableHeight = mMaxShadeBottom - mMinTopMargin;
        final int containerCenter = mMinTopMargin + availableHeight / 2;

        float y = containerCenter
                - (mKeyguardStatusHeight + mUserSwitchHeight) * CLOCK_HEIGHT_WEIGHT
                - mClockNotificationsMargin - mNotificationStackHeight / 2;
        if (y < mMinTopMargin) {
            y = mMinTopMargin;
        }

        // Don't allow the clock base to be under half of the screen
        final float maxClockY = getMaxClockY();
        if (y > maxClockY) {
            y = maxClockY;
        }

        return (int) y;
    public int getLockscreenStatusViewHeight() {
        return mKeyguardStatusHeight;
    }

    private int getClockY(float panelExpansion, float darkAmount) {
Loading