diff options
| author | 2023-01-18 13:08:24 +0000 | |
|---|---|---|
| committer | 2023-01-18 13:08:24 +0000 | |
| commit | 0241cae4b2042a6b51eb7c0feb76a1b2f0d23902 (patch) | |
| tree | 1a7fea30a215a89fd398c5dfba06e0173cef4dd7 | |
| parent | b2ddeb8e79cc7d6152e824b2266bee2dc83863f9 (diff) | |
| parent | 85c8dd5b12393c10806fc7f513f3ead539dabeda (diff) | |
Merge "Split-shade: fix notification scrim position when there is a horizontal display cutout." into tm-qpr-dev am: 85c8dd5b12
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20980302
Change-Id: I905e224bc2561dfdf10426d210784d0d753bd047
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index c0017bee053b..ce6fb14fbcf8 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -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(); |