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

Commit 4ccc4f33 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: I043915158e15cc305be3e1067dbb983eeb27df51
parents d4c0717b 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();