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

Commit 85c8dd5b authored by Christian Göllner's avatar Christian Göllner Committed by Android (Google) Code Review
Browse files

Merge "Split-shade: fix notification scrim position when there is a horizontal...

Merge "Split-shade: fix notification scrim position when there is a horizontal display cutout." into tm-qpr-dev
parents 95a1377b ed6a57d4
Loading
Loading
Loading
Loading
+23 −4
Original line number Diff line number Diff line
@@ -450,6 +450,7 @@ public final class NotificationPanelViewController implements Dumpable {
    private float mDownY;
    private int mDisplayTopInset = 0; // in pixels
    private int mDisplayRightInset = 0; // in pixels
    private int mDisplayLeftInset = 0; // in pixels
    private int mLargeScreenShadeHeaderHeight;
    private int mSplitShadeNotificationsScrimMarginBottom;

@@ -3011,7 +3012,7 @@ public final class NotificationPanelViewController implements Dumpable {
            // left bounds can ignore insets, it should always reach the edge of the screen
            return 0;
        } else {
            return mNotificationStackScrollLayoutController.getLeft();
            return mNotificationStackScrollLayoutController.getLeft() + mDisplayLeftInset;
        }
    }

@@ -3019,7 +3020,7 @@ public final class NotificationPanelViewController implements Dumpable {
        if (mIsFullWidth) {
            return mView.getRight() + mDisplayRightInset;
        } else {
            return mNotificationStackScrollLayoutController.getRight();
            return mNotificationStackScrollLayoutController.getRight() + mDisplayLeftInset;
        }
    }

@@ -3143,8 +3144,8 @@ public final class NotificationPanelViewController implements Dumpable {

        // Convert global clipping coordinates to local ones,
        // relative to NotificationStackScrollLayout
        int nsslLeft = left - mNotificationStackScrollLayoutController.getLeft();
        int nsslRight = right - mNotificationStackScrollLayoutController.getLeft();
        int nsslLeft = calculateNsslLeft(left);
        int nsslRight = calculateNsslRight(right);
        int nsslTop = getNotificationsClippingTopBounds(top);
        int nsslBottom = bottom - mNotificationStackScrollLayoutController.getTop();
        int bottomRadius = mSplitShadeEnabled ? radius : 0;
@@ -3153,6 +3154,22 @@ public final class NotificationPanelViewController implements Dumpable {
                nsslLeft, nsslTop, nsslRight, nsslBottom, topRadius, bottomRadius);
    }

    private int calculateNsslLeft(int nsslLeftAbsolute) {
        int left = nsslLeftAbsolute - mNotificationStackScrollLayoutController.getLeft();
        if (mIsFullWidth) {
            return left;
        }
        return left - mDisplayLeftInset;
    }

    private int calculateNsslRight(int nsslRightAbsolute) {
        int right = nsslRightAbsolute - mNotificationStackScrollLayoutController.getLeft();
        if (mIsFullWidth) {
            return right;
        }
        return right - mDisplayLeftInset;
    }

    private int getNotificationsClippingTopBounds(int qsTop) {
        if (mSplitShadeEnabled && mExpandingFromHeadsUp) {
            // in split shade nssl has extra top margin so clipping at top 0 is not enough, we need
@@ -4550,6 +4567,7 @@ public final class NotificationPanelViewController implements Dumpable {
        ipw.print("mDownY="); ipw.println(mDownY);
        ipw.print("mDisplayTopInset="); ipw.println(mDisplayTopInset);
        ipw.print("mDisplayRightInset="); ipw.println(mDisplayRightInset);
        ipw.print("mDisplayLeftInset="); ipw.println(mDisplayLeftInset);
        ipw.print("mLargeScreenShadeHeaderHeight="); ipw.println(mLargeScreenShadeHeaderHeight);
        ipw.print("mSplitShadeNotificationsScrimMarginBottom=");
        ipw.println(mSplitShadeNotificationsScrimMarginBottom);
@@ -5927,6 +5945,7 @@ public final class NotificationPanelViewController implements Dumpable {
        Insets combinedInsets = insets.getInsetsIgnoringVisibility(insetTypes);
        mDisplayTopInset = combinedInsets.top;
        mDisplayRightInset = combinedInsets.right;
        mDisplayLeftInset = combinedInsets.left;

        mNavigationBarBottomHeight = insets.getStableInsetBottom();
        updateMaxHeadsUpTranslation();