diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java index 0d604014e8f1e..111a00511a782 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java @@ -387,7 +387,14 @@ public class NotificationShelf extends ActivatableNotificationView implements if (child instanceof ActivatableNotificationView) { ActivatableNotificationView anv = (ActivatableNotificationView) child; - updateCornerRoundnessOnScroll(anv, viewStart, shelfStart); + // Because we show whole notifications on the lockscreen, the bottom notification is + // always "just about to enter the shelf" by normal scrolling rules. This is fine + // if the shelf is visible, but if the shelf is hidden, it causes incorrect curling. + // notificationClipEnd handles the discrepancy between a visible and hidden shelf, + // so we use that when on the keyguard (and while animating away) to reduce curling. + final float keyguardSafeShelfStart = + mAmbientState.isOnKeyguard() ? notificationClipEnd : shelfStart; + updateCornerRoundnessOnScroll(anv, viewStart, keyguardSafeShelfStart); } }