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

Commit 27176b21 authored by Lyn Han's avatar Lyn Han Committed by Automerger Merge Worker
Browse files

Merge "Push notifications down offscreen when QQS expands to fullscreen QS"...

Merge "Push notifications down offscreen when QQS expands to fullscreen QS" into sc-dev am: 444187fa

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

Change-Id: I57bb4502aeba58c153d37ca7bbe342241d3408d1
parents 9d9b60c3 444187fa
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -664,7 +664,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
            mDebugPaint.setColor(Color.CYAN);
            canvas.drawLine(0, y, getWidth(), y, mDebugPaint);

            y = (int) (mAmbientState.getStackY() + mAmbientState.getStackHeight());
            y = (int) (mAmbientState.getStackY() + mSidePaddings + mAmbientState.getStackHeight());
            mDebugPaint.setColor(Color.BLUE);
            canvas.drawLine(0, y, getWidth(), y, mDebugPaint);
        }
@@ -1148,13 +1148,15 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        if (mOnStackYChanged != null) {
            mOnStackYChanged.run();
        }

        final float stackEndHeight = getHeight() - getEmptyBottomMargin() - mTopPadding;
        if (mQsExpansionFraction <= 0) {
            final float stackEndHeight = Math.max(0f,
                    getHeight() - getEmptyBottomMargin() - stackY - mSidePaddings);
            mAmbientState.setStackEndHeight(stackEndHeight);
            mAmbientState.setStackHeight(
                    MathUtils.lerp(stackEndHeight * StackScrollAlgorithm.START_FRACTION,
                            stackEndHeight, fraction));
        }
    }

    void setOnStackYChanged(Runnable onStackYChanged) {
        mOnStackYChanged = onStackYChanged;
+8 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ public class StackScrollAlgorithm {
    private int mStatusBarHeight;
    private float mHeadsUpInset;
    private int mPinnedZTranslationExtra;
    private float mNotificationScrimPadding;

    public StackScrollAlgorithm(
            Context context,
@@ -82,6 +83,7 @@ public class StackScrollAlgorithm {
        mPinnedZTranslationExtra = res.getDimensionPixelSize(
                R.dimen.heads_up_pinned_elevation);
        mGapHeight = res.getDimensionPixelSize(R.dimen.notification_section_divider_height);
        mNotificationScrimPadding = res.getDimensionPixelSize(R.dimen.notification_side_paddings);
    }

    /**
@@ -258,6 +260,9 @@ public class StackScrollAlgorithm {
        // expanded. Consider updating these states in updateContentView instead so that we don't
        // have to recalculate in every frame.
        float currentY = -scrollY;
        if (!ambientState.isOnKeyguard()) {
            currentY += mNotificationScrimPadding;
        }
        float previousY = 0;
        state.firstViewInShelf = null;
        state.viewHeightBeforeShelf = -1;
@@ -318,6 +323,9 @@ public class StackScrollAlgorithm {
            AmbientState ambientState) {
        // The y coordinate of the current child.
        float currentYPosition = -algorithmState.scrollY;
        if (!ambientState.isOnKeyguard()) {
            currentYPosition += mNotificationScrimPadding;
        }
        int childCount = algorithmState.visibleChildren.size();
        for (int i = 0; i < childCount; i++) {
            currentYPosition = updateChild(i, algorithmState, ambientState, currentYPosition);
+3 −4
Original line number Diff line number Diff line
@@ -2072,14 +2072,13 @@ public class NotificationPanelViewController extends PanelViewController {
        final int qsPanelBottomY = calculateQsBottomPosition(getQsExpansionFraction());
        final boolean visible = (getQsExpansionFraction() > 0 || qsPanelBottomY > 0)
                && !mShouldUseSplitNotificationShade;
        final float notificationTop = mAmbientState.getStackY()
                - mNotificationScrimPadding
                - mAmbientState.getScrollY();
        final float notificationTop = mAmbientState.getStackY() - mAmbientState.getScrollY();
        setQsExpansionEnabled(mAmbientState.getScrollY() == 0);

        int radius = mScrimCornerRadius;
        if (!mShouldUseSplitNotificationShade) {
            top = (int) Math.min(qsPanelBottomY, notificationTop);
            top = (int) (isOnKeyguard() ? Math.min(qsPanelBottomY, notificationTop)
                    : notificationTop);
            bottom = getView().getBottom();
            left = getView().getLeft();
            right = getView().getRight();