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

Commit ce3b0b15 authored by Selim Cinek's avatar Selim Cinek Committed by Automerger Merge Worker
Browse files

Merge "Translating QS during LS -> Shade transition" into sc-dev am: 3899455d

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

Change-Id: Iec9eb250a8daf4eb655e40d119ea1e7d5b303752
parents 3e52f381 3899455d
Loading
Loading
Loading
Loading
+36 −3
Original line number Diff line number Diff line
@@ -180,6 +180,11 @@ public class NotificationPanelViewController extends PanelViewController {

    private static final boolean DEBUG = false;

    /**
     * The parallax amount of the quick settings translation when dragging down the panel
     */
    private static final float QS_PARALLAX_AMOUNT = 0.175f;

    /**
     * Fling expanding QS.
     */
@@ -543,6 +548,11 @@ public class NotificationPanelViewController extends PanelViewController {
     */
    private int mDistanceForQSFullShadeTransition;

    /**
     * The translation amount for QS for the full shade transition
     */
    private float mQsTranslationForFullShadeTransition;

    /**
     * The maximum overshoot allowed for the top padding for the full shade transition
     */
@@ -589,6 +599,11 @@ public class NotificationPanelViewController extends PanelViewController {
     * The animator for the qs clipping bounds.
     */
    private ValueAnimator mQsClippingAnimation = null;

    /**
     * Is the current animator resetting the qs translation.
     */
    private boolean mIsQsTranslationResetAnimator;
    private final Rect mKeyguardStatusAreaClipBounds = new Rect();
    private final Region mQsInterceptRegion = new Region();

@@ -2325,6 +2340,7 @@ public class NotificationPanelViewController extends PanelViewController {
                @Override
                public void onAnimationEnd(Animator animation) {
                    mQsClippingAnimation = null;
                    mIsQsTranslationResetAnimator = false;
                }
            });
            mQsClippingAnimation.start();
@@ -2348,7 +2364,18 @@ public class NotificationPanelViewController extends PanelViewController {
            statusBarClipTop = top - mKeyguardStatusBar.getTop();
        }
        if (mQs != null) {
            mQs.setFancyClipping(top, bottom, radius, qsVisible
            float qsTranslation = 0;
            if (mTransitioningToFullShadeProgress > 0.0f || (mQsClippingAnimation != null
                    && mIsQsTranslationResetAnimator)) {
                qsTranslation = (top - mQs.getHeader().getHeight()) * QS_PARALLAX_AMOUNT;
            }
            mQsTranslationForFullShadeTransition = qsTranslation;
            updateQsFrameTranslation();
            float currentTranslation = mQsFrame.getTranslationY();
            mQs.setFancyClipping((
                    int) (top - currentTranslation),
                    (int) (bottom - currentTranslation),
                    radius, qsVisible
                    && !mShouldUseSplitNotificationShade);
        }
        mKeyguardStatusViewController.setClipBounds(
@@ -2485,6 +2512,7 @@ public class NotificationPanelViewController extends PanelViewController {
        if (animate && !mShouldUseSplitNotificationShade) {
            animateNextNotificationBounds(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE,
                    delay);
            mIsQsTranslationResetAnimator = mQsTranslationForFullShadeTransition > 0.0f;
        }

        float endPosition = 0;
@@ -2884,7 +2912,7 @@ public class NotificationPanelViewController extends PanelViewController {
        float startHeight = -mQsExpansionHeight;
        if (!mShouldUseSplitNotificationShade && mBarState == StatusBarState.SHADE) {
            // Small parallax as we pull down and clip QS
            startHeight = -mQsExpansionHeight * 0.2f;
            startHeight = -mQsExpansionHeight * QS_PARALLAX_AMOUNT;
        }
        if (mKeyguardBypassController.getBypassEnabled() && isOnKeyguard()) {
            if (mNotificationStackScrollLayoutController.isPulseExpanding()) {
@@ -3066,10 +3094,15 @@ public class NotificationPanelViewController extends PanelViewController {
        super.setOverExpansion(overExpansion);
        // Translating the quick settings by half the overexpansion to center it in the background
        // frame
        mQsFrame.setTranslationY(overExpansion / 2f);
        updateQsFrameTranslation();
        mNotificationStackScrollLayoutController.setOverExpansion(overExpansion);
    }

    private void updateQsFrameTranslation() {
        float translation = mOverExpansion / 2.0f + mQsTranslationForFullShadeTransition;
        mQsFrame.setTranslationY(translation);
    }

    @Override
    protected void onTrackingStarted() {
        mFalsingCollector.onTrackingStarted(!mKeyguardStateController.canDismissLockScreen());