Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4d0310d authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Only call saveLayerAlpha when alpha is not at max or min values"...

Merge "Merge "Only call saveLayerAlpha when alpha is not at max or min values" into udc-dev am: 653c1079 am: bdfb7ffa" into udc-d1-dev-plus-aosp
parents 57ea205b 510675e4
Loading
Loading
Loading
Loading
+18 −5
Original line number Original line Diff line number Diff line
@@ -18,14 +18,24 @@ class KeyguardClockFrame(
    }
    }


    protected override fun dispatchDraw(canvas: Canvas) {
    protected override fun dispatchDraw(canvas: Canvas) {
        val restoreTo = saveCanvasAlpha(this, canvas, drawAlpha)
        saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(it) }
        super.dispatchDraw(canvas)
        canvas.restoreToCount(restoreTo)
    }
    }


    companion object {
    companion object {
        @JvmStatic
        @JvmStatic
        fun saveCanvasAlpha(view: View, canvas: Canvas, alpha: Int): Int {
        fun saveCanvasAlpha(view: View, canvas: Canvas, alpha: Int, drawFunc: (Canvas) -> Unit) {
            if (alpha <= 0) {
                // Zero Alpha -> skip drawing phase
                return
            }

            if (alpha >= 255) {
                // Max alpha -> no need for layer
                drawFunc(canvas)
                return
            }

            // Find x & y of view on screen
            var (x, y) =
            var (x, y) =
                run {
                run {
                    val locationOnScreen = IntArray(2)
                    val locationOnScreen = IntArray(2)
@@ -33,7 +43,10 @@ class KeyguardClockFrame(
                    Pair(locationOnScreen[0].toFloat(), locationOnScreen[1].toFloat())
                    Pair(locationOnScreen[0].toFloat(), locationOnScreen[1].toFloat())
                }
                }


            return canvas.saveLayerAlpha(-1f * x, -1f * y, x + view.width, y + view.height, alpha)
            val restoreTo =
                canvas.saveLayerAlpha(-1f * x, -1f * y, x + view.width, y + view.height, alpha)
            drawFunc(canvas)
            canvas.restoreToCount(restoreTo)
        }
        }
    }
    }
}
}
+6 −3
Original line number Original line Diff line number Diff line
@@ -130,9 +130,12 @@ public class KeyguardClockSwitch extends RelativeLayout {


    @Override
    @Override
    protected void dispatchDraw(Canvas canvas) {
    protected void dispatchDraw(Canvas canvas) {
        int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha);
        KeyguardClockFrame.saveCanvasAlpha(
        super.dispatchDraw(canvas);
                this, canvas, mDrawAlpha,
        canvas.restoreToCount(restoreTo);
                c -> {
                    super.dispatchDraw(c);
                    return kotlin.Unit.INSTANCE;
                });
    }
    }


    public void setLogBuffer(LogBuffer logBuffer) {
    public void setLogBuffer(LogBuffer logBuffer) {
+1 −3
Original line number Original line Diff line number Diff line
@@ -17,8 +17,6 @@ class KeyguardStatusContainer(
    }
    }


    protected override fun dispatchDraw(canvas: Canvas) {
    protected override fun dispatchDraw(canvas: Canvas) {
        val restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha)
        KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(canvas) }
        super.dispatchDraw(canvas)
        canvas.restoreToCount(restoreTo)
    }
    }
}
}
+6 −3
Original line number Original line Diff line number Diff line
@@ -146,8 +146,11 @@ public class KeyguardStatusView extends GridLayout {


    @Override
    @Override
    protected void dispatchDraw(Canvas canvas) {
    protected void dispatchDraw(Canvas canvas) {
        int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha);
        KeyguardClockFrame.saveCanvasAlpha(
        super.dispatchDraw(canvas);
                this, canvas, mDrawAlpha,
        canvas.restoreToCount(restoreTo);
                c -> {
                    super.dispatchDraw(c);
                    return kotlin.Unit.INSTANCE;
                });
    }
    }
}
}