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

Commit 0e5592a2 authored by Lyn Han's avatar Lyn Han Committed by Automerger Merge Worker
Browse files

Merge "Fix overlap between notifications and lock icon in portrait shade" into...

Merge "Fix overlap between notifications and lock icon in portrait shade" into udc-dev am: 674a19a2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23589950



Change-Id: I28ed4c65a00e97d1de536b19e48243c6bf7f1751
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 74ecf3e7 674a19a2
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -1653,10 +1653,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
                Math.max(mIndicationBottomPadding, mAmbientIndicationBottomPadding));
        mKeyguardNotificationBottomPadding = bottomPadding;

        float staticTopPadding = mClockPositionAlgorithm.getLockscreenMinStackScrollerPadding()
                // getMinStackScrollerPadding is from the top of the screen,
                // but we need it from the top of the NSSL.
                - mNotificationStackScrollLayoutController.getTop();
        float staticTopPadding = mClockPositionAlgorithm.getLockscreenNotifPadding(
                mNotificationStackScrollLayoutController.getTop());

        mKeyguardNotificationTopPadding = staticTopPadding;

        // To debug the available space, enable debug lines in this class. If you change how the
@@ -1670,8 +1669,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
            Log.i(TAG, "\n");
            Log.i(TAG, "staticTopPadding[" + staticTopPadding
                    + "] = Clock.padding["
                    + mClockPositionAlgorithm.getLockscreenMinStackScrollerPadding()
                    + "] - NSSLC.top[" + mNotificationStackScrollLayoutController.getTop()
                    + mClockPositionAlgorithm.getLockscreenNotifPadding(
                            mNotificationStackScrollLayoutController.getTop())
                    + "]"
            );
            Log.i(TAG, "bottomPadding[" + bottomPadding
+9 −3
Original line number Diff line number Diff line
@@ -229,12 +229,18 @@ public class KeyguardClockPositionAlgorithm {
        }
    }

    public float getLockscreenMinStackScrollerPadding() {
    /**
     * @param nsslTop NotificationStackScrollLayout top, which is below top of the srceen.
     * @return Distance from nsslTop to top of the first view in the lockscreen shade.
     */
    public float getLockscreenNotifPadding(float nsslTop) {
        if (mBypassEnabled) {
            return mUnlockedStackScrollerPadding;
            return mUnlockedStackScrollerPadding - nsslTop;
        } else if (mIsSplitShade) {
            return mSplitShadeTargetTopMargin + mUserSwitchHeight;
            return mSplitShadeTargetTopMargin + mUserSwitchHeight - nsslTop;
        } else {
            // Non-bypass portrait shade already uses values from nsslTop
            // so we don't need to subtract it here.
            return mMinTopMargin + mKeyguardStatusHeight;
        }
    }
+44 −5
Original line number Diff line number Diff line
@@ -67,6 +67,8 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
    private float mQsExpansion;
    private int mCutoutTopInset = 0;
    private boolean mIsSplitShade = false;
    private boolean mBypassEnabled = false;
    private int mUnlockedStackScrollerPadding = 0;
    private float mUdfpsTop = -1;
    private float mClockBottom = SCREEN_HEIGHT / 2;
    private boolean mClockTopAligned;
@@ -339,15 +341,52 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
    }

    @Test
    public void notifMinPaddingAlignedWithClockInSplitShadeMode() {
    public void notifPadding_splitShade() {
        givenLockScreen();
        mIsSplitShade = true;
        mKeyguardStatusHeight = 200;
        // WHEN the position algorithm is run
        positionClock();
        // THEN the padding DOESN'T adjust for keyguard status height.
        assertThat(mClockPositionAlgorithm.getLockscreenMinStackScrollerPadding())
                .isEqualTo(mKeyguardStatusBarHeaderHeight);
        assertThat(mClockPositionAlgorithm.getLockscreenNotifPadding(/* nsslTop= */ 10))
                .isEqualTo(mKeyguardStatusBarHeaderHeight - 10);
    }

    @Test
    public void notifPadding_portraitShade_bypassOff() {
        givenLockScreen();
        mIsSplitShade = false;
        mBypassEnabled = false;

        // mMinTopMargin = 100 = 80 + max(20, 0)
        mKeyguardStatusBarHeaderHeight = 80;
        mUserSwitchHeight = 20;
        when(mResources.getDimensionPixelSize(R.dimen.keyguard_clock_top_margin))
                .thenReturn(0);

        mKeyguardStatusHeight = 200;

        // WHEN the position algorithm is run
        positionClock();

        // THEN padding = 300 = mMinTopMargin(100) + mKeyguardStatusHeight(200)
        assertThat(mClockPositionAlgorithm.getLockscreenNotifPadding(/* nsslTop= */ 50))
                .isEqualTo(300);
    }

    @Test
    public void notifPadding_portraitShade_bypassOn() {
        givenLockScreen();
        mIsSplitShade = false;
        mBypassEnabled = true;
        mUnlockedStackScrollerPadding = 200;

        // WHEN the position algorithm is run
        positionClock();

        // THEN padding = 150 = mUnlockedStackScrollerPadding(200) - nsslTop(50)
        assertThat(mClockPositionAlgorithm.getLockscreenNotifPadding(/* nsslTop= */ 50))
                .isEqualTo(150);
    }

    @Test
@@ -589,8 +628,8 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
                0 /* userSwitchPreferredY */,
                mDark,
                ZERO_DRAG,
                false /* bypassEnabled */,
                0 /* unlockedStackScrollerPadding */,
                mBypassEnabled,
                mUnlockedStackScrollerPadding,
                mQsExpansion,
                mCutoutTopInset,
                mIsSplitShade,