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

Commit 41cb0b32 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 am: 4ccc4f33

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

Change-Id: I9ab0917e31646a1bc415cb352d3927bee0e60391
parents 65cf6965 4ccc4f33
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();