Loading packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +14 −2 Original line number Diff line number Diff line Loading @@ -3041,11 +3041,23 @@ public final class NotificationPanelViewController { // relative to NotificationStackScrollLayout int nsslLeft = left - mNotificationStackScrollLayoutController.getLeft(); int nsslRight = right - mNotificationStackScrollLayoutController.getLeft(); int nsslTop = top - mNotificationStackScrollLayoutController.getTop(); int nsslTop = getNotificationsClippingTopBounds(top); int nsslBottom = bottom - mNotificationStackScrollLayoutController.getTop(); int bottomRadius = mSplitShadeEnabled ? radius : 0; int topRadius = mSplitShadeEnabled && mExpandingFromHeadsUp ? 0 : radius; mNotificationStackScrollLayoutController.setRoundedClippingBounds( nsslLeft, nsslTop, nsslRight, nsslBottom, radius, bottomRadius); nsslLeft, nsslTop, nsslRight, nsslBottom, topRadius, bottomRadius); } 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 // to set top clipping bound to negative value to allow HUN to go up to the top edge of // the screen without clipping. return -mAmbientState.getStackTopMargin(); } else { return qsTop - mNotificationStackScrollLayoutController.getTop(); } } private float getQSEdgePosition() { Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +13 −3 Original line number Diff line number Diff line Loading @@ -1383,7 +1383,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (height < minExpansionHeight) { mClipRect.left = 0; mClipRect.right = getWidth(); mClipRect.top = 0; mClipRect.top = getNotificationsClippingTopBound(); mClipRect.bottom = (int) height; height = minExpansionHeight; setRequestedClipBounds(mClipRect); Loading Loading @@ -1444,6 +1444,17 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable notifyAppearChangedListeners(); } private int getNotificationsClippingTopBound() { if (isHeadsUpTransition()) { // HUN in split shade can go higher than bottom of NSSL when swiping up so we want // to give it extra clipping margin. Because clipping has rounded corners, we also // need to account for that corner clipping. return -mAmbientState.getStackTopMargin() - mCornerRadius; } else { return 0; } } private void notifyAppearChangedListeners() { float appear; float expandAmount; Loading Loading @@ -1482,7 +1493,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable public void updateClipping() { boolean clipped = mRequestedClipBounds != null && !mInHeadsUpPinnedMode && !mHeadsUpAnimatingAway; boolean clipToOutline = false; if (mIsClipped != clipped) { mIsClipped = clipped; } Loading @@ -1498,7 +1508,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable setClipBounds(null); } setClipToOutline(clipToOutline); setClipToOutline(false); } /** Loading Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +14 −2 Original line number Diff line number Diff line Loading @@ -3041,11 +3041,23 @@ public final class NotificationPanelViewController { // relative to NotificationStackScrollLayout int nsslLeft = left - mNotificationStackScrollLayoutController.getLeft(); int nsslRight = right - mNotificationStackScrollLayoutController.getLeft(); int nsslTop = top - mNotificationStackScrollLayoutController.getTop(); int nsslTop = getNotificationsClippingTopBounds(top); int nsslBottom = bottom - mNotificationStackScrollLayoutController.getTop(); int bottomRadius = mSplitShadeEnabled ? radius : 0; int topRadius = mSplitShadeEnabled && mExpandingFromHeadsUp ? 0 : radius; mNotificationStackScrollLayoutController.setRoundedClippingBounds( nsslLeft, nsslTop, nsslRight, nsslBottom, radius, bottomRadius); nsslLeft, nsslTop, nsslRight, nsslBottom, topRadius, bottomRadius); } 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 // to set top clipping bound to negative value to allow HUN to go up to the top edge of // the screen without clipping. return -mAmbientState.getStackTopMargin(); } else { return qsTop - mNotificationStackScrollLayoutController.getTop(); } } private float getQSEdgePosition() { Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +13 −3 Original line number Diff line number Diff line Loading @@ -1383,7 +1383,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (height < minExpansionHeight) { mClipRect.left = 0; mClipRect.right = getWidth(); mClipRect.top = 0; mClipRect.top = getNotificationsClippingTopBound(); mClipRect.bottom = (int) height; height = minExpansionHeight; setRequestedClipBounds(mClipRect); Loading Loading @@ -1444,6 +1444,17 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable notifyAppearChangedListeners(); } private int getNotificationsClippingTopBound() { if (isHeadsUpTransition()) { // HUN in split shade can go higher than bottom of NSSL when swiping up so we want // to give it extra clipping margin. Because clipping has rounded corners, we also // need to account for that corner clipping. return -mAmbientState.getStackTopMargin() - mCornerRadius; } else { return 0; } } private void notifyAppearChangedListeners() { float appear; float expandAmount; Loading Loading @@ -1482,7 +1493,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable public void updateClipping() { boolean clipped = mRequestedClipBounds != null && !mInHeadsUpPinnedMode && !mHeadsUpAnimatingAway; boolean clipToOutline = false; if (mIsClipped != clipped) { mIsClipped = clipped; } Loading @@ -1498,7 +1508,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable setClipBounds(null); } setClipToOutline(clipToOutline); setClipToOutline(false); } /** Loading