Fixed cutout not drawn when it's inside rounded corner rect

We may clear the color(if useInvertedAlphaColor is true) of the rounded
corner rects before drawing rounded corners. If a cutout happens to be
inside one of there rects, it will be cleared, so we should draw rounded
corners before cutout.

Bug: 223952603
Test: manual: select punch hole or corner cutout in the settings.
Change-Id: I57298a849bbf5f286e154bf903705dbdfa5930ab
This commit is contained in:
shawnlin
2022-03-11 14:19:32 +08:00
parent 14de9cb2c5
commit b742d45a6d

View File

@@ -119,9 +119,13 @@ class ScreenDecorHwcLayer(context: Context, displayDecorationSupport: DisplayDec
if (useInvertedAlphaColor) {
canvas.drawColor(bgColor)
}
// We may clear the color(if useInvertedAlphaColor is true) of the rounded corner rects
// before drawing rounded corners. If the cutout happens to be inside one of these rects, it
// will be cleared, so we have to draw rounded corners before cutout.
drawRoundedCorners(canvas)
// Cutouts are drawn in DisplayCutoutBaseView.onDraw()
super.onDraw(canvas)
drawRoundedCorners(canvas)
debugTransparentRegionPaint?.let {
calculateTransparentRect()