Loading packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Original line Diff line number Diff line Loading @@ -60,6 +60,16 @@ flag { } } } } flag { name: "notification_over_expansion_clipping_fix" namespace: "systemui" description: "fix NSSL clipping when over-expanding; fixes split shade bug." bug: "288553572" metadata { purpose: PURPOSE_BUGFIX } } flag { flag { name: "notification_async_group_header_inflation" name: "notification_async_group_header_inflation" namespace: "systemui" namespace: "systemui" Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -291,7 +291,7 @@ public class AmbientState implements Dumpable { mOverExpansion = overExpansion; mOverExpansion = overExpansion; } } float getOverExpansion() { public float getOverExpansion() { return mOverExpansion; return mOverExpansion; } } Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +27 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.view.MotionEvent.ACTION_UP; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING; import static com.android.internal.jank.InteractionJankMonitor.CUJ_SHADE_CLEAR_ALL; import static com.android.internal.jank.InteractionJankMonitor.CUJ_SHADE_CLEAR_ALL; import static com.android.systemui.Flags.newAodTransition; import static com.android.systemui.Flags.newAodTransition; import static com.android.systemui.Flags.notificationOverExpansionClippingFix; import static com.android.systemui.flags.Flags.UNCLEARED_TRANSIENT_HUN_FIX; import static com.android.systemui.flags.Flags.UNCLEARED_TRANSIENT_HUN_FIX; import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT; import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_SWIPE; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_SWIPE; Loading Loading @@ -516,6 +517,7 @@ public class NotificationStackScrollLayout private int mRoundedRectClippingTop; private int mRoundedRectClippingTop; private int mRoundedRectClippingBottom; private int mRoundedRectClippingBottom; private int mRoundedRectClippingRight; private int mRoundedRectClippingRight; private int mRoundedRectClippingYTranslation; private final float[] mBgCornerRadii = new float[8]; private final float[] mBgCornerRadii = new float[8]; /** /** Loading Loading @@ -671,6 +673,9 @@ public class NotificationStackScrollLayout */ */ void setOverExpansion(float margin) { void setOverExpansion(float margin) { mAmbientState.setOverExpansion(margin); mAmbientState.setOverExpansion(margin); if (notificationOverExpansionClippingFix() && !SceneContainerFlag.isEnabled()) { setRoundingClippingYTranslation((int) margin); } updateStackPosition(); updateStackPosition(); requestChildrenUpdate(); requestChildrenUpdate(); } } Loading Loading @@ -5115,6 +5120,7 @@ public class NotificationStackScrollLayout pw.append(" t=").print(mRoundedRectClippingTop); pw.append(" t=").print(mRoundedRectClippingTop); pw.append(" r=").print(mRoundedRectClippingRight); pw.append(" r=").print(mRoundedRectClippingRight); pw.append(" b=").print(mRoundedRectClippingBottom); pw.append(" b=").print(mRoundedRectClippingBottom); pw.append(" +y=").print(mRoundedRectClippingYTranslation); pw.append("} topRadius=").print(mBgCornerRadii[0]); pw.append("} topRadius=").print(mBgCornerRadii[0]); pw.append(" bottomRadius=").println(mBgCornerRadii[4]); pw.append(" bottomRadius=").println(mBgCornerRadii[4]); } } Loading Loading @@ -5663,8 +5669,28 @@ public class NotificationStackScrollLayout mBgCornerRadii[5] = bottomRadius; mBgCornerRadii[5] = bottomRadius; mBgCornerRadii[6] = bottomRadius; mBgCornerRadii[6] = bottomRadius; mBgCornerRadii[7] = bottomRadius; mBgCornerRadii[7] = bottomRadius; updateRoundedClipPath(); } // see b/288553572 private void setRoundingClippingYTranslation(int yTranslation) { SceneContainerFlag.assertInLegacyMode(); if (mRoundedRectClippingYTranslation == yTranslation) { return; } mRoundedRectClippingYTranslation = yTranslation; updateRoundedClipPath(); } private void updateRoundedClipPath() { SceneContainerFlag.assertInLegacyMode(); mRoundedClipPath.reset(); mRoundedClipPath.reset(); mRoundedClipPath.addRoundRect(left, top, right, bottom, mBgCornerRadii, Path.Direction.CW); mRoundedClipPath.addRoundRect( mRoundedRectClippingLeft, mRoundedRectClippingTop + mRoundedRectClippingYTranslation, mRoundedRectClippingRight, mRoundedRectClippingBottom + mRoundedRectClippingYTranslation, mBgCornerRadii, Path.Direction.CW); if (mShouldUseRoundedRectClipping) { if (mShouldUseRoundedRectClipping) { invalidate(); invalidate(); } } Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Original line Diff line number Diff line Loading @@ -60,6 +60,16 @@ flag { } } } } flag { name: "notification_over_expansion_clipping_fix" namespace: "systemui" description: "fix NSSL clipping when over-expanding; fixes split shade bug." bug: "288553572" metadata { purpose: PURPOSE_BUGFIX } } flag { flag { name: "notification_async_group_header_inflation" name: "notification_async_group_header_inflation" namespace: "systemui" namespace: "systemui" Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -291,7 +291,7 @@ public class AmbientState implements Dumpable { mOverExpansion = overExpansion; mOverExpansion = overExpansion; } } float getOverExpansion() { public float getOverExpansion() { return mOverExpansion; return mOverExpansion; } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +27 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.view.MotionEvent.ACTION_UP; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING; import static com.android.internal.jank.InteractionJankMonitor.CUJ_SHADE_CLEAR_ALL; import static com.android.internal.jank.InteractionJankMonitor.CUJ_SHADE_CLEAR_ALL; import static com.android.systemui.Flags.newAodTransition; import static com.android.systemui.Flags.newAodTransition; import static com.android.systemui.Flags.notificationOverExpansionClippingFix; import static com.android.systemui.flags.Flags.UNCLEARED_TRANSIENT_HUN_FIX; import static com.android.systemui.flags.Flags.UNCLEARED_TRANSIENT_HUN_FIX; import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT; import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_SWIPE; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_SWIPE; Loading Loading @@ -516,6 +517,7 @@ public class NotificationStackScrollLayout private int mRoundedRectClippingTop; private int mRoundedRectClippingTop; private int mRoundedRectClippingBottom; private int mRoundedRectClippingBottom; private int mRoundedRectClippingRight; private int mRoundedRectClippingRight; private int mRoundedRectClippingYTranslation; private final float[] mBgCornerRadii = new float[8]; private final float[] mBgCornerRadii = new float[8]; /** /** Loading Loading @@ -671,6 +673,9 @@ public class NotificationStackScrollLayout */ */ void setOverExpansion(float margin) { void setOverExpansion(float margin) { mAmbientState.setOverExpansion(margin); mAmbientState.setOverExpansion(margin); if (notificationOverExpansionClippingFix() && !SceneContainerFlag.isEnabled()) { setRoundingClippingYTranslation((int) margin); } updateStackPosition(); updateStackPosition(); requestChildrenUpdate(); requestChildrenUpdate(); } } Loading Loading @@ -5115,6 +5120,7 @@ public class NotificationStackScrollLayout pw.append(" t=").print(mRoundedRectClippingTop); pw.append(" t=").print(mRoundedRectClippingTop); pw.append(" r=").print(mRoundedRectClippingRight); pw.append(" r=").print(mRoundedRectClippingRight); pw.append(" b=").print(mRoundedRectClippingBottom); pw.append(" b=").print(mRoundedRectClippingBottom); pw.append(" +y=").print(mRoundedRectClippingYTranslation); pw.append("} topRadius=").print(mBgCornerRadii[0]); pw.append("} topRadius=").print(mBgCornerRadii[0]); pw.append(" bottomRadius=").println(mBgCornerRadii[4]); pw.append(" bottomRadius=").println(mBgCornerRadii[4]); } } Loading Loading @@ -5663,8 +5669,28 @@ public class NotificationStackScrollLayout mBgCornerRadii[5] = bottomRadius; mBgCornerRadii[5] = bottomRadius; mBgCornerRadii[6] = bottomRadius; mBgCornerRadii[6] = bottomRadius; mBgCornerRadii[7] = bottomRadius; mBgCornerRadii[7] = bottomRadius; updateRoundedClipPath(); } // see b/288553572 private void setRoundingClippingYTranslation(int yTranslation) { SceneContainerFlag.assertInLegacyMode(); if (mRoundedRectClippingYTranslation == yTranslation) { return; } mRoundedRectClippingYTranslation = yTranslation; updateRoundedClipPath(); } private void updateRoundedClipPath() { SceneContainerFlag.assertInLegacyMode(); mRoundedClipPath.reset(); mRoundedClipPath.reset(); mRoundedClipPath.addRoundRect(left, top, right, bottom, mBgCornerRadii, Path.Direction.CW); mRoundedClipPath.addRoundRect( mRoundedRectClippingLeft, mRoundedRectClippingTop + mRoundedRectClippingYTranslation, mRoundedRectClippingRight, mRoundedRectClippingBottom + mRoundedRectClippingYTranslation, mBgCornerRadii, Path.Direction.CW); if (mShouldUseRoundedRectClipping) { if (mShouldUseRoundedRectClipping) { invalidate(); invalidate(); } } Loading