Fixing jagged corners of the notification scrim

Notification scrim needs to start being drawn horizontally
at -1 and end at screen_width+1 to expand horizontally and
cover jagged corners caused by clipping out path which
can't be anti-aliased

Fixes: 186644628
Test: manual
Change-Id: I776671eb32213b3023287e87d971536f716960b7
This commit is contained in:
Michal Brzezinski
2021-05-19 14:00:50 +01:00
parent a254d7fd43
commit 27acc69966

View File

@@ -548,8 +548,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
*/
public void setNotificationsBounds(float left, float top, float right, float bottom) {
if (mClipsQsScrim) {
// "top - 1" to have 1 px of scrims overlap, see: b/186644628
mNotificationsScrim.setDrawableBounds(left, top - 1, right, bottom);
// notification scrim's rounded corners are anti-aliased, but clipping of the QS scrim
// can't be and it's causing jagged corners. That's why notification scrim needs
// to overlap QS scrim by one pixel - both vertically (top - 1) and
// horizontally (left - 1 and right + 1), see: b/186644628
mNotificationsScrim.setDrawableBounds(left - 1, top - 1, right + 1, bottom);
mScrimBehind.setBottomEdgePosition((int) top);
} else {
mNotificationsScrim.setDrawableBounds(left, top, right, bottom);