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

Commit d7539b06 authored by Michał Brzeziński's avatar Michał Brzeziński Committed by Automerger Merge Worker
Browse files

Merge changes I76ea8651,I76a84b4f into sc-v2-dev am: 5a2d06b5 am: 9bc53d38

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

Change-Id: If4ce30bb0b17aaee522178c7713a2c664058fdb0
parents 7c60f921 9bc53d38
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -57,8 +57,7 @@ public class KeyguardClockPositionAlgorithm {
    private int mUserSwitchPreferredY;

    /**
     * Minimum top margin to avoid overlap with status bar, lock icon, or multi-user switcher
     * avatar.
     * Minimum top margin to avoid overlap with status bar or multi-user switcher avatar.
     */
    private int mMinTopMargin;

@@ -203,7 +202,7 @@ public class KeyguardClockPositionAlgorithm {
        if (mBypassEnabled) {
            return mUnlockedStackScrollerPadding;
        } else if (mIsSplitShade) {
            return getClockY(1.0f, mDarkAmount);
            return getClockY(1.0f, mDarkAmount) + mUserSwitchHeight;
        } else {
            return getClockY(1.0f, mDarkAmount) + mKeyguardStatusHeight;
        }
@@ -213,7 +212,7 @@ public class KeyguardClockPositionAlgorithm {
        if (mBypassEnabled) {
            return (int) (mUnlockedStackScrollerPadding + mOverStretchAmount);
        } else if (mIsSplitShade) {
            return Math.max(0, clockYPosition - mSplitShadeTopNotificationsMargin);
            return clockYPosition - mSplitShadeTopNotificationsMargin + mUserSwitchHeight;
        } else {
            return clockYPosition + mKeyguardStatusHeight;
        }
@@ -223,7 +222,7 @@ public class KeyguardClockPositionAlgorithm {
        if (mBypassEnabled) {
            return mUnlockedStackScrollerPadding;
        } else if (mIsSplitShade) {
            return Math.max(mSplitShadeTargetTopMargin, mMinTopMargin);
            return mSplitShadeTargetTopMargin + mUserSwitchHeight;
        } else {
            return mMinTopMargin + mKeyguardStatusHeight;
        }
@@ -231,7 +230,7 @@ public class KeyguardClockPositionAlgorithm {

    private int getExpandedPreferredClockY() {
        if (mIsSplitShade) {
            return Math.max(mSplitShadeTargetTopMargin, mMinTopMargin);
            return mSplitShadeTargetTopMargin;
        } else {
            return mMinTopMargin;
        }
+5 −2
Original line number Diff line number Diff line
@@ -1440,8 +1440,11 @@ public class NotificationPanelViewController extends PanelViewController {
            mKeyguardStatusViewController.displayClock(LARGE, shouldAnimateClockChange);
        }
        updateKeyguardStatusViewAlignment(true /* animate */);
        int userIconHeight = mKeyguardQsUserSwitchController != null
        int userSwitcherHeight = mKeyguardQsUserSwitchController != null
                ? mKeyguardQsUserSwitchController.getUserIconHeight() : 0;
        if (mKeyguardUserSwitcherController != null) {
            userSwitcherHeight = mKeyguardUserSwitcherController.getHeight();
        }
        float expandedFraction =
                mScreenOffAnimationController.shouldExpandNotifications()
                        ? 1.0f : getExpandedFraction();
@@ -1461,7 +1464,7 @@ public class NotificationPanelViewController extends PanelViewController {
                mStatusBarHeaderHeightKeyguard,
                expandedFraction,
                mKeyguardStatusViewController.getLockscreenHeight(),
                userIconHeight,
                userSwitcherHeight,
                userSwitcherPreferredY,
                darkamount, mOverStretchAmount,
                bypassEnabled, getUnlockedStackScrollerPadding(),
+4 −0
Original line number Diff line number Diff line
@@ -248,6 +248,10 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS
        return mUserSwitcherController.isSimpleUserSwitcher();
    }

    public int getHeight() {
        return mListView.getHeight();
    }

    /**
     * @param animate if the transition should be animated
     * @return true if the switcher state changed
+13 −3
Original line number Diff line number Diff line
@@ -97,10 +97,13 @@ public class KeyguardUserSwitcherListView extends AlphaOptimizedLinearLayout {
            } else {
                // Update clickable state immediately so that the menu feels more responsive
                userItemViews[i].setClickable(open);
                // Before running the animation, ensure visibility is set correctly
                userItemViews[i].updateVisibilities(animate || open /* showItem */,
                // when opening we need to make views visible beforehand so they can be animated
                if (open) {
                    userItemViews[i].updateVisibilities(true /* showItem */,
                            true /* showTextName */, false /* animate */);
                }

            }
        }

        if (animate && userItemViews.length > 1) {
@@ -117,6 +120,13 @@ public class KeyguardUserSwitcherListView extends AlphaOptimizedLinearLayout {
                        setClipChildren(true);
                        setClipToPadding(true);
                        mAnimating = false;
                        if (!open) {
                            // after closing we hide children so that height of this view is correct
                            for (int i = 1; i < userItemViews.length; i++) {
                                userItemViews[i].updateVisibilities(false /* showItem */,
                                        true /* showTextName */, false /* animate */);
                            }
                        }
                    });
        }
    }
+34 −3
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
    private float mPanelExpansion;
    private int mKeyguardStatusBarHeaderHeight;
    private int mKeyguardStatusHeight;
    private int mUserSwitchHeight;
    private float mDark;
    private float mQsExpansion;
    private int mCutoutTopInset = 0;
@@ -264,8 +265,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {

    @Test
    public void clockPositionedDependingOnMarginInSplitShade() {
        when(mResources.getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin))
                .thenReturn(400);
        setSplitShadeTopMargin(400);
        mClockPositionAlgorithm.loadDimens(mResources);
        givenLockScreen();
        mIsSplitShade = true;
@@ -290,6 +290,32 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(30);
    }

    @Test
    public void notifPaddingAccountsForMultiUserSwitcherInSplitShade() {
        setSplitShadeTopMargin(100);
        mUserSwitchHeight = 150;
        mClockPositionAlgorithm.loadDimens(mResources);
        givenLockScreen();
        mIsSplitShade = true;
        // WHEN the position algorithm is run
        positionClock();
        // THEN the notif padding is split shade top margin + user switch height
        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(250);
    }

    @Test
    public void clockDoesntAccountForMultiUserSwitcherInSplitShade() {
        setSplitShadeTopMargin(100);
        mUserSwitchHeight = 150;
        mClockPositionAlgorithm.loadDimens(mResources);
        givenLockScreen();
        mIsSplitShade = true;
        // WHEN the position algorithm is run
        positionClock();
        // THEN clockY = split shade top margin
        assertThat(mClockPosition.clockY).isEqualTo(100);
    }

    @Test
    public void notifPaddingExpandedAlignedWithClockInSplitShadeMode() {
        givenLockScreen();
@@ -495,6 +521,11 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
        assertThat(mClockPosition.clockY).isEqualTo(mCutoutTopInset);
    }

    private void setSplitShadeTopMargin(int value) {
        when(mResources.getDimensionPixelSize(R.dimen.keyguard_split_shade_top_margin))
                .thenReturn(value);
    }

    private void givenHighestBurnInOffset() {
        when(BurnInHelperKt.getBurnInOffset(anyInt(), anyBoolean())).then(returnsFirstArg());
    }
@@ -529,7 +560,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
                mKeyguardStatusBarHeaderHeight,
                mPanelExpansion,
                mKeyguardStatusHeight,
                0 /* userSwitchHeight */,
                mUserSwitchHeight,
                0 /* userSwitchPreferredY */,
                mDark,
                ZERO_DRAG,